add pid logging

ulab-next
Jay Sorg 11 years ago
parent cd93db2c98
commit b598e258a4

@ -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)

@ -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);

@ -136,6 +136,28 @@ lib_mod_start(struct mod *mod, int w, int h, int bpp)
return 0;
}
/******************************************************************************/
static int APP_CC
lib_mod_log_peer(struct mod *mod)
{
int my_pid;
int pid;
int uid;
int gid;
my_pid = g_get_pid();
if (g_sck_get_peer_cred(mod->sck, &pid, &uid, &gid) == 0)
{
g_writeln("lib_mod_connect: xrdp pid %d", my_pid);
g_writeln(" X11rdp pid %d, uid %d gid %d", pid, uid, gid);
}
else
{
g_writeln("lib_mod_connect: g_sck_get_peer_cred failed");
}
return 0;
}
/******************************************************************************/
/* return error */
int DEFAULT_CC
@ -252,6 +274,14 @@ lib_mod_connect(struct mod *mod)
g_sleep(250);
}
if (error == 0)
{
if (use_uds)
{
lib_mod_log_peer(mod);
}
}
if (error == 0)
{
/* send version message */

Loading…
Cancel
Save