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 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
|
import time
|
||||||
|
|
||||||
import dnslib
|
import dnslib
|
||||||
from dnslib import server
|
from dnslib import server
|
||||||
|
@ -100,3 +101,12 @@ class DynamicResolver(server.BaseResolver):
|
||||||
if srv:
|
if srv:
|
||||||
srv.stop()
|
srv.stop()
|
||||||
srv.server.socket.close()
|
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)
|
dns.add_host(name, ip)
|
||||||
assert dns.zone[0][0].label[0] == name.split('.')[0]
|
assert dns.zone[0][0].label[0] == name.split('.')[0]
|
||||||
assert '.'.join(dns.zone[0][0].label[1:]) == conftest.DOMAIN
|
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