coding standards
This commit is contained in:
parent
61a039d894
commit
69544d5f5c
1 changed files with 33 additions and 43 deletions
|
@ -22,7 +22,8 @@ Handles Jingle File Transfer (XEP 0234)
|
||||||
import gajim
|
import gajim
|
||||||
import xmpp
|
import xmpp
|
||||||
from jingle_content import contents, JingleContent
|
from jingle_content import contents, JingleContent
|
||||||
from jingle_transport import JingleTransportICEUDP, JingleTransportSocks5, JingleTransportIBB, TransportType
|
from jingle_transport import JingleTransportICEUDP, JingleTransportSocks5
|
||||||
|
from jingle_transport import JingleTransportIBB, TransportType
|
||||||
from common import helpers
|
from common import helpers
|
||||||
from common.socks5 import Socks5ReceiverClient, Socks5SenderClient
|
from common.socks5 import Socks5ReceiverClient, Socks5SenderClient
|
||||||
from common.connection_handlers_events import FileRequestReceivedEvent
|
from common.connection_handlers_events import FileRequestReceivedEvent
|
||||||
|
@ -124,9 +125,9 @@ class JingleFileTransfer(JingleContent):
|
||||||
|
|
||||||
self.file_props['streamhosts'] = self.transport.remote_candidates
|
self.file_props['streamhosts'] = self.transport.remote_candidates
|
||||||
for host in self.file_props['streamhosts']:
|
for host in self.file_props['streamhosts']:
|
||||||
host['initiator'] = self.session.initiator
|
host['initiator'] = self.session.initiator
|
||||||
host['target'] = self.session.responder
|
host['target'] = self.session.responder
|
||||||
host['sid'] = self.file_props['sid']
|
host['sid'] = self.file_props['sid']
|
||||||
|
|
||||||
response = stanza.buildReply('result')
|
response = stanza.buildReply('result')
|
||||||
response.delChild(response.getQuery())
|
response.delChild(response.getQuery())
|
||||||
|
@ -135,15 +136,15 @@ class JingleFileTransfer(JingleContent):
|
||||||
if not gajim.socks5queue.get_file_props(
|
if not gajim.socks5queue.get_file_props(
|
||||||
self.session.connection.name, self.file_props['sid']):
|
self.session.connection.name, self.file_props['sid']):
|
||||||
gajim.socks5queue.add_file_props(self.session.connection.name,
|
gajim.socks5queue.add_file_props(self.session.connection.name,
|
||||||
self.file_props)
|
self.file_props)
|
||||||
fingerprint = None
|
fingerprint = None
|
||||||
if self.use_security:
|
if self.use_security:
|
||||||
fingerprint = 'client'
|
fingerprint = 'client'
|
||||||
if self.transport.type == TransportType.SOCKS5:
|
if self.transport.type == TransportType.SOCKS5:
|
||||||
gajim.socks5queue.connect_to_hosts(self.session.connection.name,
|
gajim.socks5queue.connect_to_hosts(self.session.connection.name,
|
||||||
self.file_props['sid'], self.send_candidate_used,
|
self.file_props['sid'], self.send_candidate_used,
|
||||||
self._on_connect_error, fingerprint=fingerprint,
|
self._on_connect_error, fingerprint=fingerprint,
|
||||||
receiving=False)
|
receiving=False)
|
||||||
elif self.transport.type == TransportType.IBB:
|
elif self.transport.type == TransportType.IBB:
|
||||||
self.state = STATE_TRANSFERING
|
self.state = STATE_TRANSFERING
|
||||||
self.__start_IBB_transfer(self.session.connection)
|
self.__start_IBB_transfer(self.session.connection)
|
||||||
|
@ -213,8 +214,6 @@ class JingleFileTransfer(JingleContent):
|
||||||
else:
|
else:
|
||||||
self.state = STATE_CAND_RECEIVED_PENDING_REPLY
|
self.state = STATE_CAND_RECEIVED_PENDING_REPLY
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def __on_iq_result(self, stanza, content, error, action):
|
def __on_iq_result(self, stanza, content, error, action):
|
||||||
log.info("__on_iq_result")
|
log.info("__on_iq_result")
|
||||||
|
|
||||||
|
@ -224,7 +223,7 @@ class JingleFileTransfer(JingleContent):
|
||||||
self.file_props
|
self.file_props
|
||||||
# Listen on configured port for file transfer
|
# Listen on configured port for file transfer
|
||||||
self._listen_host()
|
self._listen_host()
|
||||||
|
|
||||||
elif not self.weinitiate and self.state == STATE_NOT_STARTED:
|
elif not self.weinitiate and self.state == STATE_NOT_STARTED:
|
||||||
# session-accept iq-result
|
# session-accept iq-result
|
||||||
if not self.negotiated:
|
if not self.negotiated:
|
||||||
|
@ -255,22 +254,21 @@ class JingleFileTransfer(JingleContent):
|
||||||
return
|
return
|
||||||
# initiate transfer
|
# initiate transfer
|
||||||
self.start_transfer()
|
self.start_transfer()
|
||||||
|
|
||||||
def __start_IBB_transfer(self, con):
|
def __start_IBB_transfer(self, con):
|
||||||
con.files_props[self.file_props['sid']] = self.file_props
|
con.files_props[self.file_props['sid']] = self.file_props
|
||||||
fp = open(self.file_props['file-name'], 'r')
|
fp = open(self.file_props['file-name'], 'r')
|
||||||
con.OpenStream( self.transport.sid, self.session.peerjid,
|
con.OpenStream( self.transport.sid, self.session.peerjid, fp,
|
||||||
fp, blocksize=4096)
|
blocksize=4096)
|
||||||
|
|
||||||
def __transport_setup(self, stanza=None, content=None, error=None
|
def __transport_setup(self, stanza=None, content=None, error=None,
|
||||||
, action=None):
|
action=None):
|
||||||
# Sets up a few transport specific things for the file transfer
|
# Sets up a few transport specific things for the file transfer
|
||||||
if self.transport.type == TransportType.SOCKS5:
|
if self.transport.type == TransportType.SOCKS5:
|
||||||
self._listen_host()
|
self._listen_host()
|
||||||
|
|
||||||
if self.transport.type == TransportType.IBB:
|
if self.transport.type == TransportType.IBB:
|
||||||
self.state = STATE_TRANSFERING
|
self.state = STATE_TRANSFERING
|
||||||
|
|
||||||
|
|
||||||
def send_candidate_used(self, streamhost):
|
def send_candidate_used(self, streamhost):
|
||||||
"""
|
"""
|
||||||
|
@ -302,7 +300,6 @@ class JingleFileTransfer(JingleContent):
|
||||||
|
|
||||||
self.session.send_transport_info(content)
|
self.session.send_transport_info(content)
|
||||||
|
|
||||||
|
|
||||||
def _on_connect_error(self, sid):
|
def _on_connect_error(self, sid):
|
||||||
self.nominated_cand['our-cand'] = False
|
self.nominated_cand['our-cand'] = False
|
||||||
self.send_error_candidate()
|
self.send_error_candidate()
|
||||||
|
@ -312,7 +309,6 @@ class JingleFileTransfer(JingleContent):
|
||||||
else:
|
else:
|
||||||
self.state = STATE_CAND_SENT_PENDING_REPLY
|
self.state = STATE_CAND_SENT_PENDING_REPLY
|
||||||
|
|
||||||
|
|
||||||
log.info('connect error, sid=' + sid)
|
log.info('connect error, sid=' + sid)
|
||||||
|
|
||||||
def _fill_content(self, content):
|
def _fill_content(self, content):
|
||||||
|
@ -346,11 +342,10 @@ class JingleFileTransfer(JingleContent):
|
||||||
self.file_props['hash'] = hash_id
|
self.file_props['hash'] = hash_id
|
||||||
|
|
||||||
def _listen_host(self):
|
def _listen_host(self):
|
||||||
|
|
||||||
receiver = self.file_props['receiver']
|
receiver = self.file_props['receiver']
|
||||||
sender = self.file_props['sender']
|
sender = self.file_props['sender']
|
||||||
sha_str = helpers.get_auth_sha(self.file_props['sid'], sender,
|
sha_str = helpers.get_auth_sha(self.file_props['sid'], sender,
|
||||||
receiver)
|
receiver)
|
||||||
self.file_props['sha_str'] = sha_str
|
self.file_props['sha_str'] = sha_str
|
||||||
|
|
||||||
port = gajim.config.get('file_transfers_port')
|
port = gajim.config.get('file_transfers_port')
|
||||||
|
@ -361,22 +356,22 @@ class JingleFileTransfer(JingleContent):
|
||||||
|
|
||||||
if self.weinitiate:
|
if self.weinitiate:
|
||||||
listener = gajim.socks5queue.start_listener(port, sha_str,
|
listener = gajim.socks5queue.start_listener(port, sha_str,
|
||||||
self._store_socks5_sid, self.file_props,
|
self._store_socks5_sid, self.file_props,
|
||||||
fingerprint=fingerprint, type='sender')
|
fingerprint=fingerprint, type='sender')
|
||||||
else:
|
else:
|
||||||
listener = gajim.socks5queue.start_listener(port, sha_str,
|
listener = gajim.socks5queue.start_listener(port, sha_str,
|
||||||
self._store_socks5_sid, self.file_props,
|
self._store_socks5_sid, self.file_props,
|
||||||
fingerprint=fingerprint, type='receiver')
|
fingerprint=fingerprint, type='receiver')
|
||||||
|
|
||||||
if not listener:
|
if not listener:
|
||||||
# send error message, notify the user
|
# send error message, notify the user
|
||||||
return
|
return
|
||||||
|
|
||||||
def isOurCandUsed(self):
|
def isOurCandUsed(self):
|
||||||
'''
|
'''
|
||||||
If this method returns true then the candidate we nominated will be
|
If this method returns true then the candidate we nominated will be
|
||||||
used, if false, the candidate nominated by peer will be used
|
used, if false, the candidate nominated by peer will be used
|
||||||
'''
|
'''
|
||||||
|
|
||||||
if self.nominated_cand['peer-cand'] == False:
|
if self.nominated_cand['peer-cand'] == False:
|
||||||
return True
|
return True
|
||||||
if self.nominated_cand['our-cand'] == False:
|
if self.nominated_cand['our-cand'] == False:
|
||||||
|
@ -390,11 +385,9 @@ class JingleFileTransfer(JingleContent):
|
||||||
else:
|
else:
|
||||||
return self.weinitiate
|
return self.weinitiate
|
||||||
|
|
||||||
|
|
||||||
def start_transfer(self):
|
def start_transfer(self):
|
||||||
|
|
||||||
self.state = STATE_TRANSFERING
|
self.state = STATE_TRANSFERING
|
||||||
|
|
||||||
# It tells wether we start the transfer as client or server
|
# It tells wether we start the transfer as client or server
|
||||||
mode = None
|
mode = None
|
||||||
|
|
||||||
|
@ -404,7 +397,7 @@ class JingleFileTransfer(JingleContent):
|
||||||
else:
|
else:
|
||||||
mode = 'server'
|
mode = 'server'
|
||||||
streamhost_used = self.nominated_cand['peer-cand']
|
streamhost_used = self.nominated_cand['peer-cand']
|
||||||
|
|
||||||
if streamhost_used['type'] == 'proxy':
|
if streamhost_used['type'] == 'proxy':
|
||||||
self.file_props['is_a_proxy'] = True
|
self.file_props['is_a_proxy'] = True
|
||||||
if self.weinitiate:
|
if self.weinitiate:
|
||||||
|
@ -428,7 +421,7 @@ class JingleFileTransfer(JingleContent):
|
||||||
s[sender].connected:
|
s[sender].connected:
|
||||||
return
|
return
|
||||||
|
|
||||||
if streamhost_used['type'] == 'proxy':
|
if streamhost_used['type'] == 'proxy':
|
||||||
self.file_props['streamhost-used'] = True
|
self.file_props['streamhost-used'] = True
|
||||||
streamhost_used['sid'] = self.file_props['sid']
|
streamhost_used['sid'] = self.file_props['sid']
|
||||||
self.file_props['streamhosts'] = []
|
self.file_props['streamhosts'] = []
|
||||||
|
@ -440,21 +433,18 @@ class JingleFileTransfer(JingleContent):
|
||||||
gajim.socks5queue.idx += 1
|
gajim.socks5queue.idx += 1
|
||||||
idx = gajim.socks5queue.idx
|
idx = gajim.socks5queue.idx
|
||||||
sockobj = Socks5SenderClient(gajim.idlequeue, idx,
|
sockobj = Socks5SenderClient(gajim.idlequeue, idx,
|
||||||
gajim.socks5queue,
|
gajim.socks5queue, _sock=None,
|
||||||
_sock=None,
|
host=str(streamhost_used['host']),
|
||||||
host=str(streamhost_used['host']),
|
port=int(streamhost_used['port']), fingerprint=None,
|
||||||
port=int(streamhost_used['port']),
|
connected=False, file_props=self.file_props)
|
||||||
fingerprint=None,
|
|
||||||
connected=False,
|
|
||||||
file_props=self.file_props)
|
|
||||||
else:
|
else:
|
||||||
sockobj = Socks5ReceiverClient(gajim.idlequeue, streamhost_used,
|
sockobj = Socks5ReceiverClient(gajim.idlequeue, streamhost_used,
|
||||||
sid=self.file_props['sid'],
|
sid=self.file_props['sid'],
|
||||||
file_props=self.file_props, fingerprint=None)
|
file_props=self.file_props, fingerprint=None)
|
||||||
sockobj.proxy = True
|
sockobj.proxy = True
|
||||||
sockobj.streamhost = streamhost_used
|
sockobj.streamhost = streamhost_used
|
||||||
gajim.socks5queue.add_sockobj(self.session.connection.name,
|
gajim.socks5queue.add_sockobj(self.session.connection.name,
|
||||||
sockobj, 'sender')
|
sockobj, 'sender')
|
||||||
streamhost_used['idx'] = sockobj.queue_idx
|
streamhost_used['idx'] = sockobj.queue_idx
|
||||||
# If we offered the nominated candidate used, we activate
|
# If we offered the nominated candidate used, we activate
|
||||||
# the proxy
|
# the proxy
|
||||||
|
|
Loading…
Add table
Reference in a new issue