1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-10 01:48:00 +00:00

Log the client process ID for Windows named pipes too.

Turns out it didn't take much googling to find the right API function.
This commit is contained in:
Simon Tatham 2015-05-18 16:00:13 +01:00
parent c8f83979a3
commit 5fc4bbf59d

View File

@ -236,6 +236,26 @@ static const char *sk_handle_socket_error(Socket s)
static char *sk_handle_peer_info(Socket s) static char *sk_handle_peer_info(Socket s)
{ {
Handle_Socket ps = (Handle_Socket) s;
ULONG pid;
static HMODULE kernel32_module;
DECL_WINDOWS_FUNCTION(static, BOOL, GetNamedPipeClientProcessId,
(HANDLE, PULONG));
if (!kernel32_module) {
kernel32_module = load_system32_dll("kernel32.dll");
GET_WINDOWS_FUNCTION(kernel32_module, GetNamedPipeClientProcessId);
}
/*
* Of course, not all handles managed by this module will be
* server ends of named pipes, but if they are, then it's useful
* to log what we can find out about the client end.
*/
if (p_GetNamedPipeClientProcessId &&
p_GetNamedPipeClientProcessId(ps->send_H, &pid))
return dupprintf("process id %lu", (unsigned long)pid);
return NULL; return NULL;
} }