[dovecot-cvs] dovecot/src/master imap-process.c,1.17,1.18 main.c,1.21,1.22 settings.c,1.32,1.33 settings.h,1.17,1.18
cras at procontrol.fi
cras at procontrol.fi
Fri Dec 20 03:47:14 EET 2002
Update of /home/cvs/dovecot/src/master
In directory danu:/tmp/cvs-serv30006/src/master
Modified Files:
imap-process.c main.c settings.c settings.h
Log Message:
Added info_log_file setting and i_info() function to write to it. Default is
the same as failure log. Currently only logged information is client logins.
Index: imap-process.c
===================================================================
RCS file: /home/cvs/dovecot/src/master/imap-process.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- imap-process.c 19 Dec 2002 01:02:36 -0000 1.17
+++ imap-process.c 20 Dec 2002 01:47:11 -0000 1.18
@@ -50,12 +50,13 @@
if (*dir == '\0')
return TRUE;
- if (set_valid_chroot_dirs == '\0')
+ if (set_valid_chroot_dirs == NULL)
return FALSE;
chroot_dirs = t_strsplit(set_valid_chroot_dirs, ":");
while (*chroot_dirs != NULL) {
- if (strncmp(dir, *chroot_dirs, strlen(*chroot_dirs)) == 0)
+ if (**chroot_dirs != '\0' &&
+ strncmp(dir, *chroot_dirs, strlen(*chroot_dirs)) == 0)
return TRUE;
chroot_dirs++;
}
Index: main.c
===================================================================
RCS file: /home/cvs/dovecot/src/master/main.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -d -r1.21 -r1.22
--- main.c 19 Dec 2002 23:56:24 -0000 1.21
+++ main.c 20 Dec 2002 01:47:11 -0000 1.22
@@ -52,10 +52,15 @@
env_clean();
/* set the failure log */
- if (set_log_path != NULL)
- env_put(t_strconcat("IMAP_LOGFILE=", set_log_path, NULL));
- else
+ if (set_log_path == NULL)
env_put("IMAP_USE_SYSLOG=1");
+ else
+ env_put(t_strconcat("IMAP_LOGFILE=", set_log_path, NULL));
+
+ if (set_info_log_path != NULL) {
+ env_put(t_strconcat("IMAP_INFOLOGFILE=",
+ set_info_log_path, NULL));
+ }
if (set_log_timestamp != NULL)
env_put(t_strconcat("IMAP_LOGSTAMP=", set_log_timestamp, NULL));
@@ -148,7 +153,7 @@
IPADDR *ip;
int ret, ips_count;
- if (name == NULL || *name == '\0')
+ if (name == NULL)
return NULL; /* defaults to "*" or "::" */
if (strcmp(name, "*") == 0) {
@@ -217,8 +222,12 @@
else {
/* log to file or stderr */
i_set_failure_file(set_log_path, "imap-master");
- i_set_failure_timestamp_format(set_log_timestamp);
}
+
+ if (set_info_log_path != NULL)
+ i_set_info_file(set_info_log_path);
+
+ i_set_failure_timestamp_format(set_log_timestamp);
}
static void main_init(void)
Index: settings.c
===================================================================
RCS file: /home/cvs/dovecot/src/master/settings.c,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -d -r1.32 -r1.33
--- settings.c 19 Dec 2002 23:56:24 -0000 1.32
+++ settings.c 20 Dec 2002 01:47:11 -0000 1.33
@@ -24,6 +24,7 @@
static Setting settings[] = {
{ "log_path", SET_STR, &set_log_path },
+ { "info_log_path", SET_STR, &set_info_log_path },
{ "log_timestamp", SET_STR, &set_log_timestamp },
{ "imap_port", SET_INT, &set_imap_port },
@@ -85,6 +86,7 @@
/* common */
char *set_log_path = NULL;
+char *set_info_log_path = NULL;
char *set_log_timestamp = DEFAULT_FAILURE_STAMP_FORMAT;
/* general */
@@ -163,8 +165,7 @@
i_fatal("Can't use auth executable %s: %m",
auth->executable);
}
- if (auth->chroot != NULL && *auth->chroot != '\0' &&
- access(auth->chroot, X_OK) < 0) {
+ if (auth->chroot != NULL && access(auth->chroot, X_OK) < 0) {
i_fatal("Can't access auth chroot directory %s: %m",
auth->chroot);
}
@@ -204,13 +205,17 @@
}
if (set_log_path != NULL) {
- /* log_path specifies a full file, */
dir = get_directory(set_log_path);
-
if (access(dir, W_OK) < 0)
i_fatal("Can't access log directory %s: %m", dir);
}
+ if (set_info_log_path != NULL) {
+ dir = get_directory(set_info_log_path);
+ if (access(dir, W_OK) < 0)
+ i_fatal("Can't access info log directory %s: %m", dir);
+ }
+
#ifdef HAVE_SSL
if (!set_ssl_disable) {
if (access(set_ssl_cert_file, R_OK) < 0) {
@@ -401,7 +406,8 @@
if (strcmp(set->name, key) == 0) {
switch (set->type) {
case SET_STR:
- i_strdup_replace((char **) set->ptr, value);
+ i_free(*((char **)set->ptr));
+ *((char **)set->ptr) = i_strdup_empty(value);
break;
case SET_INT:
/* use %i so we can handle eg. 0600
Index: settings.h
===================================================================
RCS file: /home/cvs/dovecot/src/master/settings.h,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- settings.h 19 Dec 2002 23:56:24 -0000 1.17
+++ settings.h 20 Dec 2002 01:47:11 -0000 1.18
@@ -3,6 +3,7 @@
/* common */
extern char *set_log_path;
+extern char *set_info_log_path;
extern char *set_log_timestamp;
/* general */
More information about the dovecot-cvs
mailing list