diff options
author | Arno Töll <arno@debian.org> | 2012-11-21 23:03:51 +0100 |
---|---|---|
committer | Arno Töll <arno@debian.org> | 2012-11-21 23:03:51 +0100 |
commit | f1532bfdd56dc641ae366f6ecd4c490c11117aac (patch) | |
tree | e58012163da210efa84fdbdcefd069ee511fd3e4 /src/network_openssl.c | |
parent | 3f9e670856f606be4d9899e2d2a9ed4708575f10 (diff) | |
download | lighttpd-f1532bfdd56dc641ae366f6ecd4c490c11117aac.tar.gz |
Imported Upstream version 1.4.19upstream/1.4.19
Diffstat (limited to 'src/network_openssl.c')
-rw-r--r-- | src/network_openssl.c | 27 |
1 files changed, 2 insertions, 25 deletions
diff --git a/src/network_openssl.c b/src/network_openssl.c index e6df35e..ff9fb97 100644 --- a/src/network_openssl.c +++ b/src/network_openssl.c @@ -58,31 +58,6 @@ int network_write_chunkqueue_openssl(server *srv, connection *con, SSL *ssl, chu SSL_set_shutdown(ssl, SSL_RECEIVED_SHUTDOWN); } - /* evil hack for opera 9.01 and 8.54 and earlier - * - * opera hangs if the trainling 0\r\n\r\n is in a seperate SSL-packet - * - * we try to move the packet into the previous mem-chunk if possible - */ - if ((cq == con->write_queue) && - (con->response.transfer_encoding & HTTP_TRANSFER_ENCODING_CHUNKED) && - (con->file_finished)) { - /* merge the last chunk into the previous chunk */ - - for(c = cq->first; c && c->next && c->next->next; c = c->next); - - if (c && - c->type == MEM_CHUNK && - c->next && - c->next->type == MEM_CHUNK && - c->next->mem->used == sizeof("0\r\n\r\n") && - 0 == strcmp(c->next->mem->ptr, "0\r\n\r\n")) { - buffer_append_string_buffer(c->mem, c->next->mem); - - c->next->mem->used = 0; - } - } - for(c = cq->first; c; c = c->next) { int chunk_finished = 0; @@ -128,6 +103,7 @@ int network_write_chunkqueue_openssl(server *srv, connection *con, SSL *ssl, chu /* no, but we have errno */ switch(errno) { case EPIPE: + case ECONNRESET: return -2; default: log_error_write(srv, __FILE__, __LINE__, "sddds", "SSL:", @@ -230,6 +206,7 @@ int network_write_chunkqueue_openssl(server *srv, connection *con, SSL *ssl, chu /* no, but we have errno */ switch(errno) { case EPIPE: + case ECONNRESET: return -2; default: log_error_write(srv, __FILE__, __LINE__, "sddds", "SSL:", |