re-enable proxy testing. see #4299

This commit is contained in:
Yann Leboulanger 2009-02-14 16:41:31 +00:00
parent b2ebb4cbc9
commit 4ec93e6ea7

View file

@ -23,6 +23,8 @@
import socket import socket
import struct import struct
import errno import errno
import logging
log = logging.getLogger('gajim.c.proxy65_manager')
import common.xmpp import common.xmpp
from common import gajim from common import gajim
@ -106,19 +108,22 @@ class ProxyResolver:
self.jid = unicode(jid) self.jid = unicode(jid)
self.state = S_RESOLVED self.state = S_RESOLVED
#FIXME: re-enable proxy testing #FIXME: re-enable proxy testing
self.state = S_FINISHED log.info('start resolving %s:%s' % (self.host, self.port))
#self.receiver_tester = ReceiverTester(self.host, self.port, self.jid, self.receiver_tester = ReceiverTester(self.host, self.port, self.jid,
# self.sid, self.sender_jid, self._on_receiver_success, self.sid, self.sender_jid, self._on_receiver_success,
# self._on_connect_failure) self._on_connect_failure)
#self.receiver_tester.connect() self.receiver_tester.connect()
def _on_receiver_success(self): def _on_receiver_success(self):
log.debug('Receiver successfully connected %s:%s' % (self.host,
self.port))
self.host_tester = HostTester(self.host, self.port, self.jid, self.host_tester = HostTester(self.host, self.port, self.jid,
self.sid, self.sender_jid, self._on_connect_success, self.sid, self.sender_jid, self._on_connect_success,
self._on_connect_failure) self._on_connect_failure)
self.host_tester.connect() self.host_tester.connect()
def _on_connect_success(self): def _on_connect_success(self):
log.debug('Host successfully connected %s:%s' % (self.host, self.port))
iq = common.xmpp.Protocol(name='iq', to=self.jid, typ='set') iq = common.xmpp.Protocol(name='iq', to=self.jid, typ='set')
query = iq.setTag('query') query = iq.setTag('query')
query.setNamespace(common.xmpp.NS_BYTESTREAM) query.setNamespace(common.xmpp.NS_BYTESTREAM)
@ -128,13 +133,22 @@ class ProxyResolver:
activate.setData('test@gajim.org/test2') activate.setData('test@gajim.org/test2')
if self.active_connection: if self.active_connection:
self.active_connection.SendAndCallForResponse(iq, self.keep_conf) log.debug('Activating bytestream on %s:%s' % (self.host, self.port))
self.active_connection.SendAndCallForResponse(iq,
self._result_received)
self.state = S_ACTIVATED self.state = S_ACTIVATED
else: else:
self.state = S_INITIAL self.state = S_INITIAL
def keep_conf(self, data=None): def _result_received(self, data):
self.disconnect(self.active_connection) self.disconnect(self.active_connection)
if data.getType() == 'result':
self.keep_conf()
else:
self._on_connect_failure()
def keep_conf(self):
log.debug('Bytestream activated %s:%s' % (self.host, self.port))
self.state = S_FINISHED self.state = S_FINISHED
def _on_connect_failure(self): def _on_connect_failure(self):
@ -268,7 +282,9 @@ class HostTester(Socks5, IdleObject):
data = self._get_request_buff(self._get_sha1_auth()) data = self._get_request_buff(self._get_sha1_auth())
self.send_raw(data) self.send_raw(data)
self.state += 1 self.state += 1
log.debug('Host authenticating to %s:%s' % (self.host, self.port))
elif self.state == 3: elif self.state == 3:
log.debug('Host authenticated to %s:%s' % (self.host, self.port))
self.on_success() self.on_success()
self.state += 1 self.state += 1
@ -276,6 +292,7 @@ class HostTester(Socks5, IdleObject):
try: try:
self._sock.connect((self.host, self.port)) self._sock.connect((self.host, self.port))
self._sock.setblocking(False) self._sock.setblocking(False)
log.debug('Host Connecting to %s:%s' % (self.host, self.port))
self._send = self._sock.send self._send = self._sock.send
self._recv = self._sock.recv self._recv = self._sock.recv
except Exception, ee: except Exception, ee:
@ -295,6 +312,7 @@ class HostTester(Socks5, IdleObject):
self._recv = self._sock.recv self._recv = self._sock.recv
self.buff = '' self.buff = ''
self.state = 1 # connected self.state = 1 # connected
log.debug('Host connected to %s:%s' % (self.host, self.port))
self.idlequeue.plug_idle(self, True, False) self.idlequeue.plug_idle(self, True, False)
return return
@ -370,6 +388,7 @@ class ReceiverTester(Socks5, IdleObject):
if version != 0x05 or method == 0xff: if version != 0x05 or method == 0xff:
self.pollend() self.pollend()
return return
log.debug('Receiver authenticating to %s:%s' % (self.host, self.port))
data = self._get_request_buff(self._get_sha1_auth()) data = self._get_request_buff(self._get_sha1_auth())
self.send_raw(data) self.send_raw(data)
self.state += 1 self.state += 1
@ -381,13 +400,15 @@ class ReceiverTester(Socks5, IdleObject):
if version != 0x05 or reply != 0x00: if version != 0x05 or reply != 0x00:
self.pollend() self.pollend()
return return
log.debug('Receiver authenticated to %s:%s' % (self.host, self.port))
self.on_success() self.on_success()
self.state += 1 self.state += 1
def do_connect(self): def do_connect(self):
try: try:
self._sock.connect((self.host, self.port))
self._sock.setblocking(False) self._sock.setblocking(False)
self._sock.connect((self.host, self.port))
log.debug('Receiver Connecting to %s:%s' % (self.host, self.port))
self._send = self._sock.send self._send = self._sock.send
self._recv = self._sock.recv self._recv = self._sock.recv
except Exception, ee: except Exception, ee:
@ -407,7 +428,7 @@ class ReceiverTester(Socks5, IdleObject):
self._recv = self._sock.recv self._recv = self._sock.recv
self.buff = '' self.buff = ''
self.state = 1 # connected self.state = 1 # connected
log.debug('Receiver connected to %s:%s' % (self.host, self.port))
self.idlequeue.plug_idle(self, True, False) self.idlequeue.plug_idle(self, True, False)
return
# vim: se ts=3: # vim: se ts=3: