saAttr.lpSecurityDescriptor = NULL;
/* Assume failure to start process */
+ memset(&process_handle, 0, sizeof(process_handle));
process_handle.status = -1;
/* Set up pipe for stdout */
static int max_fd = -1;
/* Assume failure to start */
+ memset(&process_handle, 0, sizeof(process_handle));
process_handle.status = -1;
/* We do the strlen here because strlen() is not signal handler safe,
return -1;
}
}
-
- return 0;
#else
int stat_loc;
int retval;
if (exit_code != NULL)
*exit_code = WEXITSTATUS(stat_loc);
#endif // MS_WINDOWS
+
+ return 0;
}
#ifdef MS_WINDOWS
"Started port forwarding helper (%s)", filename);
#else
log_info(LD_GENERAL,
- "Started port forwarding helper (%s) with pid %d", filename, child_pid);
+ "Started port forwarding helper (%s) with pid %d", filename,
+ child_handle.pid);
#endif
}
const char **argv);
int tor_get_exit_code(const process_handle_t process_handle,
int block, int *exit_code);
+#ifdef MS_WINDOWS
ssize_t tor_read_all_handle(HANDLE h, char *buf, size_t count, HANDLE hProcess);
+#endif
ssize_t tor_read_all_from_process_stdout(const process_handle_t process_handle,
char *buf, size_t count);
ssize_t tor_read_all_from_process_stderr(const process_handle_t process_handle,