From 9d13223e971c1bb37b141cb0b0a3a7dd4077f4d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Benencia?= Date: Thu, 2 Aug 2012 22:51:17 -0300 Subject: Fix various semantic errors --- pywhoisd.py | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) (limited to 'pywhoisd.py') diff --git a/pywhoisd.py b/pywhoisd.py index 6572cac..11ad133 100755 --- a/pywhoisd.py +++ b/pywhoisd.py @@ -1,5 +1,6 @@ #!/usr/bin/python3 import configparser +import concurrent.futures import core import model @@ -9,10 +10,14 @@ class PyWhoisD(): def __init__(self): self.config = configparser.ConfigParser() - self.config.read('examples/pywhoisd.conf') + self.config.read('pywhoisd.conf') self.data = None self.daemon = None + self.classic_server = None + self.web_server = None + + self.executor = concurrent.futures.ThreadPoolExecutor(max_workers=2) # What kind of storage are we using? def config_data(self): @@ -24,7 +29,7 @@ class PyWhoisD(): mode = self.config['Storage']['mode'] if mode == 'xml': - self.data = xml.DataXML(self.config) + self.data = model.DataXML(self.config) def config_daemon(self): """Config common information source for all configured servers""" @@ -40,34 +45,44 @@ class PyWhoisD(): def classic(self): - """Returns true if web server is enabled""" + """Returns true if classic whois server is enabled""" - self.config['Servers']['classic'] == 'yes' + return self.config['Servers']['classic'] == 'yes' def config_servers(self): """Sets up server configuration from config files""" if self.classic(): - self.classic_server = core.ClassicServer(self.config, self.daemon) + self.classic_server = core.ClassicServer(self.config, self.daemon) + else: + print("[+] Classic server is not enabled") if self.web(): self.web_server = core.WebServer(self.config, self.daemon) + else: + print("[+] Web server is not enabled") + def start_servers(self): - """Start configured servers""" + """Properly configure and start configured servers""" self.config_servers() - if self.classic(): - self.classic_server.start() + if self.classic_server: + print("[+] Starting classic whois server") + self.executor.submit(self.classic_server.serve_forever) - if self.web(): - self.web_server.start() + if self.web_server: + self.executor.submit(self.web_server.serve_forever) + def main(self): self.config_daemon() self.start_servers() + # Wait for running server to finish. Probably never. + self.executor.shutdown() + if __name__ == "__main__": pwd = PyWhoisD() pwd.main() -- cgit v1.2.3