]> granicus.if.org Git - python/commitdiff
fix issue #2944: asyncore doesn't handle connection refused correctly (patch by Alexa...
authorGiampaolo Rodolà <g.rodola@gmail.com>
Wed, 4 Aug 2010 08:35:25 +0000 (08:35 +0000)
committerGiampaolo Rodolà <g.rodola@gmail.com>
Wed, 4 Aug 2010 08:35:25 +0000 (08:35 +0000)
Lib/asyncore.py
Misc/ACKS
Misc/NEWS

index c23c8aa3fe4aa614b44eb216c23e66724728321f..c3b9d769549f024d518b146ef49ee24632c66c37 100644 (file)
@@ -435,8 +435,11 @@ class dispatcher:
             self.handle_read()
 
     def handle_connect_event(self):
-        self.connected = True
+        err = self.socket.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
+        if err != 0:
+            raise socket.error(err, _strerror(err))
         self.handle_connect()
+        self.connected = True
 
     def handle_write_event(self):
         if self.accepting:
index 089939ee1e2af1500bae03d17b25a1128360a33c..e3aa41cf5ee6b64608a8cb6c7d9475a575c195bd 100644 (file)
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -871,3 +871,4 @@ Uwe Zessin
 Tarek Ziadé
 Peter Åstrand
 Andrej Krpic
+Alexander Shigin
index 545ef74f21c8a67c2cff78e7e6d7dfe70840ad92..dd5252cce2c646e3b9f7047fddaa42759240abdf 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -24,6 +24,8 @@ Core and Builtins
 Library
 -------
 
+- Issue #2944: asyncore doesn't handle connection refused correctly.
+
 - Issue #3196: email header decoding is now forgiving if an RFC2047
   encoded word encoded in base64 is lacking padding.