diff options
Diffstat (limited to 'pywhoisd.py')
-rwxr-xr-x | pywhoisd.py | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/pywhoisd.py b/pywhoisd.py new file mode 100755 index 0000000..7832cae --- /dev/null +++ b/pywhoisd.py @@ -0,0 +1,53 @@ +#!/usr/bin/python3 +import configparser +import whoiscore + +class PyWhoisD(): + """Main class. It reads the configuration options and starts the server""" + + def __init__(self): + self.config = configparser.ConfigParser() + self.config.read('pywhoisd.conf') + + self.data = None + self.daemon = None + + # What kind of storage are we using? + def config_data(self): + mode = self.config['Storage']['mode'] + + if mode == 'xml': + self.data = WhoisData.WhoisDataXML(self.config) + + def config_daemon(self): + self.config_data() + self.daemon = WhoisDaemon(self.data) + + # Returns true if web server is enabled + def webserver(self): + return self.config.get('Servers', 'web') == 'yes' + + # Returns true if web server is enabled + def classicserver(self): + self.config.get('Servers', 'classic') == 'yes' + + def config_servers(self): + if self.classicserver(): + self.classic_server = whoiscore.WhoisServer(self.config, self.daemon) + + if self.webserver(self): + self.web_server = whoiscore.WhoisWebServer(self.config, self.daemon) + + def start_servers(self): + if self.classicserver(): self.classic_server.start() + if self.webserver(): self.web_server.start() + + def main(self): + self.config_daemon() + self.config_servers() + + self.start_servers() + +if __name__ == "__main__": + pwd = PyWhoisD() + pwd.main() |