apr_socket_send() can return both an error and data, account for data in
the latter case (i.e. let next call fail, if any).
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@
1814118 13f79535-47bb-0310-9956-
ffa450edef68
return;
}
l = e;
- e = APR_SUCCESS;
}
else
#endif
{
e = apr_socket_send(c->aprsock, request + c->rwrote, &l);
- if (e != APR_SUCCESS) {
+ if (e != APR_SUCCESS && !l) {
if (!APR_STATUS_IS_EAGAIN(e)) {
epipe++;
printf("Send request failed!\n");
close_connection(c);
- return;
}
- if (!l) {
+ else {
set_polled_events(c, APR_POLLOUT);
- return;
}
+ return;
}
}
totalposted += l;