Lines Matching refs:priv
103 const struct mail_storage_service_privileges *priv,
401 const struct mail_storage_service_privileges *priv)
405 const char *uid = priv == NULL ? NULL :
406 dec2str(priv->uid == (uid_t)-1 ? geteuid() : priv->uid);
407 const char *gid = priv == NULL ? NULL :
408 dec2str(priv->gid == (gid_t)-1 ? getegid() : priv->gid);
448 struct mail_storage_service_privileges priv;
450 i_zero(&priv);
451 priv.uid = (uid_t)-1;
452 priv.gid = (gid_t)-1;
453 return get_var_expand_table(ctx->service, NULL, input, &priv);
459 struct mail_storage_service_privileges *priv,
474 &user->input, priv, error_r);
559 struct mail_storage_service_privileges *priv,
572 if (priv->uid != (uid_t)-1) {
573 rset.uid = priv->uid;
574 rset.uid_source = priv->uid_source;
580 if (priv->gid != (gid_t)-1) {
581 rset.gid = priv->gid;
582 rset.gid_source = priv->gid_source;
603 rset.chroot_dir = *priv->chroot == '\0' ? NULL : priv->chroot;
617 "can't chroot to %s", cur_chroot, priv->chroot);
644 *priv->home == '\0' ? NULL : priv->home);
659 struct mail_storage_service_privileges *priv,
665 const char *home = priv->home;
685 mail_user->uid = priv->uid == (uid_t)-1 ? geteuid() : priv->uid;
686 mail_user->gid = priv->gid == (gid_t)-1 ? getegid() : priv->gid;
724 if (*priv->chroot != '\0')
725 str_printfa(str, ", chroot=%s", priv->chroot);
877 const struct mail_storage_service_privileges *priv,
885 get_var_expand_table(ctx->service, user, input, priv),
892 struct mail_storage_service_privileges *priv)
903 user, &user->input, priv, &error);
1189 const struct mail_storage_service_privileges *priv)
1196 user, input, priv, &error);
1466 struct mail_storage_service_privileges priv;
1475 if (service_parse_privileges(ctx, user, &priv, error_r) < 0)
1478 if (*priv.home != '/' && *priv.home != '\0') {
1481 priv.home);
1492 len = strlen(priv.chroot);
1493 if (len > 2 && strcmp(priv.chroot + len - 2, "/.") == 0 &&
1494 strncmp(priv.home, priv.chroot, len - 2) == 0) {
1498 priv.home += len - 2;
1499 if (*priv.home == '\0')
1500 priv.home = "/";
1501 priv.chroot = t_strndup(priv.chroot, len - 2);
1503 set_keyval(ctx, user, "mail_home", priv.home);
1504 set_keyval(ctx, user, "mail_chroot", priv.chroot);
1509 if (*priv.home == '\0' || strcmp(priv.home, "/") == 0)
1510 priv.home = priv.chroot;
1512 priv.home = t_strconcat(priv.chroot, priv.home, NULL);
1513 priv.chroot = "";
1514 set_keyval(ctx, user, "mail_home", priv.home);
1526 mail_storage_service_init_log(ctx, user, &priv);
1529 if (service_drop_privileges(user, &priv,
1545 if (mail_storage_service_init_post(ctx, user, &priv,
1588 struct mail_storage_service_privileges priv;
1591 if (service_parse_privileges(ctx, user, &priv, &error) < 0)
1593 if (service_drop_privileges(user, &priv,