add daemon method to DynamicResolver
Keeps main process up indefinitely as long as DynamicResolver UDP socketserver is upmaster
parent
12a2a46f14
commit
c1a6d81157
|
@ -1,5 +1,6 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import print_function
|
||||
import time
|
||||
|
||||
import dnslib
|
||||
from dnslib import server
|
||||
|
@ -100,3 +101,12 @@ class DynamicResolver(server.BaseResolver):
|
|||
if srv:
|
||||
srv.stop()
|
||||
srv.server.socket.close()
|
||||
|
||||
def daemon(self, *args, **kwargs):
|
||||
testing = kwargs.pop('testing', False)
|
||||
if self._udp_server is None or not self._udp_server.isAlive():
|
||||
self.start(*args, **kwargs)
|
||||
while self._udp_server.isAlive():
|
||||
time.sleep(1)
|
||||
if testing:
|
||||
break
|
||||
|
|
|
@ -49,3 +49,9 @@ def test_get_fqdn(dns, name, ip):
|
|||
dns.add_host(name, ip)
|
||||
assert dns.zone[0][0].label[0] == name.split('.')[0]
|
||||
assert '.'.join(dns.zone[0][0].label[1:]) == conftest.DOMAIN
|
||||
|
||||
|
||||
def test_daemon(dns):
|
||||
dns.close()
|
||||
dns.daemon(dns_address=conftest.INTERFACE, dns_port=conftest.PORT,
|
||||
tcp=True, testing=True)
|
||||
|
|
Loading…
Reference in New Issue