def handle(self, string, respondCallback, peer):
     try:
         incoming = simplejson.loads(string)
         if incoming['cmd'] == 'handshake':
             with debug.logNetwork("Handling handshake"):
                 response = self.cmd_handshake(peer=peer, ** incoming['arguments'])
                 respondCallback(simplejson.dumps(response))
         else:
             transaction = debug.Transaction("Handling: %s" % incoming['cmd'])
             self._queue.put((incoming, peer, respondCallback, transaction))
     except Exception, e:
         logging.exception('Handling')
         response = dict(exceptionString=str(e), exceptionType=e.__class__.__name__)
         respondCallback(simplejson.dumps(response))
 def provideLabel(self, id, label):
     with debug.logNetwork("Providing label '%(label)s' to '%(id)s'" % dict(label=label, id=id)):
         self._server.provideLabel(id=id, label=label)