[dovecot-cvs] dovecot/src/master settings.c,1.37,1.38 settings.h,1.19,1.20
cras at procontrol.fi
cras at procontrol.fi
Sun Dec 29 21:25:51 EET 2002
Update of /home/cvs/dovecot/src/master
In directory danu:/tmp/cvs-serv16769/src/master
Modified Files:
settings.c settings.h
Log Message:
Added base_dir setting, so the configure time --localstatedir can be
overridden.
Index: settings.c
===================================================================
RCS file: /home/cvs/dovecot/src/master/settings.c,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -d -r1.37 -r1.38
--- settings.c 22 Dec 2002 08:18:29 -0000 1.37
+++ settings.c 29 Dec 2002 19:25:48 -0000 1.38
@@ -86,6 +86,7 @@
};
/* common */
+char *set_base_dir = PKG_RUNDIR;
char *set_log_path = NULL;
char *set_info_log_path = NULL;
char *set_log_timestamp = DEFAULT_FAILURE_STAMP_FORMAT;
@@ -99,7 +100,7 @@
int set_ssl_disable = FALSE;
char *set_ssl_cert_file = SSLDIR"/certs/imapd.pem";
char *set_ssl_key_file = SSLDIR"/private/imapd.pem";
-char *set_ssl_parameters_file = PKG_RUNDIR"/ssl-parameters.dat";
+char *set_ssl_parameters_file = "ssl-parameters.dat";
unsigned int set_ssl_parameters_regenerate = 24;
int set_disable_plaintext_auth = FALSE;
@@ -107,7 +108,7 @@
char *set_login_executable = PKG_LIBEXECDIR"/imap-login";
unsigned int set_login_process_size = 16;
char *set_login_user = "imapd";
-char *set_login_dir = PKG_RUNDIR"/login";
+char *set_login_dir = "login";
int set_login_chroot = TRUE;
int set_login_process_per_connection = TRUE;
@@ -146,6 +147,17 @@
/* auth */
AuthConfig *auth_processes_config = NULL;
+static void fix_base_path(char **str)
+{
+ char *fullpath;
+
+ if (*str != NULL && **str != '\0' && **str != '/') {
+ fullpath = i_strconcat(set_base_dir, "/", *str, NULL);
+ i_free(*str);
+ *str = i_strdup(fullpath);
+ }
+}
+
static void get_login_uid(void)
{
struct passwd *pw;
@@ -166,6 +178,8 @@
i_fatal("Can't use auth executable %s: %m",
auth->executable);
}
+
+ fix_base_path(&auth->chroot);
if (auth->chroot != NULL && access(auth->chroot, X_OK) < 0) {
i_fatal("Can't access auth chroot directory %s: %m",
auth->chroot);
@@ -231,9 +245,13 @@
}
#endif
+ /* fix relative paths */
+ fix_base_path(&set_ssl_parameters_file);
+ fix_base_path(&set_login_dir);
+
/* since they're under /var/run by default, they may have been
deleted. */
- if (safe_mkdir(PKG_RUNDIR, 0700, geteuid(), getegid()) == 0) {
+ if (safe_mkdir(set_base_dir, 0700, geteuid(), getegid()) == 0) {
i_warning("Corrected permissions for base directory %s",
PKG_RUNDIR);
}
Index: settings.h
===================================================================
RCS file: /home/cvs/dovecot/src/master/settings.h,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -d -r1.19 -r1.20
--- settings.h 22 Dec 2002 08:48:49 -0000 1.19
+++ settings.h 29 Dec 2002 19:25:48 -0000 1.20
@@ -2,6 +2,7 @@
#define __SETTINGS_H
/* common */
+extern char *set_base_dir;
extern char *set_log_path;
extern char *set_info_log_path;
extern char *set_log_timestamp;
More information about the dovecot-cvs
mailing list