]> granicus.if.org Git - python/commitdiff
Use connect_ex() instead of connect().
authorJeremy Hylton <jeremy@alum.mit.edu>
Mon, 29 Oct 2001 16:44:37 +0000 (16:44 +0000)
committerJeremy Hylton <jeremy@alum.mit.edu>
Mon, 29 Oct 2001 16:44:37 +0000 (16:44 +0000)
Removes old XXX comment and possible source of long-delays.

Lib/asyncore.py

index 613804d413f1de164b7d495c87063ba2f2c650e4..684e5d284f4d804a263fe641d149d121defa6129 100644 (file)
@@ -53,7 +53,7 @@ import sys
 
 import os
 from errno import EALREADY, EINPROGRESS, EWOULDBLOCK, ECONNRESET, \
-     ENOTCONN, ESHUTDOWN, EINTR
+     ENOTCONN, ESHUTDOWN, EINTR, EISCONN
 
 try:
     socket_map
@@ -301,17 +301,14 @@ class dispatcher:
 
     def connect (self, address):
         self.connected = 0
-        # XXX why not use connect_ex?
-        try:
-            self.socket.connect (address)
-        except socket.error, why:
-            if why[0] in (EINPROGRESS, EALREADY, EWOULDBLOCK):
-                return
-            else:
-                raise socket.error, why
-        self.addr = address
-        self.connected = 1
-        self.handle_connect()
+        err = self.socket.connect_ex(address)
+        if err in (EINPROGRESS, EALREADY, EWOULDBLOCK):
+            return
+        if err in (0, EISCONN):
+            self.addr = address
+            self.connected = 1
+            self.handle_connect()
+        raise socket.error, err
 
     def accept (self):
         try: