(void)closedir(dirp);
}
-bool master_settings_do_fixes(const struct master_settings *set)
+void master_settings_do_fixes(const struct master_settings *set)
{
const char *login_dir, *empty_dir;
struct stat st;
/* since base dir is under /var/run by default, it may have been
deleted. */
- if (mkdir_parents(set->base_dir, 0755) < 0 && errno != EEXIST) {
- i_error("mkdir(%s) failed: %m", set->base_dir);
- return FALSE;
- }
+ if (mkdir_parents(set->base_dir, 0755) < 0 && errno != EEXIST)
+ i_fatal("mkdir(%s) failed: %m", set->base_dir);
/* allow base_dir to be a symlink, so don't use lstat() */
- if (stat(set->base_dir, &st) < 0) {
- i_error("stat(%s) failed: %m", set->base_dir);
- return FALSE;
- }
- if (!S_ISDIR(st.st_mode)) {
- i_error("%s is not a directory", set->base_dir);
- return FALSE;
- }
+ if (stat(set->base_dir, &st) < 0)
+ i_fatal("stat(%s) failed: %m", set->base_dir);
+ if (!S_ISDIR(st.st_mode))
+ i_fatal("%s is not a directory", set->base_dir);
if ((st.st_mode & 0755) != 0755) {
i_warning("Fixing permissions of %s to be world-readable",
set->base_dir);
}
/* Make sure our permanent state directory exists */
- if (mkdir_parents(PKG_STATEDIR, 0750) < 0 && errno != EEXIST) {
- i_error("mkdir(%s) failed: %m", PKG_STATEDIR);
- return FALSE;
- }
+ if (mkdir_parents(PKG_STATEDIR, 0750) < 0 && errno != EEXIST)
+ i_fatal("mkdir(%s) failed: %m", PKG_STATEDIR);
login_dir = t_strconcat(set->base_dir, "/login", NULL);
if (settings_have_auth_unix_listeners_in(set, login_dir)) {
unlink_sockets(login_dir, "");
} else {
/* still make sure that login directory exists */
- if (mkdir(login_dir, 0755) < 0 && errno != EEXIST) {
- i_error("mkdir(%s) failed: %m", login_dir);
- return FALSE;
- }
+ if (mkdir(login_dir, 0755) < 0 && errno != EEXIST)
+ i_fatal("mkdir(%s) failed: %m", login_dir);
}
empty_dir = t_strconcat(set->base_dir, "/empty", NULL);
i_warning("Corrected permissions for empty directory "
"%s", empty_dir);
}
- return TRUE;
}