diff --git a/src/common/protocol/bytestream.py b/src/common/protocol/bytestream.py index 9dded2edf4a70b0b042621cb694a75fbaff0a41e..81825b4acfcadf7d91864cdd542536652a999766 100644 --- a/src/common/protocol/bytestream.py +++ b/src/common/protocol/bytestream.py @@ -790,6 +790,7 @@ class ConnectionIBBytestream(ConnectionBytestream): rep = nbxmpp.Protocol('iq', stanza.getFrom(), 'result', stanza.getTo(), {'id': stanza.getID()}) file_props.block_size = blocksize + file_props.direction = '<' file_props.seq = 0 file_props.received_len = 0 file_props.last_time = time.time() @@ -820,7 +821,6 @@ class ConnectionIBBytestream(ConnectionBytestream): if session.weinitiate: session.cancel_session() - def OpenStream(self, sid, to, fp, blocksize=4096): """ Start new stream. You should provide stream id 'sid', the endpoind jid @@ -997,7 +997,10 @@ class ConnectionIBBytestream(ConnectionBytestream): break else: if stanza.getTag('data'): - if self.IBBMessageHandler(conn, stanza): + sid = stanza.getTagAttr('data', 'sid') + file_props = FilesProp.getFileProp(self.name, sid) + if file_props.connected and self.IBBMessageHandler(conn, + stanza): reply = stanza.buildReply('result') reply.delChild('data') conn.send(reply) diff --git a/src/common/socks5.py b/src/common/socks5.py index a8ce7ecd539448cecd273776819daf81ad189f31..5ea41c3dc05d8b84f25647e159477ce6f7425049 100644 --- a/src/common/socks5.py +++ b/src/common/socks5.py @@ -538,6 +538,7 @@ class Socks5: raise IOError, e def close_file(self): + # Close file we're sending from if self.file: if not self.file.closed: try: @@ -545,6 +546,12 @@ class Socks5: except Exception: pass self.file = None + # Close file we're receiving into + if self.file_props.fd: + try: + self.file_props.fd.close() + except Exception: + pass def get_fd(self): """