From 9bd2fba0ffe3fa36f1d89e48466d4368e369f807 Mon Sep 17 00:00:00 2001 From: Martin Stjernholm <mast@lysator.liu.se> Date: Wed, 4 Aug 1999 23:17:54 +0200 Subject: [PATCH] Ugly short-term kludge for SSL-stops-after-16k-sent-bug on NT. Rev: lib/modules/SSL.pmod/sslfile.pike:1.16 --- lib/modules/SSL.pmod/sslfile.pike | 26 ++++++-------------------- 1 file changed, 6 insertions(+), 20 deletions(-) diff --git a/lib/modules/SSL.pmod/sslfile.pike b/lib/modules/SSL.pmod/sslfile.pike index 5c88fdc491..66fc245af8 100644 --- a/lib/modules/SSL.pmod/sslfile.pike +++ b/lib/modules/SSL.pmod/sslfile.pike @@ -1,4 +1,4 @@ -/* $Id: sslfile.pike,v 1.15 1999/05/06 01:01:59 mast Exp $ +/* $Id: sslfile.pike,v 1.16 1999/08/04 21:17:54 mast Exp $ * */ @@ -37,13 +37,6 @@ void die(int status) #endif } is_closed = 1; -#ifdef SSL3_CLOSE_BUG_STILL_EXISTS -#ifndef CALLBACK_BUG_FIXED - // The write callback sometimes gets called although the socket is closed. - socket::set_write_callback(0); - socket::set_read_callback(0); -#endif /* CALLBACK_BUG_FIXED */ -#endif socket::close(); } @@ -76,18 +69,11 @@ private int queue_write() void close() { -#ifdef SSL3_CLOSE_BUG_STILL_EXISTS - if (is_closed) - throw( ({ "SSL.sslfile->close: Already closed!\n", backtrace() }) ); -#endif - #ifdef SSL3_DEBUG werror("SSL.sslfile->close\n"); #endif -#ifndef SSL3_CLOSE_BUG_STILL_EXISTS if (is_closed) return; -#endif is_closed = 1; send_close(); @@ -103,9 +89,7 @@ int write(string s) werror("SSL.sslfile->write\n"); #endif -#ifndef SSL3_CLOSE_BUG_STILL_EXISTS if (is_closed) return -1; -#endif int len = strlen(s); object packet; @@ -197,7 +181,11 @@ private void ssl_write_callback(mixed id) write_buffer = write_buffer[written ..]; } else { if (written < 0) - die(-1); +#ifdef __NT__ + // You don't want to know.. (Bug observed in Pike 0.6.132.) + if (socket::errno() != 1) +#endif + die(-1); } } int res = queue_write(); @@ -280,9 +268,7 @@ void set_nonblocking(function ...args) werror(sprintf("SSL.sslfile->set_nonblocking(%O)\n", args)); #endif -#ifndef SSL3_CLOSE_BUG_STILL_EXISTS if (is_closed) return; -#endif switch (sizeof(args)) { -- GitLab