mirror of
https://github.com/cesanta/mongoose.git
synced 2025-01-21 09:23:10 +08:00
Add build target for leenoox (using docker)
PUBLISHED_FROM=46a7902a727e0ba34c3dbbe5ee04d5119afbaaff
This commit is contained in:
parent
fd067c8077
commit
6c99691d1c
28
mongoose.c
28
mongoose.c
@ -6676,9 +6676,9 @@ static void mg_abs_path(const char *utf8_path, char *abs_path, size_t len) {
|
|||||||
WideCharToMultiByte(CP_UTF8, 0, buf2, wcslen(buf2) + 1, abs_path, len, 0, 0);
|
WideCharToMultiByte(CP_UTF8, 0, buf2, wcslen(buf2) + 1, abs_path, len, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mg_start_process(const char *interp, const char *cmd,
|
static pid_t mg_start_process(const char *interp, const char *cmd,
|
||||||
const char *env, const char *envp[],
|
const char *env, const char *envp[],
|
||||||
const char *dir, sock_t sock) {
|
const char *dir, sock_t sock) {
|
||||||
STARTUPINFOW si;
|
STARTUPINFOW si;
|
||||||
PROCESS_INFORMATION pi;
|
PROCESS_INFORMATION pi;
|
||||||
HANDLE a[2], b[2], me = GetCurrentProcess();
|
HANDLE a[2], b[2], me = GetCurrentProcess();
|
||||||
@ -6733,12 +6733,6 @@ static int mg_start_process(const char *interp, const char *cmd,
|
|||||||
(void *) env, full_dir, &si, &pi) != 0) {
|
(void *) env, full_dir, &si, &pi) != 0) {
|
||||||
mg_spawn_stdio_thread(sock, a[1], mg_push_to_stdin);
|
mg_spawn_stdio_thread(sock, a[1], mg_push_to_stdin);
|
||||||
mg_spawn_stdio_thread(sock, b[0], mg_pull_from_stdout);
|
mg_spawn_stdio_thread(sock, b[0], mg_pull_from_stdout);
|
||||||
|
|
||||||
CloseHandle(si.hStdOutput);
|
|
||||||
CloseHandle(si.hStdInput);
|
|
||||||
|
|
||||||
CloseHandle(pi.hThread);
|
|
||||||
CloseHandle(pi.hProcess);
|
|
||||||
} else {
|
} else {
|
||||||
CloseHandle(a[1]);
|
CloseHandle(a[1]);
|
||||||
CloseHandle(b[0]);
|
CloseHandle(b[0]);
|
||||||
@ -6747,13 +6741,19 @@ static int mg_start_process(const char *interp, const char *cmd,
|
|||||||
DBG(("CGI command: [%ls] -> %p", wcmd, pi.hProcess));
|
DBG(("CGI command: [%ls] -> %p", wcmd, pi.hProcess));
|
||||||
|
|
||||||
/* Not closing a[0] and b[1] because we've used DUPLICATE_CLOSE_SOURCE */
|
/* Not closing a[0] and b[1] because we've used DUPLICATE_CLOSE_SOURCE */
|
||||||
|
CloseHandle(si.hStdOutput);
|
||||||
|
CloseHandle(si.hStdInput);
|
||||||
|
/* TODO(lsm): check if we need close process and thread handles too */
|
||||||
|
/* CloseHandle(pi.hThread); */
|
||||||
|
/* CloseHandle(pi.hProcess); */
|
||||||
|
|
||||||
(void) envp;
|
(void) envp;
|
||||||
return (pi.hProcess != NULL);
|
return pi.hProcess;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
static int mg_start_process(const char *interp, const char *cmd,
|
static pid_t mg_start_process(const char *interp, const char *cmd,
|
||||||
const char *env, const char *envp[],
|
const char *env, const char *envp[],
|
||||||
const char *dir, sock_t sock) {
|
const char *dir, sock_t sock) {
|
||||||
char buf[500];
|
char buf[500];
|
||||||
pid_t pid = fork();
|
pid_t pid = fork();
|
||||||
(void) env;
|
(void) env;
|
||||||
@ -6791,7 +6791,7 @@ static int mg_start_process(const char *interp, const char *cmd,
|
|||||||
exit(EXIT_FAILURE); /* exec call failed */
|
exit(EXIT_FAILURE); /* exec call failed */
|
||||||
}
|
}
|
||||||
|
|
||||||
return (pid != 0);
|
return pid;
|
||||||
}
|
}
|
||||||
#endif /* _WIN32 */
|
#endif /* _WIN32 */
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user