adium 5416:ef796c40efb0: Fix a read returning 0 in the SocketRea...

commits at adium.im commits at adium.im
Tue Mar 26 22:47:41 UTC 2013


details:	http://hg.adium.im/adium/rev/ef796c40efb0
revision:	5416:ef796c40efb0
branch:		adium-1.5.7
author:		Thijs Alkemade <me at thijsalkema.de>
date:		Tue Mar 26 23:47:30 2013 +0100

Fix a read returning 0 in the SocketRead callback for SSL being handled as an error, while it's meant to indicate "no data available".

This would cause disconnections with the error "(Libpurple: cdsa) receive failed (-9802): Undefined error: 0".

Fixes #16356, fixes #15405, fixes #15411, fixes #15741

diffs (25 lines):

diff -r 5816a0c4307a -r ef796c40efb0 Plugins/Purple Service/libpurple_extensions/ssl-cdsa.c
--- a/Plugins/Purple Service/libpurple_extensions/ssl-cdsa.c	Tue Mar 19 20:25:26 2013 +0100
+++ b/Plugins/Purple Service/libpurple_extensions/ssl-cdsa.c	Tue Mar 26 23:47:30 2013 +0100
@@ -230,17 +230,18 @@
             switch(theErr) {
                 case ENOENT:
                     /* connection closed */
-                    rtn = errSSLClosedGraceful; 
+                    rtn = errSSLClosedGraceful;
                     break;
                 case ECONNRESET:
                     rtn = errSSLClosedAbort;
                     break;
+				case 0:
                 case EAGAIN:
                     rtn = errSSLWouldBlock;
                     break;
                 default:
-                    fprintf(stderr,"SocketRead: read(%lu) error %d\n", 
-                             (unsigned long)bytesToGo, theErr);
+                    fprintf(stderr,"SocketRead: read(%lu) error %d\n",
+							(unsigned long)bytesToGo, theErr);
                     rtn = errSSLFatalAlert;
                     break;
             }




More information about the commits mailing list