[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