Revision 3ad93428 ncclient/ssh.py

b/ncclient/ssh.py
75 75
        chan = self._channel
76 76
        chan.setblocking(0)
77 77
        q = self._q
78
        bufsize = SSHSession.BUF_SIZE
79
        delim = SSHSession.MSG_DELIM
80 78
        try:
81 79
            while True:    
82 80
                if chan.closed:
83 81
                    raise SessionCloseError(self._in_buf.getvalue())         
84 82
                if chan.send_ready() and not q.empty():
85
                    data = q.get() + delim
83
                    data = q.get() + SSHSession.MSG_DELIM
86 84
                    while data:
87 85
                        n = chan.send(data)
88 86
                        if n <= 0:
89 87
                            raise SessionCloseError(self._in_buf.getvalue(), data)
90 88
                        data = data[n:]
91 89
                if chan.recv_ready():
92
                    data = chan.recv(bufsize)
90
                    data = chan.recv(SSHSession.BUF_SIZE)
93 91
                    if data:
94 92
                        self._in_buf.write(data)
95
                        self._parse()
93
                        self._fresh_data()
96 94
                    else:
97 95
                        raise SessionCloseError(self._in_buf.getvalue())
98 96
        except Exception as e:
......
103 101
        self._channel.close()
104 102
        self._connected = False
105 103
    
106
    def _parse(self):
104
    def _fresh_data(self):
107 105
        delim = SSHSession.MSG_DELIM
108 106
        n = len(delim) - 1
109 107
        state = self._parsing_state

Also available in: Unified diff