From db8a5b2aa96d071bc7813522d6f4e0cfbc9b969b Mon Sep 17 00:00:00 2001 From: Wilfried Goesgens Date: Mon, 22 Nov 2010 20:41:28 +0100 Subject: [PATCH] Add PID/GID/UID of communications parters with unix domain sockets to login-loglines. This is an addition to Stuarts patch. --- citadel/citserver.c | 6 ++++++ citadel/citserver.h | 2 +- citadel/context.h | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/citadel/citserver.c b/citadel/citserver.c index 1df958512..93a02389f 100644 --- a/citadel/citserver.c +++ b/citadel/citserver.c @@ -905,6 +905,7 @@ void begin_session(CitContext *con) *con->fake_username = '\0'; *con->fake_hostname = '\0'; *con->fake_roomname = '\0'; + *con->cs_clientinfo = '\0'; generate_nonce(con); safestrncpy(con->cs_host, config.c_fqdn, sizeof con->cs_host); safestrncpy(con->cs_addr, "", sizeof con->cs_addr); @@ -945,6 +946,11 @@ void begin_session(CitContext *con) database, after a reverse lookup on the UID to get the account name. We can take this opportunity to check to see if this is a legit account. */ + snprintf(con->cs_clientinfo, sizeof(con->cs_clientinfo), + "PID: "F_PID_T"; UID: "F_UID_T"; GID: "F_XPID_T" ", + credentials.pid, + credentials.uid, + credentials.gid); } } #endif diff --git a/citadel/citserver.h b/citadel/citserver.h index 437f4b28a..c7cb29b0c 100644 --- a/citadel/citserver.h +++ b/citadel/citserver.h @@ -29,7 +29,7 @@ struct UserProcList { char user[64]; }; -#define CTDLUSERIP (IsEmptyStr(CC->cs_addr) ? "localsocket" : CC->cs_addr) +#define CTDLUSERIP (IsEmptyStr(CC->cs_addr) ? CC->cs_clientinfo: CC->cs_addr) void cit_backtrace(void); void cit_panic_backtrace(int SigNum); diff --git a/citadel/context.h b/citadel/context.h index b4607da63..3b05a2b0d 100644 --- a/citadel/context.h +++ b/citadel/context.h @@ -63,6 +63,7 @@ struct CitContext { int cs_clientdev; /* client developer ID */ int cs_clienttyp; /* client type code */ int cs_clientver; /* client version number */ + char cs_clientinfo[256];/* if its a unix domain socket, some info for logging. */ uid_t cs_UDSclientUID; /* the uid of the client when talking via UDS */ char cs_clientname[32]; /* name of client software */ char cs_host[64]; /* host logged in from */ -- 2.30.2