diff --git a/src/common/protocol/bytestream.py b/src/common/protocol/bytestream.py index 370553b12..029f71cfe 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() @@ -812,7 +813,6 @@ class ConnectionIBBytestream(ConnectionBytestream): payload=[nbxmpp.Node(nbxmpp.NS_IBB + ' close', {'sid':file_props.sid})])) - def OpenStream(self, sid, to, fp, blocksize=4096): """ Start new stream. You should provide stream id 'sid', the endpoind jid @@ -990,7 +990,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 c9768f3e7..263619f37 100644 --- a/src/common/socks5.py +++ b/src/common/socks5.py @@ -538,6 +538,7 @@ class Socks5: raise IOError(str(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): """