list_add_tail(&in->list, &interpreters);
}
-static void cgi_main(struct client *cl, struct path_info *pi, int fd)
+static void cgi_main(struct client *cl, struct path_info *pi, char *url)
{
const struct interpreter *ip = pi->ip;
struct env_var *var;
- dup2(fd, 0);
- dup2(fd, 1);
- close(fd);
clearenv();
setenv("PATH", conf.cgi_path, 1);
" %s: %s\n", ip ? ip->path : pi->phys, strerror(errno));
}
-static void cgi_handle_request(struct client *cl, const char *url, struct path_info *pi)
+static void cgi_handle_request(struct client *cl, char *url, struct path_info *pi)
{
unsigned int mode = S_IFREG | S_IXOTH;
return;
}
- if (!uh_create_process(cl, pi, cgi_main)) {
+ if (!uh_create_process(cl, pi, url, cgi_main)) {
uh_client_error(cl, 500, "Internal Server Error",
"Failed to create CGI process: %s", strerror(errno));
return;