summaryrefslogtreecommitdiff
path: root/pywhoisd.py
diff options
context:
space:
mode:
Diffstat (limited to 'pywhoisd.py')
-rwxr-xr-xpywhoisd.py53
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()
nihil fit ex nihilo