master-settings.c revision 80dac5bb3ba1d8ab05a1c89d8d4e9d15fdba97ed
/* Copyright (c) 2005-2009 Dovecot authors, see the included COPYING file */
#include "common.h"
#include "array.h"
#include "env-util.h"
#include "istream.h"
#include "mkdir-parents.h"
#include "settings-parser.h"
#include "master-settings.h"
#include <stddef.h>
#include <dirent.h>
#include <unistd.h>
const char **error_r);
extern struct setting_parser_info service_setting_parser_info;
static struct setting_define file_listener_setting_defines[] = {
};
static struct file_listener_settings file_listener_default_settings = {
};
static struct setting_parser_info file_listener_setting_parser_info = {
};
static struct setting_define inet_listener_setting_defines[] = {
};
static struct inet_listener_settings inet_listener_default_settings = {
};
static struct setting_parser_info inet_listener_setting_parser_info = {
};
static struct setting_define service_setting_defines[] = {
};
static struct service_settings service_default_settings = {
MEMBER(client_limit) 0,
};
struct setting_parser_info service_setting_parser_info = {
};
static struct setting_define master_setting_defines[] = {
};
static struct master_settings master_default_settings = {
MEMBER(last_valid_uid) 0,
MEMBER(last_valid_gid) 0,
};
struct setting_parser_info master_setting_parser_info = {
};
/* <settings checks> */
{
struct file_listener_settings *const *sets;
unsigned int i, count;
if (!array_is_created(l))
return;
for (i = 0; i < count; i++) {
}
}
}
static bool
{
struct service_settings *const *services;
unsigned int i, count;
if (set->last_valid_uid != 0 &&
*error_r = "first_valid_uid can't be larger than last_valid_uid";
return FALSE;
}
if (set->last_valid_gid != 0 &&
*error_r = "first_valid_gid can't be larger than last_valid_gid";
return FALSE;
}
/* check that we have at least one service. the actual service
structure validity is checked later while creating them. */
if (count == 0) {
*error_r = "No services defined";
return FALSE;
}
for (i = 0; i < count; i++) {
services[i]->executable =
}
}
if (services[i]->drop_priv_before_exec &&
"drop_priv_before_exec=yes can't be "
return FALSE;
}
}
return TRUE;
}
/* </settings checks> */
{
const char *login_dir;
deleted. */
return FALSE;
}
/* allow base_dir to be a symlink, so don't use lstat() */
return FALSE;
}
return FALSE;
}
/* create login directory under base dir */
return FALSE;
}
/* Make sure our permanent state directory exists */
return FALSE;
}
return TRUE;
}