--- pydirector/pdamp.py	1969-12-31 16:00:00.000000000 -0800
+++ pydirector/pdamp.py	2007-04-10 17:25:22.000000000 -0700
@@ -0,0 +1,34 @@
+from twisted.internet import protocol
+from twisted.protocols import amp
+
+class UnknownPortError(Exception):
+    pass
+
+class GetClientAddress(amp.Command):
+    arguments = [('host', amp.String()),
+                 ('port', amp.Integer())]
+
+    response = [('host', amp.String()),
+                ('port', amp.Integer())]
+
+    errors = {UnknownPortError: 'UNKNOWN_PORT'}
+
+
+class PDControlProtocol(amp.AMP):
+    def __init__(self, director):
+        self.director = director
+
+    def getClientAddress(self, host, port):
+        host, port = self.director.getClientAddress(host, port)
+        if (host, port) == (None, None):
+            raise UnknownPortError()
+
+        return {'host': host, 'port': port}
+    GetClientAddress.responder(getClientAddress)
+
+class PDControlFactory(protocol.ServerFactory):
+    def __init__(self, director):
+        self.director = director
+
+    def buildProtocol(self, addr):
+        return PDControlProtocol(self.director)
