[Fedora-directory-commits] ldapserver/ldap/servers/slapd log.c, 1.26, 1.27

Noriko Hosoi nhosoi at fedoraproject.org
Fri Mar 13 20:35:40 UTC 2009


Author: nhosoi

Update of /cvs/dirsec/ldapserver/ldap/servers/slapd
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv9043

Modified Files:
	log.c 
Log Message:
Resolves: #490027
Summary: log module issues unnecessary/inaccurate syslog errors
Description:
1) don't log "Exceeded max number of logs allowed" in syslog messages.  It's an
info level log, which is not appropriate to log in syslog messages.
2) when deleting an error log file failed, a wrong file name (audit log) was
printed.  I also added the error code and the message why the deletion failed.  



Index: log.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/log.c,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- log.c	13 Mar 2009 16:39:25 -0000	1.26
+++ log.c	13 Mar 2009 20:35:37 -0000	1.27
@@ -3104,7 +3104,6 @@
 	*/
 	if (++numoflogs > loginfo.log_error_maxnumlogs) {
 		logstr = "Exceeded max number of logs allowed";
-		syslog(LOG_ERR, "%s\n", logstr);
 		goto delete_logfile;
 	}
 
@@ -3184,6 +3183,8 @@
 			return 0;
 		}
 	} 
+	memset(tbuf, 0, sizeof(tbuf));
+	log_convert_time (delete_logp->l_ctime, tbuf, 1 /*short */);
 	if (!locked) {
 		/* if locked, we should not call LDAPDebug, 
 		   which tries to get a lock internally. */
@@ -3201,14 +3202,15 @@
 	}
 
 	/* Delete the error file */
-	log_convert_time (delete_logp->l_ctime, tbuf, 1 /*short */);
 	PR_snprintf (buffer, sizeof(buffer), "%s.%s", loginfo.log_error_file, tbuf);
 	if (PR_Delete(buffer) != PR_SUCCESS) {
+		PRErrorCode prerr = PR_GetError();
 		/* This function could be called in the ERROR WRITE LOCK,
 		 * which causes the self deadlock if you call LDAPDebug for logging.
 		 * Thus, instead of LDAPDebug, call log__error_emergency with locked == 1. */
-		PR_snprintf(buffer, sizeof(buffer), "LOGINFO:Unable to remove file:%s.%s\n",
-					loginfo.log_audit_file, tbuf);
+		PR_snprintf(buffer, sizeof(buffer),
+				"LOGINFO:Unable to remove file:%s.%s error %d (%s)\n",
+				loginfo.log_error_file, tbuf, prerr, slapd_pr_strerror(prerr));
 		log__error_emergency(buffer, 0, locked);
 	}
 	slapi_ch_free((void**)&delete_logp);




More information about the Fedora-directory-commits mailing list