add pid logging
This commit is contained in:
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);
|
||||
|
30
xup/xup.c
30
xup/xup.c
@ -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…
Reference in New Issue
Block a user