Commit f787d2c1 authored by sb's avatar sb
Browse files

fix file transfer,

add log messages for zeroconf,
refresh name changes of roster items (on resolve)
parent 341e8886
...@@ -53,7 +53,7 @@ def bind(self): ...@@ -53,7 +53,7 @@ def bind(self):
self._serv.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) self._serv.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
self._serv.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) self._serv.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
self._serv.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) self._serv.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
# will fail when port as busy, or we don't have rights to bind # will fail when port is busy, or we don't have rights to bind
try: try:
self._serv.bind(('0.0.0.0', self.port)) self._serv.bind(('0.0.0.0', self.port))
except Exception, e: except Exception, e:
...@@ -500,7 +500,6 @@ def start_listener(self, port): ...@@ -500,7 +500,6 @@ def start_listener(self, port):
BindPortError(port) BindPortError(port)
return None return None
def getRoster(self): def getRoster(self):
return self.roster.getRoster() return self.roster.getRoster()
......
...@@ -149,7 +149,7 @@ def send_socks5_info(self, file_props, fast = True, receiver = None, ...@@ -149,7 +149,7 @@ def send_socks5_info(self, file_props, fast = True, receiver = None,
except socket.gaierror: except socket.gaierror:
self.dispatch('ERROR', (_('Wrong host'), _('The host you configured as the ft_override_host_to_send advanced option is not valid, so ignored.'))) self.dispatch('ERROR', (_('Wrong host'), _('The host you configured as the ft_override_host_to_send advanced option is not valid, so ignored.')))
ft_override_host_to_send = self.peerhost[0] ft_override_host_to_send = self.peerhost[0]
listener = gajim.socks5queue.start_listener(self.peerhost[0], port, listener = gajim.socks5queue.start_listener(port,
sha_str, self._result_socks5_sid, file_props['sid']) sha_str, self._result_socks5_sid, file_props['sid'])
if listener == None: if listener == None:
file_props['error'] = -5 file_props['error'] = -5
......
...@@ -188,11 +188,10 @@ def _on_resolve_timeout(self): ...@@ -188,11 +188,10 @@ def _on_resolve_timeout(self):
self.zeroconf.resolve_all() self.zeroconf.resolve_all()
diffs = self.roster.getDiffs() diffs = self.roster.getDiffs()
for key in diffs: for key in diffs:
print key
print self.roster.getStatus(key)
print self.roster.getMessage(key),
self.roster.setItem(key) self.roster.setItem(key)
self.dispatch('ROSTER_INFO', (key, self.roster.getName(key), 'both', 'no', self.roster.getGroups(key)))
self.dispatch('NOTIFY', (key, self.roster.getStatus(key), self.roster.getMessage(key), 'local', 0, None, 0)) self.dispatch('NOTIFY', (key, self.roster.getStatus(key), self.roster.getMessage(key), 'local', 0, None, 0))
#XXX open chat windows don't get refreshed (full name), add that
return self.call_resolve_timeout return self.call_resolve_timeout
# callbacks called from zeroconf # callbacks called from zeroconf
...@@ -243,9 +242,9 @@ def connect(self, data = None, show = 'online', msg = ''): ...@@ -243,9 +242,9 @@ def connect(self, data = None, show = 'online', msg = ''):
self.connected = STATUS_LIST.index(show) self.connected = STATUS_LIST.index(show)
# refresh all contacts data every second # refresh all contacts data every five seconds
self.call_resolve_timeout = True self.call_resolve_timeout = True
gobject.timeout_add(10000, self._on_resolve_timeout) gobject.timeout_add(5000, self._on_resolve_timeout)
else: else:
self.dispatch('STATUS', 'offline') self.dispatch('STATUS', 'offline')
self.status = 'offline' self.status = 'offline'
...@@ -326,8 +325,6 @@ def change_status(self, show, msg, sync = False, auto = False): ...@@ -326,8 +325,6 @@ def change_status(self, show, msg, sync = False, auto = False):
(_('Could not change status of account "%s"') % self.name, (_('Could not change status of account "%s"') % self.name,
_('Please check if avahi-daemon is running.'))) _('Please check if avahi-daemon is running.')))
def get_status(self): def get_status(self):
return STATUS_LIST[self.connected] return STATUS_LIST[self.connected]
...@@ -399,7 +396,6 @@ def send_message(self, jid, msg, keyID, type = 'chat', subject='', ...@@ -399,7 +396,6 @@ def send_message(self, jid, msg, keyID, type = 'chat', subject='',
else: else:
kind = 'single_msg_sent' kind = 'single_msg_sent'
gajim.logger.write(kind, jid, log_msg) gajim.logger.write(kind, jid, log_msg)
#~ self.zeroconf.send_message(jid, msgtxt, type)
self.dispatch('MSGSENT', (jid, msg, keyID)) self.dispatch('MSGSENT', (jid, msg, keyID))
......
...@@ -115,13 +115,13 @@ def getResources(self, jid): ...@@ -115,13 +115,13 @@ def getResources(self, jid):
def getGroups(self, jid): def getGroups(self, jid):
return self._data[jid]['groups'] return self._data[jid]['groups']
def getName(self, jid): def getName(self, jid):
if self._data.has_key(jid): if self._data.has_key(jid):
return self._data[jid]['name'] return self._data[jid]['name']
def getStatus(self, jid): def getStatus(self, jid):
if self._data.has_key(jid): if self._data.has_key(jid):
print 'roster: getStatus: %s' % self._data[jid]['status']
return self._data[jid]['status'] return self._data[jid]['status']
def getMessage(self, jid): def getMessage(self, jid):
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
try: try:
import avahi, gobject, dbus import avahi, gobject, dbus
except ImportError: except ImportError:
gajim.log.debug("Error: python-avahi and python-dbus need to be installed. No zeroconf support.") gajim.log.debug('Error: python-avahi and python-dbus need to be installed. No zeroconf support.')
try: try:
import dbus.glib import dbus.glib
...@@ -71,7 +71,7 @@ def error_callback(self, err): ...@@ -71,7 +71,7 @@ def error_callback(self, err):
self.disconnected_CB() self.disconnected_CB()
def new_service_callback(self, interface, protocol, name, stype, domain, flags): def new_service_callback(self, interface, protocol, name, stype, domain, flags):
print "Found service '%s' in domain '%s' on %i.%i." % (name, domain, interface, protocol) gajim.log.debug('Found service %s in domain %s on %i.%i.' % (name, domain, interface, protocol))
if not self.connected: if not self.connected:
return return
...@@ -81,7 +81,7 @@ def new_service_callback(self, interface, protocol, name, stype, domain, flags): ...@@ -81,7 +81,7 @@ def new_service_callback(self, interface, protocol, name, stype, domain, flags):
reply_handler=self.service_resolved_callback, error_handler=self.error_callback) reply_handler=self.service_resolved_callback, error_handler=self.error_callback)
def remove_service_callback(self, interface, protocol, name, stype, domain, flags): def remove_service_callback(self, interface, protocol, name, stype, domain, flags):
print "Service '%s' in domain '%s' on %i.%i disappeared." % (name, domain, interface, protocol) gajim.log.debug('Service %s in domain %s on %i.%i disappeared.' % (name, domain, interface, protocol))
#if not self.connected: #if not self.connected:
# return # return
if name != self.name: if name != self.name:
...@@ -121,8 +121,8 @@ def txt_array_to_dict(self,txt_array): ...@@ -121,8 +121,8 @@ def txt_array_to_dict(self,txt_array):
return items return items
def service_resolved_callback(self, interface, protocol, name, stype, domain, host, aprotocol, address, port, txt, flags): def service_resolved_callback(self, interface, protocol, name, stype, domain, host, aprotocol, address, port, txt, flags):
print "Service data for service '%s' in domain '%s' on %i.%i:" % (name, domain, interface, protocol) gajim.log.debug('Service data for service %s in domain %s on %i.%i:' % (name, domain, interface, protocol))
# print "\tHost %s (%s), port %i, TXT data: %s" % (host, address, port, avahi.txt_array_to_string_array(txt)) gajim.log.debug('Host %s (%s), port %i, TXT data: %s' % (host, address, port, avahi.txt_array_to_string_array(txt)))
if not self.connected: if not self.connected:
return return
bare_name = name bare_name = name
...@@ -144,8 +144,6 @@ def service_resolved_callback(self, interface, protocol, name, stype, domain, ho ...@@ -144,8 +144,6 @@ def service_resolved_callback(self, interface, protocol, name, stype, domain, ho
# different handler when resolving all contacts # different handler when resolving all contacts
def service_resolved_all_callback(self, interface, protocol, name, stype, domain, host, aprotocol, address, port, txt, flags): def service_resolved_all_callback(self, interface, protocol, name, stype, domain, host, aprotocol, address, port, txt, flags):
# print "Service data for service '%s' in domain '%s' on %i.%i:" % (name, domain, interface, protocol)
# print "\tHost %s (%s), port %i, TXT data: %s" % (host, address, port, str(avahi.txt_array_to_string_array(txt)))
if not self.connected: if not self.connected:
return return
bare_name = name bare_name = name
...@@ -154,16 +152,13 @@ def service_resolved_all_callback(self, interface, protocol, name, stype, domain ...@@ -154,16 +152,13 @@ def service_resolved_all_callback(self, interface, protocol, name, stype, domain
self.contacts[name] = (name, domain, interface, protocol, host, address, port, bare_name, txt) self.contacts[name] = (name, domain, interface, protocol, host, address, port, bare_name, txt)
def service_added_callback(self): def service_added_callback(self):
print 'Service successfully added' gajim.log.debug('Service successfully added')
pass
def service_committed_callback(self): def service_committed_callback(self):
print 'Service successfully committed' gajim.log.debug('Service successfully committed')
pass
def service_updated_callback(self): def service_updated_callback(self):
print 'Service successfully updated' gajim.log.debug('Service successfully updated')
pass
def service_add_fail_callback(self, err): def service_add_fail_callback(self, err):
gajim.log.debug('Error while adding service. %s' % str(err)) gajim.log.debug('Error while adding service. %s' % str(err))
...@@ -222,7 +217,7 @@ def create_service(self): ...@@ -222,7 +217,7 @@ def create_service(self):
self.txt = txt self.txt = txt
# print "Publishing service '%s' of type %s" % (self.name, self.stype) gajim.log.debug('Publishing service %s of type %s' % (self.name, self.stype))
self.entrygroup.AddService(avahi.IF_UNSPEC, avahi.PROTO_UNSPEC, dbus.UInt32(0), self.name, self.stype, '', '', self.port, avahi.dict_to_txt_array(self.txt), reply_handler=self.service_added_callback, error_handler=self.service_add_fail_callback) self.entrygroup.AddService(avahi.IF_UNSPEC, avahi.PROTO_UNSPEC, dbus.UInt32(0), self.name, self.stype, '', '', self.port, avahi.dict_to_txt_array(self.txt), reply_handler=self.service_added_callback, error_handler=self.service_add_fail_callback)
self.entrygroup.Commit(reply_handler=self.service_committed_callback, self.entrygroup.Commit(reply_handler=self.service_committed_callback,
error_handler=self.entrygroup_commit_error_CB) error_handler=self.entrygroup_commit_error_CB)
...@@ -256,7 +251,7 @@ def remove_announce(self): ...@@ -256,7 +251,7 @@ def remove_announce(self):
else: else:
return False return False
except dbus.dbus_bindings.DBusException, e: except dbus.dbus_bindings.DBusException, e:
print "zeroconf.py: Can't remove service, avahi daemon not running?" gajim.log.debug("Can't remove service. That should not happen")
def browse_domain(self, interface, protocol, domain): def browse_domain(self, interface, protocol, domain):
self.new_service_type(interface, protocol, self.stype, domain, '') self.new_service_type(interface, protocol, self.stype, domain, '')
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment