Browse Source

simple-ipc/ipc-win32: add trace2 debugging

Create "ipc-debug" category events to log unexpected errors
when creating Simple-IPC connections.

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Jeff Hostetler 3 years ago committed by Junio C Hamano
parent
commit
9bd51d4975
  1. 25
      compat/simple-ipc/ipc-win32.c

25
compat/simple-ipc/ipc-win32.c

@ -49,6 +49,9 @@ static enum ipc_active_state get_active_state(wchar_t *pipe_path) @@ -49,6 +49,9 @@ static enum ipc_active_state get_active_state(wchar_t *pipe_path)
if (GetLastError() == ERROR_FILE_NOT_FOUND)
return IPC_STATE__PATH_NOT_FOUND;

trace2_data_intmax("ipc-debug", NULL, "getstate/waitpipe/gle",
(intmax_t)GetLastError());

return IPC_STATE__OTHER_ERROR;
}

@ -109,9 +112,15 @@ static enum ipc_active_state connect_to_server( @@ -109,9 +112,15 @@ static enum ipc_active_state connect_to_server(
t_start_ms = (DWORD)(getnanotime() / 1000000);

if (!WaitNamedPipeW(wpath, timeout_ms)) {
if (GetLastError() == ERROR_SEM_TIMEOUT)
DWORD gleWait = GetLastError();

if (gleWait == ERROR_SEM_TIMEOUT)
return IPC_STATE__NOT_LISTENING;

trace2_data_intmax("ipc-debug", NULL,
"connect/waitpipe/gle",
(intmax_t)gleWait);

return IPC_STATE__OTHER_ERROR;
}

@ -133,17 +142,31 @@ static enum ipc_active_state connect_to_server( @@ -133,17 +142,31 @@ static enum ipc_active_state connect_to_server(
break; /* try again */

default:
trace2_data_intmax("ipc-debug", NULL,
"connect/createfile/gle",
(intmax_t)gle);

return IPC_STATE__OTHER_ERROR;
}
}

if (!SetNamedPipeHandleState(hPipe, &mode, NULL, NULL)) {
gle = GetLastError();
trace2_data_intmax("ipc-debug", NULL,
"connect/setpipestate/gle",
(intmax_t)gle);

CloseHandle(hPipe);
return IPC_STATE__OTHER_ERROR;
}

*pfd = _open_osfhandle((intptr_t)hPipe, O_RDWR|O_BINARY);
if (*pfd < 0) {
gle = GetLastError();
trace2_data_intmax("ipc-debug", NULL,
"connect/openosfhandle/gle",
(intmax_t)gle);

CloseHandle(hPipe);
return IPC_STATE__OTHER_ERROR;
}

Loading…
Cancel
Save