Revision 65c6a607 ncclient/transport/session.py

b/ncclient/transport/session.py
42 42
        logger.debug('%r created: client_capabilities=%r' %
43 43
                     (self, self._client_capabilities))
44 44
    
45
    def _post_connect(self):
46
        "Greeting stuff"
47
        init_event = Event()
48
        error = [None] # so that err_cb can bind error[0]. just how it is.
49
        # callbacks
50
        def ok_cb(id, capabilities):
51
            self._id = id
52
            self._server_capabilities = Capabilities(capabilities)
53
            init_event.set()
54
        def err_cb(err):
55
            error[0] = err
56
            init_event.set()
57
        listener = HelloHandler(ok_cb, err_cb)
58
        self.add_listener(listener)
59
        self.send(HelloHandler.build(self._client_capabilities))
60
        logger.debug('starting main loop')
61
        self.start()
62
        # we expect server's hello message
63
        init_event.wait()
64
        # received hello message or an error happened
65
        self.remove_listener(listener)
66
        if error[0]:
67
            raise error[0]
68
        logger.info('initialized: session-id=%s | server_capabilities=%s' %
69
                     (self._id, self._server_capabilities))
70
    
71 45
    def _dispatch_message(self, raw):
72 46
        "TODO: docstring"
73 47
        try:
......
95 69
            except Exception as e:
96 70
                logger.warning('error %r' % e)
97 71
    
72
    def _post_connect(self):
73
        "Greeting stuff"
74
        init_event = Event()
75
        error = [None] # so that err_cb can bind error[0]. just how it is.
76
        # callbacks
77
        def ok_cb(id, capabilities):
78
            self._id = id
79
            self._server_capabilities = Capabilities(capabilities)
80
            init_event.set()
81
        def err_cb(err):
82
            error[0] = err
83
            init_event.set()
84
        listener = HelloHandler(ok_cb, err_cb)
85
        self.add_listener(listener)
86
        self.send(HelloHandler.build(self._client_capabilities))
87
        logger.debug('starting main loop')
88
        self.start()
89
        # we expect server's hello message
90
        init_event.wait()
91
        # received hello message or an error happened
92
        self.remove_listener(listener)
93
        if error[0]:
94
            raise error[0]
95
        logger.info('initialized: session-id=%s | server_capabilities=%s' %
96
                     (self._id, self._server_capabilities))
97
    
98 98
    def add_listener(self, listener):
99 99
        "TODO: docstring"
100 100
        logger.debug('installing listener %r' % listener)

Also available in: Unified diff