print '#include "lib.h"'."\n";
print '#include "array.h"'."\n";
+print '#include "ipwd.h"'."\n";
print '#include "var-expand.h"'."\n";
print '#include "file-lock.h"'."\n";
print '#include "fsync-mode.h"'."\n";
#include "istream.h"
#include "network.h"
#include "str.h"
+#include "ipwd.h"
#include "mkdir-parents.h"
#include "safe-mkdir.h"
#include "settings-parser.h"
struct service_settings *const *services;
const char *const *strings;
ARRAY_TYPE(const_string) all_listeners;
+ struct passwd pw;
unsigned int i, j, count, len, client_limit, process_limit;
unsigned int max_auth_client_processes, max_anvil_client_processes;
return FALSE;
}
+ if (i_getpwnam(set->default_login_user, &pw) == 0) {
+ *error_r = t_strdup_printf("default_login_user doesn't exist: %s",
+ set->default_login_user);
+ return FALSE;
+ }
+ if (i_getpwnam(set->default_internal_user, &pw) == 0) {
+ *error_r = t_strdup_printf("default_internal_user doesn't exist: %s",
+ set->default_internal_user);
+ return FALSE;
+ }
+
/* check that we have at least one service. the actual service
structure validity is checked later while creating them. */
if (!array_is_created(&set->services) ||