Project

General

Profile

Bug #2302 ยป mod_cgi_c.patch

kahic, 2011-03-12 13:57

View differences:

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:
    (1-1/1)