Make IPv4 default.

This commit is contained in:
Darko Poljak 2016-10-30 20:37:24 +01:00
parent 8c985fe2cb
commit 63dc9632d2
2 changed files with 14 additions and 15 deletions

View file

@ -38,25 +38,23 @@ log = logging.getLogger(__name__)
class Trigger(): class Trigger():
"""cdist trigger handling""" """cdist trigger handling"""
def __init__(self, http_port=None, dry_run=False, ipv4only=False, def __init__(self, http_port=None, dry_run=False, ipv6=False,
cdistargs=None): cdistargs=None):
self.log = logging.getLogger("trigger") self.log = logging.getLogger("trigger")
self.dry_run = dry_run self.dry_run = dry_run
self.http_port = int(http_port) self.http_port = int(http_port)
self.ipv4only = ipv4only self.ipv6 = ipv6
self.args = cdistargs self.args = cdistargs
# can only be set once
multiprocessing.set_start_method('forkserver')
def run_httpd(self): def run_httpd(self):
server_address = ('', self.http_port) server_address = ('', self.http_port)
if self.ipv4only: if self.ipv6:
httpd = HTTPServerV4(self.args, server_address, TriggerHttp) httpdcls = HTTPServerV6
else: else:
httpd = HTTPServerV6(self.args, server_address, TriggerHttp) httpdcls = HTTPServerV4
httpd = httpdcls(self.args, server_address, TriggerHttp)
httpd.serve_forever() httpd.serve_forever()
@ -67,10 +65,10 @@ class Trigger():
@staticmethod @staticmethod
def commandline(args): def commandline(args):
http_port = args.http_port http_port = args.http_port
ipv4only = args.ipv4 ipv6 = args.ipv6
del args.http_port del args.http_port
del args.ipv4 del args.ipv6
t = Trigger(http_port=http_port, ipv4only=ipv4only, cdistargs=args) t = Trigger(http_port=http_port, ipv6=ipv6, cdistargs=args)
t.run() t.run()
class TriggerHttp(BaseHTTPRequestHandler): class TriggerHttp(BaseHTTPRequestHandler):
@ -122,7 +120,7 @@ class TriggerHttp(BaseHTTPRequestHandler):
class HTTPServerV6(socketserver.ForkingMixIn, http.server.HTTPServer): class HTTPServerV6(socketserver.ForkingMixIn, http.server.HTTPServer):
""" """
Server that listens both to IPv4 and IPv6 requests. Server that listens to both IPv4 and IPv6 requests.
""" """
address_family = socket.AF_INET6 address_family = socket.AF_INET6
@ -132,6 +130,6 @@ class HTTPServerV6(socketserver.ForkingMixIn, http.server.HTTPServer):
class HTTPServerV4(HTTPServerV6): class HTTPServerV4(HTTPServerV6):
""" """
Server that listens to IPv4 requests Server that listens to IPv4 requests.
""" """
address_family = socket.AF_INET address_family = socket.AF_INET

View file

@ -180,8 +180,9 @@ def commandline():
parser['beta'], parser['beta'],
parser['config_main']]) parser['config_main']])
parser['trigger'].add_argument( parser['trigger'].add_argument(
'-4', '--ipv4', default=False, '-6', '--ipv6', default=False,
help=('Listen only to IPv4 (instead of IPv4 and IPv6)'), action='store_true') help=('Listen to both IPv4 and IPv6 (instead of only IPv4)'),
action='store_true')
parser['trigger'].add_argument( parser['trigger'].add_argument(
'-H', '--http-port', action='store', default=3000, required=False, '-H', '--http-port', action='store', default=3000, required=False,
help=('Create trigger listener via http on specified port')) help=('Create trigger listener via http on specified port'))