I've found a regression in neon 0.17.1 which at least means the
persistent connection timeout isn't handled properly. I'm still looking
at the 207 error Daniel saw; there is an error handling bug fixed below
too, probably related.
Thanks for the traces.
Index: ne_request.c
===================================================================
RCS file: /home/joe/lib/cvsroot/neon/src/ne_request.c,v
retrieving revision 1.20
diff -u -r1.20 ne_request.c
--- ne_request.c 2001/10/07 15:16:19 1.20
+++ ne_request.c 2001/10/25 21:07:16
@@ -852,8 +852,6 @@
char *buffer = req->respbuf->data;
DEBUG_DUMP_REQUEST(request);
-
- sess->reqcount++; /* increase the counter. */
/* Send the Request-Line and headers */
NE_DEBUG(NE_DBG_HTTP, "Sending headers (#%d)\n", sess->reqcount);
@@ -862,6 +860,9 @@
if (ret != NE_OK) {
return ret;
}
+
+ sess->reqcount++; /* increase the counter. */
+
ret = sock_send_string(req->session->socket, request);
if (ret == SOCK_CLOSED && sess->reqcount > 1) {
/* Presume this is a persistent connection timeout. */
@@ -936,7 +937,9 @@
* response. So loop while we get them. */
do {
- if (sock_readline(sess->socket, buffer, BUFSIZ) <= 0) {
+ ret = sock_readline(sess->socket, buffer, BUFSIZ);
+
+ if (ret <= 0) {
if (sess->reqcount > 1) {
return set_sockerr(req, _("Could not read status line"), ret);
} else {
@@ -1174,6 +1177,7 @@
ret = send_request(req);
/* Retry this once: persistent connection failure. */
if (ret == NE_RETRY && !req->session->no_persist) {
+ NE_DEBUG(NE_DBG_HTTP, "Persistent connection timed out, retrying.");
ne_close_connection(req->session);
ret = send_request(req);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Oct 21 14:36:46 2006