"\n -i Inetd mode" \
"\n -f Don't daemonize" \
"\n -v[v] Verbose" \
- "\n -c FILE Configuration file (default httpd.conf)" \
"\n -p [IP:]PORT Bind to ip:port (default *:80)" \
IF_FEATURE_HTTPD_SETUID( \
"\n -u USER[:GRP] Set uid/gid after binding to port") \
IF_FEATURE_HTTPD_BASIC_AUTH( \
"\n -r REALM Authentication Realm for Basic Authentication") \
"\n -h HOME Home directory (default .)" \
+ "\n -c FILE Configuration file (default {/etc,HOME}/httpd.conf)" \
IF_FEATURE_HTTPD_AUTH_MD5( \
"\n -m STRING MD5 crypt STRING") \
"\n -e STRING HTML encode STRING" \
/* post_len <= 0 && hdr_cnt <= 0:
* no more POST data to CGI,
* let CGI see EOF on CGI's stdin */
- close(toCgi_wr);
+ if (toCgi_wr != fromCgi_rd)
+ close(toCgi_wr);
toCgi_wr = 0;
}
}
/* Now wait on the set of sockets */
- count = safe_poll(pfd, 3, -1);
+ count = safe_poll(pfd, toCgi_wr ? TO_CGI+1 : FROM_CGI+1, -1);
if (count <= 0) {
#if 0
if (safe_waitpid(pid, &status, WNOHANG) <= 0) {
header_ptr += 2;
write(proxy_fd, header_buf, header_ptr - header_buf);
free(header_buf); /* on the order of 8k, free it */
- /* cgi_io_loop_and_exit needs to have two distinct fds */
- cgi_io_loop_and_exit(proxy_fd, dup(proxy_fd), length);
+ cgi_io_loop_and_exit(proxy_fd, proxy_fd, length);
}
#endif