diff options
| author | Ivan Alejandro <ivanalejandro0@gmail.com> | 2013-09-20 12:11:18 -0300 | 
|---|---|---|
| committer | Ivan Alejandro <ivanalejandro0@gmail.com> | 2013-09-20 12:11:18 -0300 | 
| commit | 241b6494e2bbc09bca23e14aea0271e9335fcb50 (patch) | |
| tree | 1f9012369b04e6bb9f31e874a7f1bf3032079088 | |
| parent | 9cb7c71dcb3cf0650b1b29b9422407e3419ffade (diff) | |
| parent | 9e836e1c38893d726b847f68d2df4143b14ad665 (diff) | |
Merge branch 'release-0.3.3'0.3.3
| -rw-r--r-- | CHANGELOG | 4 | ||||
| -rw-r--r-- | src/leap/common/events/server.py | 30 | 
2 files changed, 12 insertions, 22 deletions
| @@ -1,3 +1,7 @@ +0.3.3 Sep 20: +  o Fix events server exception raising when port is occupied by some +    other process. Closes #3515. +  0.3.2 Sep 06:    o Use dirspec instead of plain xdg. Closes #3574.    o Correct use of CallbackAlreadyRegistered exception. diff --git a/src/leap/common/events/server.py b/src/leap/common/events/server.py index dc55551..41aede3 100644 --- a/src/leap/common/events/server.py +++ b/src/leap/common/events/server.py @@ -77,34 +77,20 @@ def ensure_server(port=SERVER_PORT):          s.connect(('localhost', port))          s.close()          # port is taken, check if there's a server running there -        ping(port, -             reqcbk=lambda req, res: process_ping(port, req, res), -             timeout=10) +        response = ping(port=port, timeout=1000) +        if response is not None and response.status == proto.EventResponse.OK: +            logger.info('A server is already running on port %d.', port) +            return +        # port is taken, and not by an events server +        logger.warning( +            'Port %d is taken by something not an events server.', port) +        raise PortAlreadyTaken(port)      except socket.error:          # port is available, run a server          logger.info('Launching server on port %d.', port)          return EventsServerDaemon.ensure(port) -def process_ping(port, request, response): -    """ -    Response callback for the ping event. - -    :param port: Port that is trying to be used -    :type port: int -    :param request: Ping request made -    :type request: proto.PingRequest -    :param response: Response from the event -    :type response: proto.EventResponse -    """ -    if response is not None and response.status == proto.EventResponse.OK: -        logger.info('A server is already running on port %d.', port) -        return -    # port is taken, and not by an events server -    logger.warning('Port %d is taken by something not an events server.', port) -    raise PortAlreadyTaken(port) - -  def ping(port=SERVER_PORT, reqcbk=None, timeout=1000):      """      Ping the server. | 
