From b598e258a43dc3ca6f3dcc37ceb6a2a6c18227d1 Mon Sep 17 00:00:00 2001 From: Jay Sorg Date: Tue, 1 Oct 2013 22:42:12 -0700 Subject: add pid logging --- common/os_calls.c | 32 ++++++++++++++++++++++++++++++++ common/os_calls.h | 1 + 2 files changed, 33 insertions(+) (limited to 'common') diff --git a/common/os_calls.c b/common/os_calls.c index c5a15bb0..a26a180f 100644 --- a/common/os_calls.c +++ b/common/os_calls.c @@ -503,6 +503,38 @@ g_tcp_local_socket(void) #endif } +/*****************************************************************************/ +int APP_CC +g_sck_get_peer_cred(int sck, int *pid, int *uid, int *gid) +{ + int ucred_length; + struct myucred + { + pid_t pid; + uid_t uid; + gid_t gid; + } credentials; + + ucred_length = sizeof(credentials); + if (getsockopt(sck, SOL_SOCKET, SO_PEERCRED, &credentials, &ucred_length)) + { + return 1; + } + if (pid != 0) + { + *pid = credentials.pid; + } + if (uid != 0) + { + *uid = credentials.uid; + } + if (gid != 0) + { + *gid = credentials.gid; + } + return 0; +} + /*****************************************************************************/ void APP_CC g_tcp_close(int sck) diff --git a/common/os_calls.h b/common/os_calls.h index 443a1840..b68dd4bf 100644 --- a/common/os_calls.h +++ b/common/os_calls.h @@ -46,6 +46,7 @@ int APP_CC g_tcp_set_no_delay(int sck); int APP_CC g_tcp_set_keepalive(int sck); int APP_CC g_tcp_socket(void); int APP_CC g_tcp_local_socket(void); +int APP_CC g_sck_get_peer_cred(int sck, int *pid, int *uid, int *gid); void APP_CC g_tcp_close(int sck); int APP_CC g_tcp_connect(int sck, const char* address, const char* port); int APP_CC g_tcp_local_connect(int sck, const char* port); -- cgit v1.2.1