Bug #2302 ยป mod_cgi_c.patch
lighttpd-1.4.26-mod/src/mod_cgi.c 2011-03-12 11:18:11.000000000 +0100 | ||
---|---|---|
char *c;
|
||
const char *s;
|
||
server_socket *srv_sock = con->srv_socket;
|
||
server_socket dummy;
|
||
if (!srv_sock) {
|
||
srv_sock= &dummy;
|
||
log_error_write(srv, __FILE__, __LINE__, "s", "(debug) Problem: No server socket");
|
||
}
|
||
/* move stdout to from_cgi_fd[1] */
|
||
close(STDOUT_FILENO);
|
||
... | ... | |
#else
|
||
s = inet_ntoa(srv_sock->addr.ipv4.sin_addr);
|
||
#endif
|
||
cgi_env_add(&env, CONST_STR_LEN("SERVER_NAME"), s, strlen(s));
|
||
if (s)
|
||
cgi_env_add(&env, CONST_STR_LEN("SERVER_NAME"), s, strlen(s));
|
||
}
|
||
cgi_env_add(&env, CONST_STR_LEN("GATEWAY_INTERFACE"), CONST_STR_LEN("CGI/1.1"));
|
||
s = get_http_version_name(con->request.http_version);
|
||
cgi_env_add(&env, CONST_STR_LEN("SERVER_PROTOCOL"), s, strlen(s));
|
||
if (s)
|
||
cgi_env_add(&env, CONST_STR_LEN("SERVER_PROTOCOL"), s, strlen(s));
|
||
LI_ltostr(buf,
|
||
#ifdef HAVE_IPV6
|
||
... | ... | |
s = "";
|
||
break;
|
||
}
|
||
cgi_env_add(&env, CONST_STR_LEN("SERVER_ADDR"), s, strlen(s));
|
||
if (s)
|
||
cgi_env_add(&env, CONST_STR_LEN("SERVER_ADDR"), s, strlen(s));
|
||
s = get_http_method_name(con->request.http_method);
|
||
cgi_env_add(&env, CONST_STR_LEN("REQUEST_METHOD"), s, strlen(s));
|
||
if (s)
|
||
cgi_env_add(&env, CONST_STR_LEN("REQUEST_METHOD"), s, strlen(s));
|
||
if (!buffer_is_empty(con->request.pathinfo)) {
|
||
cgi_env_add(&env, CONST_STR_LEN("PATH_INFO"), CONST_BUF_LEN(con->request.pathinfo));
|
||
... | ... | |
s = "";
|
||
break;
|
||
}
|
||
cgi_env_add(&env, CONST_STR_LEN("REMOTE_ADDR"), s, strlen(s));
|
||
if (s)
|
||
cgi_env_add(&env, CONST_STR_LEN("REMOTE_ADDR"), s, strlen(s));
|
||
LI_ltostr(buf,
|
||
#ifdef HAVE_IPV6
|
||
... | ... | |
/* exec the cgi */
|
||
execve(args[0], args, env.ptr);
|
||
/* log_error_write(srv, __FILE__, __LINE__, "sss", "CGI failed:", strerror(errno), args[0]); */
|
||
log_error_write(srv, __FILE__, __LINE__, "sss", "CGI failed:", strerror(errno), args[0]);
|
||
/* */
|
||
#if 0
|
||
SEGFAULT();
|
||
#endif
|
||
exit(1);
|
||
break;
|
||
}
|
||
case -1:
|