svn commit: samba r10618 - in trunk/source/modules: .

deryck at samba.org deryck at samba.org
Thu Sep 29 15:57:00 GMT 2005


Author: deryck
Date: 2005-09-29 15:56:59 +0000 (Thu, 29 Sep 2005)
New Revision: 10618

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=10618

Log:
Allow syslog facility and priority to be set via
smb.conf for audit modules.

Facility may be set to USER or LOCAL0-LOCAL7.  Any
of the syslog priority settings may be used.
smb.conf will look like:

audit:facility = LOCAL5
audit:priority = INFO

(Or full_audit:facility, or whatever audit module is used.)

deryck

Modified:
   trunk/source/modules/vfs_audit.c
   trunk/source/modules/vfs_extd_audit.c
   trunk/source/modules/vfs_full_audit.c


Changeset:
Modified: trunk/source/modules/vfs_audit.c
===================================================================
--- trunk/source/modules/vfs_audit.c	2005-09-29 15:46:15 UTC (rev 10617)
+++ trunk/source/modules/vfs_audit.c	2005-09-29 15:56:59 UTC (rev 10618)
@@ -77,21 +77,44 @@
 
 static int audit_syslog_facility(vfs_handle_struct *handle)
 {
-	/* fix me: let this be configurable by:
-	 *	lp_param_enum(SNUM(handle->conn),(handle->param?handle->param:"audit"),"syslog facility",
-	 *		audit_enum_facility,LOG_USER); 
-	 */
-	return LOG_USER;
+	static const struct enum_list enum_log_facilities[] = {
+		{ LOG_USER, "USER" },
+		{ LOG_LOCAL0, "LOCAL0" },
+		{ LOG_LOCAL1, "LOCAL1" },
+		{ LOG_LOCAL2, "LOCAL2" },
+		{ LOG_LOCAL3, "LOCAL3" },
+		{ LOG_LOCAL4, "LOCAL4" },
+		{ LOG_LOCAL5, "LOCAL5" },
+		{ LOG_LOCAL6, "LOCAL6" },
+		{ LOG_LOCAL7, "LOCAL7" }
+	};
+
+	int facility;
+
+	facility = lp_parm_enum(SNUM(handle->conn), "audit", "facility", enum_log_facilities, LOG_USER);
+
+	return facility;
 }
 
 
 static int audit_syslog_priority(vfs_handle_struct *handle)
 {
-	/* fix me: let this be configurable by:
-	 *	lp_param_enum(SNUM(handle->conn),(handle->param?handle->param:"audit"),"syslog priority",
-	 *		audit_enum_priority,LOG_NOTICE); 
-	 */
-	return LOG_NOTICE;
+	static const struct enum_list enum_log_priorities[] = {
+		{ LOG_EMERG, "EMERG" },
+		{ LOG_ALERT, "ALERT" },
+		{ LOG_CRIT, "CRIT" },
+		{ LOG_ERR, "ERR" },
+		{ LOG_WARNING, "WARNING" },
+		{ LOG_NOTICE, "NOTICE" },
+		{ LOG_INFO, "INFO" },
+		{ LOG_DEBUG, "DEBUG" }
+	};
+
+	int priority;
+
+	priority = lp_parm_enum(SNUM(handle->conn), "audit", "priority", enum_log_priorities, LOG_NOTICE);
+
+	return priority;
 }
 
 /* Implementation of vfs_ops.  Pass everything on to the default

Modified: trunk/source/modules/vfs_extd_audit.c
===================================================================
--- trunk/source/modules/vfs_extd_audit.c	2005-09-29 15:46:15 UTC (rev 10617)
+++ trunk/source/modules/vfs_extd_audit.c	2005-09-29 15:56:59 UTC (rev 10618)
@@ -80,21 +80,44 @@
 
 static int audit_syslog_facility(vfs_handle_struct *handle)
 {
-	/* fix me: let this be configurable by:
-	 *	lp_param_enum(SNUM(handle->conn),(handle->param?handle->param:"extd_audit"),"syslog facility",
-	 *		audit_enum_facility,LOG_USER); 
-	 */
-	return LOG_USER;
+	static const struct enum_list enum_log_facilities[] = {
+		{ LOG_USER, "USER" },
+		{ LOG_LOCAL0, "LOCAL0" },
+		{ LOG_LOCAL1, "LOCAL1" },
+		{ LOG_LOCAL2, "LOCAL2" },
+		{ LOG_LOCAL3, "LOCAL3" },
+		{ LOG_LOCAL4, "LOCAL4" },
+		{ LOG_LOCAL5, "LOCAL5" },
+		{ LOG_LOCAL6, "LOCAL6" },
+		{ LOG_LOCAL7, "LOCAL7" }
+	};
+
+	int facility;
+
+	facility = lp_parm_enum(SNUM(handle->conn), "extd_audit", "facility", enum_log_facilities, LOG_USER);
+
+	return facility;
 }
 
 
 static int audit_syslog_priority(vfs_handle_struct *handle)
 {
-	/* fix me: let this be configurable by:
-	 *	lp_param_enum(SNUM(handle->conn),(handle->param?handle->param:"extd_audit"),"syslog priority",
-	 *		audit_enum_priority,LOG_NOTICE); 
-	 */
-	return LOG_NOTICE;
+	static const struct enum_list enum_log_priorities[] = {
+		{ LOG_EMERG, "EMERG" },
+		{ LOG_ALERT, "ALERT" },
+		{ LOG_CRIT, "CRIT" },
+		{ LOG_ERR, "ERR" },
+		{ LOG_WARNING, "WARNING" },
+		{ LOG_NOTICE, "NOTICE" },
+		{ LOG_INFO, "INFO" },
+		{ LOG_DEBUG, "DEBUG" }
+	};
+
+	int priority;
+
+	priority = lp_parm_enum(SNUM(handle->conn), "extd_audit", "priority", enum_log_priorities, LOG_NOTICE);
+
+	return priority;
 }
 
 /* Implementation of vfs_ops.  Pass everything on to the default

Modified: trunk/source/modules/vfs_full_audit.c
===================================================================
--- trunk/source/modules/vfs_full_audit.c	2005-09-29 15:46:15 UTC (rev 10617)
+++ trunk/source/modules/vfs_full_audit.c	2005-09-29 15:56:59 UTC (rev 10618)
@@ -606,24 +606,43 @@
 
 static int audit_syslog_facility(vfs_handle_struct *handle)
 {
-	/* fix me: let this be configurable by:
-	 *	lp_param_enum(SNUM(handle->conn),
-	 *	              (handle->param?handle->param:"full_audit"),
-	 *                    "syslog facility",
-	 *	              audit_enum_facility,LOG_USER);
-	 */
-	return LOG_USER;
+	static const struct enum_list enum_log_facilities[] = {
+		{ LOG_USER, "USER" },
+		{ LOG_LOCAL0, "LOCAL0" },
+		{ LOG_LOCAL1, "LOCAL1" },
+		{ LOG_LOCAL2, "LOCAL2" },
+		{ LOG_LOCAL3, "LOCAL3" },
+		{ LOG_LOCAL4, "LOCAL4" },
+		{ LOG_LOCAL5, "LOCAL5" },
+		{ LOG_LOCAL6, "LOCAL6" },
+		{ LOG_LOCAL7, "LOCAL7" }
+	};
+
+	int facility;
+
+	facility = lp_parm_enum(SNUM(handle->conn), "full_audit", "facility", enum_log_facilities, LOG_USER);
+
+	return facility;
 }
 
 static int audit_syslog_priority(vfs_handle_struct *handle)
 {
-	/* fix me: let this be configurable by:
-	 *	lp_param_enum(SNUM(handle->conn),
-	 *                    (handle->param?handle->param:"full_audit"),
-	 *                    "syslog priority",
-	 *		      audit_enum_priority,LOG_NOTICE); 
-	 */
-	return LOG_NOTICE;
+	static const struct enum_list enum_log_priorities[] = {
+		{ LOG_EMERG, "EMERG" },
+		{ LOG_ALERT, "ALERT" },
+		{ LOG_CRIT, "CRIT" },
+		{ LOG_ERR, "ERR" },
+		{ LOG_WARNING, "WARNING" },
+		{ LOG_NOTICE, "NOTICE" },
+		{ LOG_INFO, "INFO" },
+		{ LOG_DEBUG, "DEBUG" }
+	};
+
+	int priority;
+
+	priority = lp_parm_enum(SNUM(handle->conn), "full_audit", "priority", enum_log_priorities, LOG_NOTICE);
+
+	return priority;
 }
 
 static char *audit_prefix(connection_struct *conn)



More information about the samba-cvs mailing list