diff options
author | tprouty <tprouty@b72e2a10-2d34-0410-9a71-d3beadf02b57> | 2009-08-26 01:38:14 +0000 |
---|---|---|
committer | Tim Prouty <tprouty@samba.org> | 2009-08-26 10:41:54 -0700 |
commit | 3ad9d108a7404d625454efda0d000e4caa543e7a (patch) | |
tree | fc683940170ab25a915f945bc43b0ab269dc9ad8 | |
parent | 22ee1cd7dbcd07470c915343872ee83ae90e3511 (diff) | |
download | samba-3ad9d108a7404d625454efda0d000e4caa543e7a.tar.gz samba-3ad9d108a7404d625454efda0d000e4caa543e7a.tar.bz2 samba-3ad9d108a7404d625454efda0d000e4caa543e7a.zip |
s3: Allow full_audit to play nice with smbd if it's using syslog
Explictly pass the facility from both smbd and full_audit to syslog.
Really the only major change is to not call openlog() in full_audit if
WITH_SYSLOG is defined, which implies that smbd is already using
syslog. This allows full audit to piggy-back on the same ident as
smbd, while still differentiating the logging via the facility.
-rw-r--r-- | source3/lib/debug.c | 6 | ||||
-rw-r--r-- | source3/modules/vfs_full_audit.c | 12 |
2 files changed, 17 insertions, 1 deletions
diff --git a/source3/lib/debug.c b/source3/lib/debug.c index e7dcfb4fdf..2e19f89863 100644 --- a/source3/lib/debug.c +++ b/source3/lib/debug.c @@ -856,6 +856,12 @@ void check_log_size( void ) else priority = priority_map[syslog_level]; + /* + * Specify the facility to interoperate with other syslog + * callers (vfs_full_audit for example). + */ + priority |= SYSLOG_FACILITY; + va_start(ap, format_str); ret = vasprintf(&msgbuf, format_str, ap); va_end(ap); diff --git a/source3/modules/vfs_full_audit.c b/source3/modules/vfs_full_audit.c index 667db7a4bd..0f6de79bcf 100644 --- a/source3/modules/vfs_full_audit.c +++ b/source3/modules/vfs_full_audit.c @@ -510,6 +510,7 @@ static void do_log(vfs_op_type op, bool success, vfs_handle_struct *handle, char *audit_pre = NULL; va_list ap; char *op_msg = NULL; + int priority; if (success && (!log_success(handle, op))) goto out; @@ -530,8 +531,15 @@ static void do_log(vfs_op_type op, bool success, vfs_handle_struct *handle, goto out; } + /* + * Specify the facility to interoperate with other syslog callers + * (smbd for example). + */ + priority = audit_syslog_priority(handle) | + audit_syslog_facility(handle); + audit_pre = audit_prefix(talloc_tos(), handle->conn); - syslog(audit_syslog_priority(handle), "%s|%s|%s|%s\n", + syslog(priority, "%s|%s|%s|%s\n", audit_pre ? audit_pre : "", audit_opname(op), err_msg, op_msg); @@ -606,7 +614,9 @@ static int smb_full_audit_connect(vfs_handle_struct *handle, } ZERO_STRUCTP(pd); +#ifndef WITH_SYSLOG openlog("smbd_audit", 0, audit_syslog_facility(handle)); +#endif init_bitmap(&pd->success_ops, lp_parm_string_list(SNUM(handle->conn), "full_audit", "success", |