Commit graph

11354 commits

Author SHA1 Message Date
Philipp Hörist
209fa4c926 Dont set scrollbar policy in GC config window
This crashes Gajim on Windows.
Its to be investigated why this happens and how we can avoid it.
2017-06-11 22:54:15 +02:00
Philipp Hörist
2c34dd6d45 Show encryption icon in chat 2017-06-11 20:06:34 +02:00
Philipp Hörist
c8115e4164 Set transient for ErrorDialog
Fixes #8649
2017-06-08 23:34:03 +02:00
Philipp Hörist
2296e75d0d Replace unicode char in print message 2017-06-08 19:58:40 +02:00
Philipp Hörist
1bf66b857a Always pass utf8 encoded strings to python-gnupg
self.encoding which we set in the init is only intended
to decode gpg´s stderr which uses a system specific encoding.

if we dont encode the data we pass to python-gnupg ourself, it will fallback and use self.encoding.
This might be of no concern if self.encoding is set to 'utf8' and when we are on Linux
which has a preferred encoding of 'utf8'.

But if we are on Windows the preferred encoding for stderr
is most of the time not 'utf8'. If python-gnupg tries to decode a stderr stream that is for example
encoded with 'cp1252' with our set encoding of 'utf8' this will fail.

The solution is to pre-encode the data before we pass it to python-gnupg, so it does not have to
use self.encoding as a fallback. And set self.encoding='latin1' because latin1 will not yield exceptions
on decoding errors. Also gpg itself will fallback to latin1 as stderr encoding when it cant determine the
preferred encoding of a system.

self.decode_errors is used for something differently, and has no influence on the situation.

Fixes #8644
2017-06-08 19:33:01 +02:00
Philipp Hörist
2872993b0c Remove unused GPG code 2017-06-08 19:10:04 +02:00
Philipp Hörist
92b0a15521 Pass use_agent to GPG init instead of overwrite 2017-06-08 19:09:22 +02:00
Philipp Hörist
b5e9b07a07 Remove unused or old config values 2017-06-06 22:12:37 +02:00
Philipp Hörist
a5f6ead063 Update nbxmpp min version 2017-06-04 23:27:05 +02:00
Philipp Hörist
ef8229615a Dont save sent MessageStanza for LMC use
There are mutliple reasons why this is not a good idea

1. It places work on encryption Plugins, as many encryption attributes inside the
stanza can not be resend again (OMEMO, OTR), so the plugins have to make sure none of
these attr are inside the LMC stanza

2. In general its not obvious for plugin devs that a stanza issued after LMC has to be
treated differently. There should be no negative effects, even when a contributor not knowing
about LMC at all.

This commit saves only the stanza id, and adds the replace tag on the new message.
This results also in less code.
2017-06-02 03:32:46 +02:00
Philipp Hörist
f803b544bc Rejoin MUCs unconditionally on SignedInEvent
There is no reason that any Groupchat should be treated as already connected when we sign in.
2017-06-01 19:10:06 +02:00
Philipp Hörist
cb65cfc5ae Add config option to activate XEP-0146 commands
Some of the Commands have security implications, thats why we disable them per default
Fixes #8378
2017-05-26 23:10:05 +02:00
Philipp Hörist
2cc9d6c518 Use GTK stock icon for LMC 2017-05-18 22:02:18 +02:00
Philipp Hörist
020e4e0308 Name method more appropriate 2017-05-18 21:45:31 +02:00
Philipp Hörist
3335482345 Add 'encryption' config options group
We have to save the value per account and contact, because otherwise
it could lead to problems if a jid is added to more than one account.

As key this uses a string in the form of 'Account-BareJid'.

The config option group 'contacts' is not used because there are values
like 'speller_language' that make more sense to set on a Jid basis, rather than a
Account-Jid basis.

Treat an empty config value or no config value as 'disabled', instead
of writing a config value of 'disabled'. This has the benefit that we
dont have to write config values for contacts were we dont use encryption.
2017-05-18 21:42:40 +02:00
Philipp Hörist
a73f02735a Remove frozen logging on windows
Because of the new build process this has become obsolete
we can now log on windows with a simple

´Gajim.exe > log.txt 2>&1´
2017-05-17 15:57:23 +02:00
Philipp Hörist
148655c59f Terminate esession only if it was active before
This is a regression from !96
2017-05-17 14:31:25 +02:00
André Apitzsch
e9038f2220 Zeroconf: SSL_ERROR_* has been moved to ssl module
fixes #8625
2017-05-16 23:51:12 +02:00
Philipp Hörist
a0a27d9cb2 Use named icons in filetransfer window 2017-05-16 18:14:34 +02:00
Philipp Hörist
2e148a6133 Add encryption API to groupchat_control 2017-05-07 18:40:09 +02:00
Philipp Hörist
ce7923e164 Remove log and enabled status from lock tooltip
- Log status is a feature that only works with xep-0136 which nobody uses anymore
- Even then we can only trust in the server/user to not log the session
- We should not imply that a client could control if messages are logged on the server or the other end,
 especially as this is about encryption and security we should be as accurate as possible

- The lock image is only shown if a encryption was sucessfully activated, so the enabled flag is unnecessary
2017-05-07 18:40:09 +02:00
Philipp Hörist
cf07022cbd Remove ESessions encryption/decryption from core 2017-05-07 18:40:05 +02:00
Philipp Hörist
3fd35a041e Remove PGP encryption/decryption from core 2017-05-07 18:38:33 +02:00
Philipp Hörist
5116af037b Add Encryption Plugin API
- Add extension points when receiving/sending a message
- Add extension point for setting the lock image
- Add extension point after clicking the send button
- Add extension point when typing
- Add a new menu button to choose the desired encryption
- Extend the PluginManager to hold a list of encryption plugins
2017-05-07 18:38:06 +02:00
Philipp Hörist
37a313701c Fix exception when minimizing a groupchat 2017-05-06 11:29:23 +02:00
Philipp Hörist
6e8e5aec51 Merge branch 'stun_discovery' into 'master'
Use account hostname for STUN server discovery

See merge request !93
2017-05-05 22:42:47 +02:00
Marc Schink
61c2259a9a Use account hostname for STUN server discovery
Use the account hostname instead of the target hostname of the
_xmpp-client._tcp SRV resource record for STUN server discovery.
Otherwise, discovery fails if both hostnames are different.
2017-05-03 10:01:49 +02:00
Philipp Hörist
bc504f90b1 Make default proxy always available
If the user had an empty `file_transfer_proxies` config setting
no proxies were used. As we discover the default server proxy ourself the
user should not have to write it to his config setting to make use of it.
2017-05-02 16:55:39 +02:00
Philipp Hörist
30d3f0c2ba Merge branch 'new' into 'master'
Add support for systemd's networkd

See merge request !91
2017-05-02 15:32:37 +02:00
Jörg Sommer
5e8c9fe590 network_watcher: Add support for systemd-networkd 2017-05-02 10:15:23 +02:00
Philipp Hörist
2cd6634c0e Dont show warning on missing 0184 receipt
https://xmpp.org/extensions/xep-0184.html#what tells us that we
SHOULD NOT impute any meaning to the fact that we did not receive an ack message
2017-05-01 19:42:57 +02:00
Philipp Hörist
79dc0c49f1 Always send message delivery receipts requests
- We want to send requests also to offline contacts.
- The XEP is wide spread chances are high that a contact supports it.
- It gets really complicated, when we want to guess if a offline contact supports receipts
2017-05-01 19:23:31 +02:00
Philipp Hörist
d346333d2a Drop some message from ourself
- 'received'-Carbons from ourself, because we either received
   the message directly or got a 'sent'-Carbon about it
-  Messages from our own full jid, this can happen when we send
   a Message to ourself and no other resource is online.
2017-05-01 19:08:19 +02:00
Philipp Hörist
33a584b8b0 Dont use message receipts in message to ourself 2017-05-01 19:08:11 +02:00
Philipp Hörist
c49d13bcae Use BareJID when sending message to ourself 2017-05-01 17:58:55 +02:00
Philipp Hörist
e02798dc19 Dont send chatstates to own resources 2017-05-01 17:52:19 +02:00
Philipp Hörist
2126d4304a Extend method to return our own full jid 2017-05-01 17:23:46 +02:00
Philipp Hörist
0eb2433c17 Fix regression from !85
Disabled accounts are not in gajim.connections, which leads to a
key error.
2017-05-01 16:08:02 +02:00
Philipp Hörist
64ae063f9c Fix mediated groupchat invites
- Push Invitation and Decline event much earlier
- Refactor Logic to decide if mediated or not
  Ejabbered 17.03 does add a 'jabberconference' namespace into mediated invites which has broken our logic
- Dont add a groupchat contact on invitation, always add the inviter to the roster
2017-05-01 15:33:38 +02:00
Philipp Hörist
d06ba96a89 Update dependency in features window
gir1.2-gupnpigd-1.0 is the correct python3/GTK3 dependency on Debian
2017-04-30 18:45:50 +02:00
Philipp Hörist
89f1e9820d Merge branch 'dbus' into 'master'
Port Network Watcher to Gio API

See merge request !88
2017-04-29 23:37:55 +02:00
Philipp Hörist
d0357eaa29 Use different mnemonic
O is already used for the OK button
2017-04-29 21:09:58 +02:00
Philipp Hörist
6a4cbf06ec Fix Button labels 2017-04-29 20:58:35 +02:00
Philipp Hörist
b6db6026be Fix typo 2017-04-29 20:39:58 +02:00
Philipp Hörist
3fb12148b9 Remove not working proxys 2017-04-29 17:22:26 +02:00
Philipp Hörist
7cb7bcaae6 Refactor IBB Handlers
- Move handling of Data IQs into IBBIqHandler
- Call SendHandler with file_props
- Save last sent id in file_props.syn_id
- Remove some useless checks, now that we call SendHandler with file_props
- Send item-not-found error on invalid session id
2017-04-29 17:22:18 +02:00
Philipp Hörist
385d6c3081 On IBB cancel set correct 'to' attr 2017-04-29 16:58:41 +02:00
Philipp Hörist
3e592c980e Only make pause button active on pause-able transfers 2017-04-29 16:58:40 +02:00
Philipp Hörist
0d8c008764 Fix typo in event type 2017-04-29 16:58:40 +02:00
Philipp Hörist
2ede022422 Dont hash file on filetransfer error 2017-04-29 16:58:39 +02:00