diff options
Diffstat (limited to 'src/leap/common')
| -rw-r--r-- | src/leap/common/events/client.py | 31 | ||||
| -rw-r--r-- | src/leap/common/events/server.py | 11 | 
2 files changed, 22 insertions, 20 deletions
| diff --git a/src/leap/common/events/client.py b/src/leap/common/events/client.py index 4ae9bff..83f18e0 100644 --- a/src/leap/common/events/client.py +++ b/src/leap/common/events/client.py @@ -14,7 +14,6 @@  #  # You should have received a copy of the GNU General Public License  # along with this program. If not, see <http://www.gnu.org/licenses/>. -  """  The client end point of the events mechanism. @@ -27,18 +26,15 @@ server that it wants to be notified whenever signals of that type are sent by  some other client.  """ -  import logging -import threading  from protobuf.socketrpc import RpcService -from leap.common.events import ( -    events_pb2 as proto, -    server, -    daemon, -    mac_auth, -) + +from leap.common.events import events_pb2 as proto +from leap.common.events import server +from leap.common.events import daemon +from leap.common.events import mac_auth  logger = logging.getLogger(__name__) @@ -118,9 +114,13 @@ def register(signal, callback, uid=None, replace=False, reqcbk=None,      if signal not in registered_callbacks:          registered_callbacks[signal] = []      cbklist = registered_callbacks[signal] + +    # TODO should check that the callback has the right +    # number of arguments. +      if uid and filter(lambda (x, y): x == uid, cbklist):          if not replace: -            raise CallbackAlreadyRegisteredException() +            raise CallbackAlreadyRegistered()          else:              registered_callbacks[signal] = filter(lambda(x, y): x != uid,                                                    cbklist) @@ -133,12 +133,13 @@ def register(signal, callback, uid=None, replace=False, reqcbk=None,      request.mac = ""      service = RpcService(proto.EventsServerService_Stub,                           server.SERVER_PORT, 'localhost') -    logger.info( +    logger.debug(          "Sending registration request to server on port %s: %s",          server.SERVER_PORT,          str(request)[:40])      return service.register(request, callback=reqcbk, timeout=timeout) +  def unregister(signal, uid=None, reqcbk=None, timeout=1000):      """      Unregister a callback. @@ -226,7 +227,7 @@ def signal(signal, content="", mac_method="", mac="", reqcbk=None,      request.mac = mac      service = RpcService(proto.EventsServerService_Stub, server.SERVER_PORT,                           'localhost') -    logger.info("Sending signal to server: %s", str(request)[:40]) +    logger.debug("Sending signal to server: %s", str(request)[:40])      return service.signal(request, callback=reqcbk, timeout=timeout) @@ -251,7 +252,7 @@ def ping(port, reqcbk=None, timeout=1000):          proto.EventsClientService_Stub,          port,          'localhost') -    logger.info("Pinging a client in port %d..." % port) +    logger.debug("Pinging a client in port %d..." % port)      return service.ping(request, callback=reqcbk, timeout=timeout) @@ -277,7 +278,7 @@ class EventsClientService(proto.EventsClientService):          :param done: callback to be called when done          :type done: protobuf.socketrpc.server.Callback          """ -        logger.info('Received signal from server: %s...' % str(request)[:40]) +        logger.debug('Received signal from server: %s...' % str(request)[:40])          # run registered callbacks          # TODO: verify authentication using mac in incoming message @@ -303,7 +304,7 @@ class EventsClientService(proto.EventsClientService):          :param done: callback to be called when done          :type done: protobuf.socketrpc.server.Callback          """ -        logger.info("Received ping request, sending response.") +        logger.debug("Received ping request, sending response.")          response = proto.EventResponse()          response.status = proto.EventResponse.OK          done.run(response) diff --git a/src/leap/common/events/server.py b/src/leap/common/events/server.py index 861cb4f..dc55551 100644 --- a/src/leap/common/events/server.py +++ b/src/leap/common/events/server.py @@ -85,6 +85,7 @@ def ensure_server(port=SERVER_PORT):          logger.info('Launching server on port %d.', port)          return EventsServerDaemon.ensure(port) +  def process_ping(port, request, response):      """      Response callback for the ping event. @@ -100,7 +101,7 @@ def process_ping(port, request, response):          logger.info('A server is already running on port %d.', port)          return      # port is taken, and not by an events server -    logger.info('Port %d is taken by something not an events server.', port) +    logger.warning('Port %d is taken by something not an events server.', port)      raise PortAlreadyTaken(port) @@ -125,7 +126,7 @@ def ping(port=SERVER_PORT, reqcbk=None, timeout=1000):          proto.EventsServerService_Stub,          port,          'localhost') -    logger.info("Pinging server in port %d..." % port) +    logger.debug("Pinging server in port %d..." % port)      return service.ping(request, callback=reqcbk, timeout=timeout) @@ -196,14 +197,14 @@ class EventsServerService(proto.EventsServerService):          :param done: callback to be called when done          :type done: protobuf.socketrpc.server.Callback          """ -        logger.info('Received signal from client: %s...', str(request)[:40]) +        logger.debug('Received signal from client: %s...', str(request)[:40])          # send signal to all registered clients          # TODO: verify signal auth          if request.event in registered_clients:              for port in registered_clients[request.event]:                  def callback(req, resp): -                    logger.info("Signal received by " + str(port)) +                    logger.debug("Signal received by " + str(port))                  service = RpcService(proto.EventsClientService_Stub,                                       port, 'localhost') @@ -224,7 +225,7 @@ class EventsServerService(proto.EventsServerService):          :param done: callback to be called when done          :type done: protobuf.socketrpc.server.Callback          """ -        logger.info("Received ping request, sending response.") +        logger.debug("Received ping request, sending response.")          response = proto.EventResponse()          response.status = proto.EventResponse.OK          done.run(response) | 
