Skip to content

Commit dbe3f9d

Browse files
author
Johannes Gijsbers
committed
Print a nicer error message (without usage)...
...when the address is already in use [SF#798659]. Factor out error() function to enable this.
1 parent 0e633fd commit dbe3f9d

File tree

1 file changed

+20
-8
lines changed

1 file changed

+20
-8
lines changed

roundup/scripts/roundup_server.py

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@
1616
#
1717
""" HTTP Server that serves roundup.
1818
19-
$Id: roundup_server.py,v 1.31 2003-10-25 11:41:06 jlgijsbers Exp $
19+
$Id: roundup_server.py,v 1.32 2003-10-25 12:26:42 jlgijsbers Exp $
2020
"""
2121

2222
# python version check
2323
from roundup import version_check
2424

2525
import sys, os, urllib, StringIO, traceback, cgi, binascii, getopt, imp
26-
import BaseHTTPServer, socket
26+
import BaseHTTPServer, socket, errno
2727

2828
# Roundup modules of use here
2929
from roundup.cgi import cgitb, client
@@ -198,10 +198,14 @@ def address_string(self):
198198
host, port = self.client_address
199199
return socket.getfqdn(host)
200200

201+
def error():
202+
exc_type, exc_value = sys.exc_info()[:2]
203+
return _('Error: %s: %s' % (exc_type, exc_value))
204+
201205
def usage(message=''):
202-
if message:
203-
message = _('Error: %(error)s\n\n')%{'error': message}
204-
print _('''%(message)sUsage:
206+
print _('''%(message)s
207+
208+
Usage:
205209
roundup-server [options] [name=tracker home]*
206210
207211
options:
@@ -299,7 +303,13 @@ def run(port=8080, success_message=None):
299303
# obtain server before changing user id - allows to use port <
300304
# 1024 if started as root
301305
address = (hostname, port)
302-
httpd = BaseHTTPServer.HTTPServer(address, RoundupRequestHandler)
306+
try:
307+
httpd = BaseHTTPServer.HTTPServer(address, RoundupRequestHandler)
308+
except socket.error, e:
309+
if e[0] == errno.EADDRINUSE:
310+
raise socket.error, \
311+
_("Unable to bind to port %s, port already in use." % port)
312+
raise
303313

304314
if group is not None and hasattr(os, 'getgid'):
305315
# if root, setgid to the running user
@@ -347,9 +357,11 @@ def run(port=8080, success_message=None):
347357
RoundupRequestHandler.TRACKER_HOMES = d
348358
except SystemExit:
349359
raise
360+
except ValueError:
361+
usage(error())
350362
except:
351-
exc_type, exc_value = sys.exc_info()[:2]
352-
usage('%s: %s'%(exc_type, exc_value))
363+
print error()
364+
sys.exit(1)
353365

354366
# we don't want the cgi module interpreting the command-line args ;)
355367
sys.argv = sys.argv[:1]

0 commit comments

Comments
 (0)