From 29fb9a17711f2266f60afbc3a57c9e1cbaf6fc2c Mon Sep 17 00:00:00 2001 From: Leonardo Date: Mon, 24 May 2010 18:49:34 +0200 Subject: [PATCH] Aggiunto supporto per un messaggio nel file di configurazione. --- pywhois.py | 20 +++++++++++++++----- pywhoisd.conf | 13 +++++++++++++ pywhoisd.py | 13 +++++++------ 3 files changed, 35 insertions(+), 11 deletions(-) diff --git a/pywhois.py b/pywhois.py index ba08465..fe93cc1 100644 --- a/pywhois.py +++ b/pywhois.py @@ -341,7 +341,12 @@ class WhoisHTTPRequestHandler(BaseHTTPRequestHandler): try: request = re.findall(r"/?query=([^\s]+)", self.path)[0] except: - response = "Please submit a query" + if self.server.mydata['initial_message'] is not None: + response = FormatMessage(self.server.mydata['initial_message']) + else: + response = ":: Please submit a query.\n" + response += ":: You can ask information about a domain, like mydomain.hey.gnet,\n" + response += ":: an IP address, like 6.26.23.34 or a network like 6.45.0.0/16.\n" request = None # Ci connettiamo al demone locale. Questo รจ @@ -349,7 +354,7 @@ class WhoisHTTPRequestHandler(BaseHTTPRequestHandler): # voglia di fare di meglio if request: s = socket(AF_INET, SOCK_STREAM) - s.connect(self.server.whoisserver) + s.connect(self.server.mydata['whoisserver']) s.send (request + "\n") response = s.recv(1024) s.close () @@ -366,15 +371,20 @@ class WhoisHTTPRequestHandler(BaseHTTPRequestHandler): class BackgroundWhoisHTTPServer(threading.Thread): - def __init__(self, whoisserver, port): + def __init__(self, whoisserver, port, initial_message): threading.Thread.__init__(self) self.port = port self.whoisserver = whoisserver - + self.initial_message = initial_message def run(self): self.server = HTTPServer(("0.0.0.0", self.port), WhoisHTTPRequestHandler) - self.server.whoisserver = self.whoisserver + + # Inseriamo i dati interessanti all'interno del webserver + # in modo che l'handler possa recuperarli per generare + # le eventuali risposte + self.server.mydata = { 'whoisserver': self.whoisserver, + 'initial_message': self.initial_message } self.server.serve_forever() def shutdown(self): diff --git a/pywhoisd.conf b/pywhoisd.conf index 12b5f07..a96d444 100644 --- a/pywhoisd.conf +++ b/pywhoisd.conf @@ -16,3 +16,16 @@ welcome_banner = This is the whoisd server for the GNet of our network visit us at http://linus.robol.it/gnet/ or (if you have access now) http://linus.leo.gnet/gnet/. See you soon!; + +# Initial message for the web interface +initial_message = Please submit a query; + +# Whois port +port = 8043; + +# Web interface port +http_port = 8080; + + + + diff --git a/pywhoisd.py b/pywhoisd.py index e1f44dd..4682913 100755 --- a/pywhoisd.py +++ b/pywhoisd.py @@ -24,11 +24,11 @@ if __name__ == "__main__": default="/etc/pywhoisd.conf", help = "Set config file", metavar="CONFIG_FILE") parser.add_option("-p", "--port", dest="port", - help = "The listening port of the daemon", default = "43") + help = "The listening port of the daemon", default = None) parser.add_option("-l", "--listen", help="The listening address of the daemon", default = "0.0.0.0", dest="host") parser.add_option("-t", "--http-port", help="The listening port of the HTTP server", - default = 80, dest = "http_port") + default = None, dest = "http_port") (options, args) = parser.parse_args() @@ -41,12 +41,13 @@ if __name__ == "__main__": host, port = SetOption(config, options.host, "host"), int(SetOption(config, options.port, "port")) http_port = int(SetOption(config, options.http_port, "http_port")) server = pywhois.WhoisServer((host, port), logger, config) - http_server = pywhois.BackgroundWhoisHTTPServer((host, port), http_port) + + # Messaggio di benvenuto per chi accede all'interfaccia + # web. + initial_message = config['initial_message'] + http_server = pywhois.BackgroundWhoisHTTPServer((host, port), http_port, initial_message) try: - print "Starting http server...", http_server.start() - print "done" - print "Starting whois server...", server.serve_forever() except KeyboardInterrupt: http_server.shutdown() -- 2.1.4