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