r2089@chromobil: stefan | 2008-02-26 17:02:46 +0100

Fix #285: Remove workaround for buggy Opera version with ssl/chunked encoding.
 
  - The workaround may lead to a realloc, but the memory address for a repeated SSL_write must not change.


git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2084 152afb58-edef-0310-8abb-c4023f1b3aa9
svn/tags/lighttpd-1.4.19
Stefan Bühler 15 years ago
parent 75f92dd796
commit ad722324d9
  1. 25
      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;

Loading…
Cancel
Save