|
@@ -63,7 +63,7 @@ import pwd
|
|
|
import posix
|
|
|
|
|
|
import isc.cc
|
|
|
-from isc.net.addr import IPAddr
|
|
|
+import isc.net.check
|
|
|
import isc.utils.process
|
|
|
|
|
|
# Assign this process some longer name
|
|
@@ -184,7 +184,7 @@ class ProcessInfo:
|
|
|
class BoB:
|
|
|
"""Boss of BIND class."""
|
|
|
|
|
|
- def __init__(self, msgq_socket_file=None, auth_port=5300, address='',
|
|
|
+ def __init__(self, msgq_socket_file=None, auth_port=5300, address=None,
|
|
|
nocache=False, verbose=False, setuid=None, username=None):
|
|
|
"""Initialize the Boss of BIND. This is a singleton (only one
|
|
|
can run).
|
|
@@ -198,7 +198,7 @@ class BoB:
|
|
|
self.auth_port = auth_port
|
|
|
self.address = None
|
|
|
if address:
|
|
|
- self.address = IPAddr(address)
|
|
|
+ self.address = address
|
|
|
self.cc_session = None
|
|
|
self.ccs = None
|
|
|
self.processes = {}
|
|
@@ -558,7 +558,7 @@ def reaper(signal_number, stack_frame):
|
|
|
# the Python signal handler has been set up to write
|
|
|
# down a pipe, waking up our select() bit
|
|
|
pass
|
|
|
-
|
|
|
+
|
|
|
def get_signame(signal_number):
|
|
|
"""Return the symbolic name for a signal."""
|
|
|
for sig in dir(signal):
|
|
@@ -580,26 +580,24 @@ def fatal_signal(signal_number, stack_frame):
|
|
|
def check_port(option, opt_str, value, parser):
|
|
|
"""Function to insure that the port we are passed is actually
|
|
|
a valid port number. Used by OptionParser() on startup."""
|
|
|
- if not re.match('^(6553[0-5]|655[0-2]\d|65[0-4]\d\d|6[0-4]\d{3}|[1-5]\d{4}|[1-9]\d{0,3}|0)$', value):
|
|
|
- raise OptionValueError("%s requires a port number (0-65535)" % opt_str)
|
|
|
- if (opt_str == '-m' or opt_str == '--msgq-port'):
|
|
|
- parser.values.msgq_port = value
|
|
|
- elif (opt_str == '-p' or opt_str == '--port'):
|
|
|
- parser.values.auth_port = value
|
|
|
- else:
|
|
|
- raise OptionValueError("Unknown option " + opt_str)
|
|
|
-
|
|
|
+ try:
|
|
|
+ if opt_str in ['-p', '--port']:
|
|
|
+ parser.values.auth_port = isc.net.check.port_check(value)
|
|
|
+ else:
|
|
|
+ raise OptionValueError("Unknown option " + opt_str)
|
|
|
+ except ValueError as e:
|
|
|
+ raise OptionValueError(str(e))
|
|
|
+
|
|
|
def check_addr(option, opt_str, value, parser):
|
|
|
"""Function to insure that the address we are passed is actually
|
|
|
a valid address. Used by OptionParser() on startup."""
|
|
|
try:
|
|
|
- IPAddr(value)
|
|
|
- except:
|
|
|
+ if opt_str in ['-a', '--address']:
|
|
|
+ parser.values.address = isc.net.check.addr_check(value)
|
|
|
+ else:
|
|
|
+ raise OptionValueError("Unknown option " + opt_str)
|
|
|
+ except ValueError:
|
|
|
raise OptionValueError("%s requires a valid IPv4 or IPv6 address" % opt_str)
|
|
|
- if (opt_str == '-a' or opt_str == '--address'):
|
|
|
- parser.values.address = value
|
|
|
- else:
|
|
|
- raise OptionValueError("Unknown option " + opt_str)
|
|
|
|
|
|
def process_rename(option, opt_str, value, parser):
|
|
|
"""Function that renames the process if it is requested by a option."""
|
|
@@ -622,8 +620,8 @@ def main():
|
|
|
help="UNIX domain socket file the b10-msgq daemon will use")
|
|
|
parser.add_option("-n", "--no-cache", action="store_true", dest="nocache",
|
|
|
default=False, help="disable hot-spot cache in b10-auth")
|
|
|
- parser.add_option("-p", "--port", dest="auth_port", type="string",
|
|
|
- action="callback", callback=check_port, default="5300",
|
|
|
+ parser.add_option("-p", "--port", dest="auth_port", type="int",
|
|
|
+ action="callback", callback=check_port, default=5300,
|
|
|
help="port the b10-auth daemon will use (default 5300)")
|
|
|
parser.add_option("-u", "--user", dest="user",
|
|
|
type="string", default=None,
|
|
@@ -687,7 +685,7 @@ def main():
|
|
|
signal.signal(signal.SIGTERM, fatal_signal)
|
|
|
|
|
|
# Go bob!
|
|
|
- boss_of_bind = BoB(options.msgq_socket_file, int(options.auth_port),
|
|
|
+ boss_of_bind = BoB(options.msgq_socket_file, options.auth_port,
|
|
|
options.address, options.nocache, options.verbose,
|
|
|
setuid, username)
|
|
|
startup_result = boss_of_bind.startup()
|