diff --git a/server/HttpCmdReceiver.py b/server/HttpCmdReceiver.py index ff80458..cf7e1a4 100644 --- a/server/HttpCmdReceiver.py +++ b/server/HttpCmdReceiver.py @@ -23,21 +23,33 @@ class HttpCmdHandler(BaseHTTPServer.BaseHTTPRequestHandler): def do_GET(self): Logger.log("Request: %s" % self.path) - if self.command == "GET": + try: + if self.command == "GET": q = urlparse.urlparse(self.path).query c = cgi.parse_qs(q) + if not c.has_key('c'): + raise LocalException('no cmd given') cmd = c['c'] - dynid = c['d'] - sharedSecret = c['s'] - Logger.log("c: %s, d: %s, s: %s" % (cmd, dynid, sharedSecret)) + if cmd == 'register': + self.register(c) + else: + raise LocalException('unknown cmd') - self.send_response(200, "OK") - self.end_headers() - + self.send_response(200, "OK") + self.end_headers() + except LocalException, e: + self.send_response(400, e.msg) + self.end_headers() - def export_register(self, subdomain, sharedSecret, email): + def register(self, c): try: - dynid = suobdomain + subdomain = c['subdomain'] + sharedShared = c['sharedsecret'] + except KeyError, e: + raise LocalException('Parameter missing: ' + e.msg) + + try: + dynid = subdomain zone = 'yadynns.net' if XmlRpcServer.entries.has_key(dynid):