improve http and xmlrpc interfaces

This commit is contained in:
Wolfgang Hottgenroth
2009-02-19 22:07:34 +01:00
parent a2d3bd6e79
commit 399483b7b5
4 changed files with 40 additions and 30 deletions

View File

@ -25,7 +25,7 @@ class HttpCmdHandler(BaseHTTPServer.BaseHTTPRequestHandler):
cls.entries = entries
cls.adminPwd = adminPwd
cls.dnsq = dnsq
cls.nullAddress = nullAdress
cls.nullAddress = nullAddress
def do_GET(self):
Logger.log("Request: %s, %s" % (self.path, self.client_address))
@ -40,17 +40,19 @@ class HttpCmdHandler(BaseHTTPServer.BaseHTTPRequestHandler):
if cmd == 'register':
self.register(c)
elif cmd == 'start':
self.setAddress(c, self.client_address[0])
self.setAddress(c, self.client_address[0])
elif cmd == 'stop':
self.setAddress(c, HttpCmdHandler.nullAddress)
self.setAddress(c, HttpCmdHandler.nullAddress)
else:
raise LocalException('unknown cmd')
self.send_response(200, "OK")
self.send_header("Content-Length", "0")
self.end_headers()
except IllegalEventException, e:
Logger.log("Some failure (%s), not notifying user" % e.msg)
self.send_response(200, "OK")
self.send_header("Content-Length", "0")
self.end_headers()
except AdminFuncs.AdminFuncException, e:
self.send_response(400, e.msg)
@ -59,6 +61,7 @@ class HttpCmdHandler(BaseHTTPServer.BaseHTTPRequestHandler):
self.send_response(400, e.msg)
self.end_headers()
def register(self, c):
try:
dynid = c['dynid'][0]
@ -69,17 +72,17 @@ class HttpCmdHandler(BaseHTTPServer.BaseHTTPRequestHandler):
except KeyError, e:
raise LocalException('Parameter missing: ' + str(e))
AdminFuncs.register(dynid, subdomain, zone, sharedSecret)
AdminFuncs.AdminFuncs.register(dynid, subdomain, zone, sharedSecret, checkSum)
def setAddress(self, c, address):
try:
dynId = c['dynid'][0]
sharedSecret = c['sharedsecret'][0]
except KeyError, e:
raise LocalException('Parameter missing: ' + str(e))
raise LocalException('Parameter missing: ' + str(e))
if not HttpCmdHandler.entries.has_key(dynId):
raise IllegalEventException("unknown dynid %s" % dynId)
raise IllegalEventException("unknown dynid %s" % dynId)
entry = HttpCmdHandler.entries[dynId]