Philipp Hörist pushed to branch master at gajim / gajim
Commits:
55e82cc6 by lovetox at 2020-05-30T21:49:23+02:00
Fix discovering local address for file transfer
Fixes #10016
- - - - -
3 changed files:
- gajim/common/client.py
- gajim/common/jingle_transport.py
- gajim/common/modules/bytestream.py
Changes:
=====================================
gajim/common/client.py
=====================================
@@ -129,6 +129,13 @@ class Client(ConnectionHandlers):
def features(self):
return self._client.features
+ @property
+ def local_address(self):
+ address = self._client.local_address
+ if address is not None:
+ return address.to_string().split(':')[0]
+ return None
+
def set_remove_account(self, value):
# Used by the RemoveAccount Assistant to make the Client
# not react to any stream errors that happen while the
=====================================
gajim/common/jingle_transport.py
=====================================
@@ -198,16 +198,21 @@ class JingleTransportSocks5(JingleTransport):
hosts = set()
local_ip_cand = []
- candidate = {
- 'host': self.connection.peerhost[0],
- 'candidate_id': generate_id(),
- 'port': port,
- 'type': 'direct',
- 'jid': self.ourjid,
- 'priority': priority
- }
- hosts.add(self.connection.peerhost[0])
- local_ip_cand.append(candidate)
+ my_ip = self.connection.local_address
+ if my_ip is None:
+ log.warning('No local address available')
+
+ else:
+ candidate = {
+ 'host': my_ip,
+ 'candidate_id': generate_id(),
+ 'port': port,
+ 'type': 'direct',
+ 'jid': self.ourjid,
+ 'priority': priority
+ }
+ hosts.add(my_ip)
+ local_ip_cand.append(candidate)
try:
for addrinfo in socket.getaddrinfo(socket.gethostname(), None):
=====================================
gajim/common/modules/bytestream.py
=====================================
@@ -303,9 +303,15 @@ class Bytestream(BaseModule):
self._account,
'ft_send_local_ips'):
return
+
+ my_ip = self._con.local_address
+ if my_ip is None:
+ log.warning('No local address available')
+ return
+
try:
# The ip we're connected to server with
- my_ips = [self._con.peerhost[0]]
+ my_ips = [my_ip]
# all IPs from local DNS
for addr in socket.getaddrinfo(socket.gethostname(), None):
if (not addr[4][0] in my_ips and
@@ -333,12 +339,12 @@ class Bytestream(BaseModule):
self._add_streamhosts_to_query(query, sender, port, add_hosts)
def _add_upnp_igd_as_streamhost_to_query(self, query, file_props, iq):
- if not app.is_installed('UPNP'):
+ my_ip = self._con.local_address
+ if my_ip is None or not app.is_installed('UPNP'):
+ log.warning('No local address available')
self._con.connection.send(iq)
return
- my_ip = self._con.peerhost[0]
-
# check if we are connected with an IPv4 address
try:
socket.inet_aton(my_ip)
View it on GitLab: https://dev.gajim.org/gajim/gajim/-/commit/55e82cc6e5b0b0ba820f7834862c52d8…
--
View it on GitLab: https://dev.gajim.org/gajim/gajim/-/commit/55e82cc6e5b0b0ba820f7834862c52d8…
You're receiving this email because of your account on dev.gajim.org.
Philipp Hörist pushed to branch master at gajim / gajim
Commits:
69a0456d by André Apitzsch at 2020-05-30T20:32:30+02:00
Server Info: Remove list header
Information is already provided by tab title.
- - - - -
1 changed file:
- gajim/gtk/server_info.py
Changes:
=====================================
gajim/gtk/server_info.py
=====================================
@@ -78,7 +78,6 @@ class ServerInfo(Gtk.ApplicationWindow, EventHelper):
self.feature_listbox = Gtk.ListBox()
self.feature_listbox.set_name('ServerInfo')
self.feature_listbox.set_selection_mode(Gtk.SelectionMode.NONE)
- self.feature_listbox.set_header_func(self.header_func, 'Features')
self._ui.features_scrolled.add(self.feature_listbox)
for feature in self.get_features():
self.add_feature(feature)
@@ -90,15 +89,6 @@ class ServerInfo(Gtk.ApplicationWindow, EventHelper):
if event.keyval == Gdk.KEY_Escape:
self.destroy()
- @staticmethod
- def header_func(row, before, user_data):
- if before:
- row.set_header(None)
- else:
- label = Gtk.Label(label=user_data)
- label.set_halign(Gtk.Align.START)
- row.set_header(label)
-
def _add_connection_info(self):
# Connection type
client = app.connections[self.account].connection
View it on GitLab: https://dev.gajim.org/gajim/gajim/-/commit/69a0456dfcf33c6a797ff3b3977ef851…
--
View it on GitLab: https://dev.gajim.org/gajim/gajim/-/commit/69a0456dfcf33c6a797ff3b3977ef851…
You're receiving this email because of your account on dev.gajim.org.
Philipp Hörist pushed to branch master at gajim / gajim
Commits:
07fc1dfa by André at 2020-05-30T11:49:07+02:00
Feature: Fix keyring availability check
- - - - -
1 changed file:
- gajim/gtk/features.py
Changes:
=====================================
gajim/gtk/features.py
=====================================
@@ -23,7 +23,6 @@ import os
import sys
from collections import namedtuple
-import gi
from gi.repository import Gtk
from gi.repository import Gdk
@@ -137,11 +136,10 @@ class Features(Gtk.ApplicationWindow):
self._some_keyring_available(),
_('Enables Gajim to store Passwords securely instead of '
'storing them in plaintext'),
- _('Requires: libsecret and a provider (such as GNOME '
- 'Keyring and KSecretService)'),
+ _('Requires: gnome-keyring or kwallet'),
_('Windows Credential Vault is used for secure password '
'storage'),
- None),
+ app.config.get('use_keyring')),
Feature(_('Spell Checker'),
app.is_installed('GSPELL'),
_('Enables Gajim to spell check your messages while '
@@ -160,14 +158,9 @@ class Features(Gtk.ApplicationWindow):
@staticmethod
def _some_keyring_available():
- if os.name == 'nt':
- return True
- try:
- gi.require_version('Secret', '1')
- from gi.repository import Secret # pylint: disable=unused-import
- except (ValueError, ImportError):
- return False
- return True
+ import keyring
+ backends = keyring.backend.get_all_keyring()
+ return any(keyring.core.recommended(backend) for backend in backends)
@staticmethod
def _idle_available():
View it on GitLab: https://dev.gajim.org/gajim/gajim/-/commit/07fc1dfa0d7c60baba91b9fda691a12f…
--
View it on GitLab: https://dev.gajim.org/gajim/gajim/-/commit/07fc1dfa0d7c60baba91b9fda691a12f…
You're receiving this email because of your account on dev.gajim.org.
Philipp Hörist pushed to branch master at gajim / python-nbxmpp
Commits:
ab9c8f04 by lovetox at 2020-05-26T22:26:04+02:00
MUC: Add None check
- - - - -
1 changed file:
- nbxmpp/modules/muc.py
Changes:
=====================================
nbxmpp/modules/muc.py
=====================================
@@ -161,7 +161,8 @@ class MUC(BaseModule):
self._log.warning(stanza)
raise NodeProcessed
- if (properties.muc_user.role.is_none and
+ if (properties.muc_user is not None and
+ properties.muc_user.role.is_none and
not properties.type.is_unavailable):
self._log.warning('Malformed Stanza')
self._log.warning(stanza)
View it on GitLab: https://dev.gajim.org/gajim/python-nbxmpp/-/commit/ab9c8f040aec946386f6c876…
--
View it on GitLab: https://dev.gajim.org/gajim/python-nbxmpp/-/commit/ab9c8f040aec946386f6c876…
You're receiving this email because of your account on dev.gajim.org.
Philipp Hörist pushed to branch master at gajim / python-nbxmpp
Commits:
123d35d6 by lovetox at 2020-05-26T22:24:20+02:00
MUC: Add check for another case of malformed presence
- - - - -
1 changed file:
- nbxmpp/modules/muc.py
Changes:
=====================================
nbxmpp/modules/muc.py
=====================================
@@ -161,6 +161,12 @@ class MUC(BaseModule):
self._log.warning(stanza)
raise NodeProcessed
+ if (properties.muc_user.role.is_none and
+ not properties.type.is_unavailable):
+ self._log.warning('Malformed Stanza')
+ self._log.warning(stanza)
+ raise NodeProcessed
+
def _process_groupchat_message(self, _client, stanza, properties):
properties.from_muc = True
properties.muc_jid = properties.jid.copy()
View it on GitLab: https://dev.gajim.org/gajim/python-nbxmpp/-/commit/123d35d638b72ba7314ce0ee…
--
View it on GitLab: https://dev.gajim.org/gajim/python-nbxmpp/-/commit/123d35d638b72ba7314ce0ee…
You're receiving this email because of your account on dev.gajim.org.