|
16 | 16 | # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, |
17 | 17 | # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. |
18 | 18 | # |
19 | | -# $Id: setup.py,v 1.45 2003-04-07 03:47:44 richard Exp $ |
| 19 | +# $Id: setup.py,v 1.46 2003-04-10 04:33:02 richard Exp $ |
20 | 20 |
|
21 | 21 | from distutils.core import setup, Extension |
22 | 22 | from distutils.util import get_platform |
@@ -241,20 +241,21 @@ def install_demo(): |
241 | 241 | # figure basic params for server |
242 | 242 | hostname = socket.gethostname() |
243 | 243 | port = 8080 |
244 | | - s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) |
245 | | - s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) |
246 | 244 | while 1: |
247 | 245 | print 'Trying to set up web server on port %d ...'%port, |
| 246 | + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) |
| 247 | + s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) |
248 | 248 | try: |
249 | | - s.bind((hostname, port)) |
250 | | - except socket.error, error: |
251 | | - if error.errno != errno.EADDRINUSE: |
| 249 | + s.connect((hostname, port)) |
| 250 | + except socket.error, e: |
| 251 | + if not hasattr(e, 'args') or e.args[0] != errno.ECONNREFUSED: |
252 | 252 | raise |
253 | | - print 'already in use.' |
254 | | - port += 100 |
255 | | - else: |
256 | 253 | print 'should be ok.' |
257 | 254 | break |
| 255 | + else: |
| 256 | + s.close() |
| 257 | + print 'already in use.' |
| 258 | + port += 100 |
258 | 259 | url = 'http://%s:%s/demo/'%(hostname, port) |
259 | 260 |
|
260 | 261 | # write the config |
@@ -283,6 +284,7 @@ def install_demo(): |
283 | 284 | httpd = BaseHTTPServer.HTTPServer((hostname, port), RoundupRequestHandler) |
284 | 285 | print 'Server running - connect to:\n %s'%url |
285 | 286 | print 'You may log in as "demo"/"demo" or "admin"/"admin".' |
| 287 | + print 'Hit Control-C to stop the server.' |
286 | 288 | try: |
287 | 289 | httpd.serve_forever() |
288 | 290 | except KeyboardInterrupt: |
|
0 commit comments