changes
This commit is contained in:
parent
7dc41ea9c0
commit
441b6185e0
@ -4,7 +4,19 @@ import Event
|
||||
from logger import Logger
|
||||
from SimpleXMLRPCServer import SimpleXMLRPCServer
|
||||
|
||||
import Entry
|
||||
|
||||
class LocalExcepion(Exception):
|
||||
def __init__(self, msg):
|
||||
self.msg = msg
|
||||
|
||||
class XmlRpcServer(SimpleXMLRPCServer):
|
||||
@classmethod
|
||||
def setClassParams(cls, entries, adminPwd):
|
||||
cls.entries = entries
|
||||
cls.adminPwd = adminPwd
|
||||
|
||||
|
||||
def _dispatch(self, method, params):
|
||||
try:
|
||||
# We are forcing the 'export_' prefix on methods that are
|
||||
@ -16,15 +28,32 @@ class XmlRpcServer(SimpleXMLRPCServer):
|
||||
else:
|
||||
return func(*params)
|
||||
|
||||
def export_add(self, x, y):
|
||||
return x + y
|
||||
|
||||
def export_register(self, subdomain, sharedSecret, email):
|
||||
try:
|
||||
dynid = subdomain
|
||||
zone = 'yadynns.net'
|
||||
|
||||
if XmlRpcServer.entries.has_key(dynid):
|
||||
raise LocalException("duplicate dynid")
|
||||
for entry in MyCmd.entries.values():
|
||||
if entry.name == name and entry.zone == zone:
|
||||
raise LocalException("duplicate full name")
|
||||
newEntry = Entry.Entry(dynid, sharedSecret, subdomain, zone)
|
||||
XmlRpcServer.entries[dynid] = newEntry
|
||||
|
||||
return 'ok'
|
||||
except LocalException, e:
|
||||
return 'nok ' + e.msg
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class XmlRpcReceiver(threading.Thread):
|
||||
def __init__(self, xmlRpcRecvAddr):
|
||||
def __init__(self, xmlRpcRecvAddr, entries, adminPwd):
|
||||
threading.Thread.__init__(self)
|
||||
self.xmlRpcRecvAddr = xmlRpcRecvAddr
|
||||
XmlRpcServer.setClassParams(entries, adminPwd)
|
||||
self.setDaemon(True)
|
||||
|
||||
def run(self):
|
||||
|
@ -12,6 +12,7 @@ import DnsHandler
|
||||
import Expirer
|
||||
import DynReceiver
|
||||
import CmdReceiver
|
||||
import XmlRpcReceiver
|
||||
import Entry
|
||||
import Event
|
||||
|
||||
@ -82,6 +83,12 @@ try:
|
||||
cmdReceiver.start()
|
||||
Logger.debug("CmdReceiver started")
|
||||
|
||||
xmlRpcReceiver = XmlRpcReceiver.XmlRpcReceiver(("", 8024), entries, ADMIN_PWD)
|
||||
xmlRpcReceiver.start()
|
||||
Logger.debug("XmlRpcReceiver started")
|
||||
|
||||
|
||||
|
||||
Logger.log("yadyn running")
|
||||
while True:
|
||||
entries.sync()
|
||||
|
Loading…
x
Reference in New Issue
Block a user