2
0
Fork 0

Handle ETIMEDOUT as connection close

personal/stbuehler/wip
Stefan Bühler 2010-01-30 23:52:48 +01:00
parent fd72f61f68
commit 3c2cef5f0d
4 changed files with 7 additions and 0 deletions

View File

@ -100,6 +100,7 @@ liNetworkStatus li_network_read(liVRequest *vr, int fd, liChunkQueue *cq) {
#endif
return len ? LI_NETWORK_STATUS_SUCCESS : LI_NETWORK_STATUS_WAIT_FOR_EVENT;
case ECONNRESET:
case ETIMEDOUT:
return LI_NETWORK_STATUS_CONNECTION_CLOSE;
default:
VR_ERROR(vr, "oops, read from fd=%d failed: %s", fd, g_strerror(errno) );

View File

@ -28,6 +28,7 @@ static network_sendfile_result lighty_sendfile(liVRequest *vr, int fd, int filef
return NSR_WAIT_FOR_EVENT;
case ECONNRESET:
case EPIPE:
case ETIMEDOUT:
return NSR_CLOSE;
case EINTR:
break; /* try again */
@ -59,6 +60,7 @@ static network_sendfile_result lighty_sendfile(liVRequest *vr, int fd, int filef
return NSR_WAIT_FOR_EVENT;
case ENOTCONN:
case EPIPE:
case ETIMEDOUT:
return NSR_CLOSE;
case EINTR:
if (r) {
@ -95,6 +97,7 @@ static network_sendfile_result lighty_sendfile(liVRequest *vr, int fd, int filef
case EAGAIN:
return NSR_WAIT_FOR_EVENT;
case EPIPE:
case ETIMEDOUT:
return NSR_CLOSE;
case EINTR:
break; /* try again */
@ -125,6 +128,7 @@ static network_sendfile_result lighty_sendfile(liVRequest *vr, int fd, int filef
return NSR_WAIT_FOR_EVENT;
case ENOTCONN:
case EPIPE:
case ETIMEDOUT:
return NSR_CLOSE;
case EINTR:
if (bytes) {

View File

@ -32,6 +32,7 @@ liNetworkStatus li_network_backend_write(liVRequest *vr, int fd, liChunkQueue *c
return did_write_something ? LI_NETWORK_STATUS_SUCCESS : LI_NETWORK_STATUS_WAIT_FOR_EVENT;
case ECONNRESET:
case EPIPE:
case ETIMEDOUT:
return LI_NETWORK_STATUS_CONNECTION_CLOSE;
default:
VR_ERROR(vr, "oops, write to fd=%d failed: %s", fd, g_strerror(errno));

View File

@ -77,6 +77,7 @@ liNetworkStatus li_network_backend_writev(liVRequest *vr, int fd, liChunkQueue *
goto cleanup;
case ECONNRESET:
case EPIPE:
case ETIMEDOUT:
res = LI_NETWORK_STATUS_CONNECTION_CLOSE;
goto cleanup;
case EINTR: