Skip to content
Snippets Groups Projects
Commit 8eb530b9 authored by dkirov's avatar dkirov
Browse files

send error to stderr if another instance of

gajim is running on the same ft port
parent d8b71a5d
No related branches found
No related tags found
No related merge requests found
......@@ -493,7 +493,6 @@ class Connection:
self.disconnect_transfer(file_props)
file_props['error'] = -3
self.dispatch('FILE_REQUEST_ERROR', (to, file_props))
def _bytestreamResultCB(self, con, iq_obj):
gajim.log.debug('_bytestreamResultCB')
......@@ -592,6 +591,8 @@ class Connection:
self.files_props = {}
def remove_transfer(self, file_props, remove_from_list = True):
if file_props is None:
return
if file_props.has_key('hash'):
gajim.socks5queue.remove_sender(file_props['hash'])
......@@ -608,6 +609,8 @@ class Connection:
del(self.files_props['sid'])
def disconnect_transfer(self, file_props):
if file_props is None:
return
if file_props.has_key('hash'):
gajim.socks5queue.remove_sender(file_props['hash'])
......@@ -750,7 +753,10 @@ class Connection:
listener = gajim.socks5queue.start_listener(self.peerhost[0], port,
sha_str, self.result_socks5_sid, file_props['sid'])
if listener == None:
# FIXME - raise error dialog that address is in use
file_props['error'] = -5
self.dispatch('FILE_REQUEST_ERROR', (str(receiver), file_props))
self._connect_error(str(receiver), file_props['sid'],
code = 406)
return
iq = common.xmpp.Protocol(name = 'iq', to = str(receiver),
......
......@@ -49,6 +49,12 @@ class SocksQueue:
self.listener = Socks5Listener(host, port)
self.listener.bind()
if self.listener.started is False:
self.listener = None
import sys
sys.stderr.write('\n\n\n========================================\
========================\nUnable to bind to port %s. \nMaybe you have another \
running instance of Gajim. \nFile Transfer will be canceled.\n==================\
==============================================\n\n\n' % port)
return None
self.connected += 1
return self.listener
......@@ -82,6 +88,7 @@ class SocksQueue:
file_props = self.files_props[account][sid]
file_props['success_cb'] = on_success
file_props['failure_cb'] = on_failure
# add streamhosts to the queue
for streamhost in file_props['streamhosts']:
receiver = Socks5Receiver(streamhost, sid, file_props)
......@@ -123,12 +130,9 @@ class SocksQueue:
result = sock5_receiver.connect()
self.connected += 1
if result != None:
self.connected += 1
result = sock5_receiver.main()
self.process_result(result, sock5_receiver)
return 1
return None
def get_file_from_sender(self, file_props, account):
......
......@@ -715,7 +715,7 @@ class Interface:
ft.set_status(file_props['type'], file_props['sid'], 'stop')
if gajim.config.get('notify_on_new_message'):
# check if we should be notified
if errno == -4:
if errno == -4 or errno == -5:
msg_type = 'file-error'
else:
msg_type = 'file-request-error'
......@@ -725,7 +725,7 @@ class Interface:
elif (gajim.connections[account].connected in (2, 3)
and gajim.config.get('autopopup')) or \
gajim.config.get('autopopupaway'):
if errno == -4:
if errno == -4 or errno == -5:
self.windows['file_transfers'].show_stopped(jid, file_props)
else:
self.windows['file_transfers'].show_request_error(file_props)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment