Revert "Windows: Wait for dumpcap to initialize."
This didn't fix the test failures. This reverts commit e5f4c5c8a80e2f5970b8c1d4fdfc29ab851f0e6f. Change-Id: I0cff5eff88d2b49806797cef83338dbbace42a4c Reviewed-on: https://code.wireshark.org/review/15135 Reviewed-by: Gerald Combs <gerald@wireshark.org>
This commit is contained in:
parent
e5f4c5c8a8
commit
b16166c36a
@ -98,11 +98,12 @@
|
|||||||
#include <process.h> /* For spawning child process */
|
#include <process.h> /* For spawning child process */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
static void create_dummy_signal_pipe();
|
static void create_dummy_signal_pipe();
|
||||||
static HANDLE dummy_signal_pipe; /* Dummy named pipe which lets the child check for a dropped connection */
|
static HANDLE dummy_signal_pipe; /* Dummy named pipe which lets the child check for a dropped connection */
|
||||||
static gchar *dummy_control_id;
|
static gchar *dummy_control_id;
|
||||||
static gboolean pipe_wait_for_init(int pipe_fd);
|
|
||||||
#else
|
#else
|
||||||
static const char *sync_pipe_signame(int);
|
static const char *sync_pipe_signame(int);
|
||||||
#endif
|
#endif
|
||||||
@ -695,10 +696,6 @@ sync_pipe_start(capture_options *capture_opts, capture_session *cap_session, inf
|
|||||||
g_free( (gpointer) argv);
|
g_free( (gpointer) argv);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
if (!pipe_wait_for_init(sync_pipe_read_fd)) {
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
cap_session->fork_child = pi.hProcess;
|
cap_session->fork_child = pi.hProcess;
|
||||||
/* We may need to store this and close it later */
|
/* We may need to store this and close it later */
|
||||||
CloseHandle(pi.hThread);
|
CloseHandle(pi.hThread);
|
||||||
@ -953,10 +950,6 @@ sync_pipe_open_command(char** argv, int *data_read_fd,
|
|||||||
g_free( (gpointer) argv);
|
g_free( (gpointer) argv);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if (!pipe_wait_for_init(*message_read_fd)) {
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
*fork_child = pi.hProcess;
|
*fork_child = pi.hProcess;
|
||||||
/* We may need to store this and close it later */
|
/* We may need to store this and close it later */
|
||||||
CloseHandle(pi.hThread);
|
CloseHandle(pi.hThread);
|
||||||
@ -1723,28 +1716,6 @@ pipe_convert_header(const guchar *header, int header_len, char *indicator, int *
|
|||||||
*block_len = (header[1]&0xFF)<<16 | (header[2]&0xFF)<<8 | (header[3]&0xFF);
|
*block_len = (header[1]&0xFF)<<16 | (header[2]&0xFF)<<8 | (header[3]&0xFF);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef _WIN32
|
|
||||||
/* CreateProcess returns immediately. Wait for the child process to send
|
|
||||||
us SP_INIT. Note that WaitForInputIdle is the wrong call to use here
|
|
||||||
as it only applies to GUI applications:
|
|
||||||
https://blogs.msdn.microsoft.com/oldnewthing/20100325-00/?p=14493
|
|
||||||
*/
|
|
||||||
gboolean
|
|
||||||
pipe_wait_for_init(int pipe_fd) {
|
|
||||||
char indicator;
|
|
||||||
char buffer[SP_MAX_MSG_LEN+1] = {0};
|
|
||||||
char *primary_msg;
|
|
||||||
|
|
||||||
pipe_read_block(pipe_fd, &indicator, SP_MAX_MSG_LEN, buffer, &primary_msg);
|
|
||||||
if (indicator != SP_INIT) {
|
|
||||||
report_failure("Child sent startup indicator '%c', expected '%c'.",
|
|
||||||
indicator, SP_INIT);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* read a message from the sending pipe in the standard format
|
/* read a message from the sending pipe in the standard format
|
||||||
(1-byte message indicator, 3-byte message length (excluding length
|
(1-byte message indicator, 3-byte message length (excluding length
|
||||||
and indicator field), and the rest is the message) */
|
and indicator field), and the rest is the message) */
|
||||||
|
@ -4131,8 +4131,6 @@ main(int argc, char *argv[])
|
|||||||
exit_main(1);
|
exit_main(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Let our parent know we're fully initialized. */
|
|
||||||
pipe_write_block(2, SP_INIT, "All systems go.");
|
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -62,7 +62,6 @@
|
|||||||
* Win32 only: Indications sent out on the signal pipe (from parent to child)
|
* Win32 only: Indications sent out on the signal pipe (from parent to child)
|
||||||
* (UNIX-like sends signals for this)
|
* (UNIX-like sends signals for this)
|
||||||
*/
|
*/
|
||||||
#define SP_INIT 'I' /* child process initialized */
|
|
||||||
#define SP_QUIT 'Q' /* "gracefully" capture quit message (SIGUSR1) */
|
#define SP_QUIT 'Q' /* "gracefully" capture quit message (SIGUSR1) */
|
||||||
|
|
||||||
/* write a single message header to the recipient pipe */
|
/* write a single message header to the recipient pipe */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user