Improved handling of posts

This commit is contained in:
Sascha Schumann 2001-10-27 11:27:39 +00:00
parent 5ee719bae0
commit a3368ababa

View file

@ -150,8 +150,10 @@ static int sapi_thttpd_read_post(char *buffer, uint count_bytes TSRMLS_DC)
while (read_bytes < count_bytes) { while (read_bytes < count_bytes) {
tmp = recv(TG(hc)->conn_fd, buffer + read_bytes, tmp = recv(TG(hc)->conn_fd, buffer + read_bytes,
count_bytes - read_bytes, 0); count_bytes - read_bytes, 0);
if (tmp <= 0) if (tmp == 0 || (tmp == -1 && errno != EAGAIN))
break; break;
/* A simple "tmp > 0" produced broken code on Solaris/GCC */
if (tmp != 0 && tmp != -1)
read_bytes += tmp; read_bytes += tmp;
} }
@ -502,6 +504,9 @@ static off_t thttpd_real_php_request(httpd_conn *hc TSRMLS_DC)
TG(hc) = hc; TG(hc) = hc;
hc->bytes_sent = 0; hc->bytes_sent = 0;
if (hc->method == METHOD_POST)
hc->should_linger = 1;
thttpd_request_ctor(TSRMLS_C); thttpd_request_ctor(TSRMLS_C);
thttpd_module_main(TSRMLS_C); thttpd_module_main(TSRMLS_C);