Show More
@@ -114,15 +114,19 b' wifexited = getattr(os, "WIFEXITED", lam' | |||||
114 |
|
114 | |||
115 | def checkportisavailable(port): |
|
115 | def checkportisavailable(port): | |
116 | """return true if a port seems free to bind on localhost""" |
|
116 | """return true if a port seems free to bind on localhost""" | |
117 | try: |
|
117 | families = [getattr(socket, i, None) | |
118 | s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) |
|
118 | for i in ('AF_INET', 'AF_INET6') | |
119 | s.bind(('localhost', port)) |
|
119 | if getattr(socket, i, None) is not None] | |
120 | s.close() |
|
120 | for family in families: | |
121 | return True |
|
121 | try: | |
122 | except socket.error as exc: |
|
122 | s = socket.socket(family, socket.SOCK_STREAM) | |
123 | if not exc.errno == errno.EADDRINUSE: |
|
123 | s.bind(('localhost', port)) | |
124 |
|
|
124 | s.close() | |
125 |
return |
|
125 | return True | |
|
126 | except socket.error as exc: | |||
|
127 | if exc.errno not in (errno.EADDRINUSE, errno.EADDRNOTAVAIL): | |||
|
128 | raise | |||
|
129 | return False | |||
126 |
|
130 | |||
127 | closefds = os.name == 'posix' |
|
131 | closefds = os.name == 'posix' | |
128 | def Popen4(cmd, wd, timeout, env=None): |
|
132 | def Popen4(cmd, wd, timeout, env=None): |
General Comments 0
You need to be logged in to leave comments.
Login now