Commit graph

283 commits

Author SHA1 Message Date
Marvin W
dfd7940104 Add support for Jingle RTP sessions (XEP-0167) to xmpp-vala
Co-authored-by: fiaxh <git@lightrise.org>
2021-03-21 12:41:32 +01:00
fiaxh
f328bf93fb Add External Service Discovery (XEP-0215) support 2021-03-21 12:41:14 +01:00
Marvin W
5bd719a919 Add ICE-UDP Jingle transport (XEP-0176) to xmpp-vala
Co-authored-by: fiaxh <git@lightrise.org>
2021-03-21 12:41:06 +01:00
fiaxh
2b90fcc39a Improve & refactor Jingle base implementation
Co-authored-by: Marvin W <git@larma.de>
2021-03-21 12:40:04 +01:00
hrxi
148cf48d2b Add libnice and listen for direct connections in Jingle SOCKS5 (#608)
Add libnice as a plugin. If it is present, use libnice to enumerate
local IP addresses and listen on them to support direct connections for
Jingle SOCKS5.

Tested with Conversations and Gajim.

Created the nice.vapi file using
```
vapigen --library nice --pkg gio-2.0 --metadatadir metadata /usr/share/gir-1.0/Nice-0.1.gir
```
2021-03-19 22:06:02 +01:00
Michel Le Bihan
e06cc08425
Improve IBR form handling (#990)
* Change register account dialog to show instructions

Change data forms to handle title and instructions elements

* Change register account dialog to show fixed fields

Closes #988

* Change form switch to halign start

Closes #992

* Change register account dialog to markup URLs
2021-02-17 22:57:53 +01:00
fiaxh
59236ec01a Add support for Direct MUC Invitations (XEP-0249) 2021-01-12 23:10:45 +01:00
fiaxh
2c22c0428c Fix segfault on accept_certificate signal (fixup 81a5505) 2020-12-31 23:19:06 +01:00
fiaxh
81a5505270 Allow certificates from unknown CAs from .onion domains
It's barely possible for .onion servers to provide a non-self-signed cert. But that's fine because encryption is provided independently though TOR.

see #958
2020-12-31 19:04:02 +01:00
fiaxh
07917f1d84 Refactor XmppStream, TLS and connection method logic
fixes #534
2020-11-20 15:21:18 +01:00
fiaxh
10adf716f3 Fix incoming muc voice request notification 2020-11-11 11:27:31 +01:00
fiaxh
dba63b1473 Fix runtime critical when room has no name 2020-10-29 19:11:55 +01:00
fiaxh
4f0ca55cf0 Fix for older glib versions 2020-10-27 16:19:59 +01:00
fiaxh
2e0357877c Fix some compiler warnings 2020-10-27 16:05:30 +01:00
fiaxh
4f636dbd8e Service Discovery Module: Clear cached disco info requests when detaching from stream
If a info request did not receive a response in some stream (e.g. due to network errors), any requests to the same entity in subsequent streams waited indefinitively.
2020-10-12 18:23:15 +02:00
fiaxh
6325a98cff Fix runtime criticals related to jingle file transfer 2020-09-19 11:16:22 +02:00
fiaxh
8a2edbe661 Fix new compiler error (don't reference private variable from public one)
fixes #901
2020-09-07 15:29:32 +02:00
fiaxh
2d31d9d470 Cleanup 2020-09-07 15:21:42 +02:00
fiaxh
e6a90fc25c Implement MUC self ping 2020-08-31 16:48:20 +02:00
fiaxh
c887240fdc Improve stream management queue 2020-07-21 15:48:42 +02:00
fiaxh
7309c6f3ac Visually highlight pending messages, improve resending 2020-07-16 23:31:19 +02:00
fiaxh
e159fd2492 Only query entity caps when we need them 2020-07-16 23:31:19 +02:00
fiaxh
74f7fa897f Add queue and resending to stream management 2020-07-15 18:12:19 +02:00
Marvin W
2824dedd22
Change test code for older vala compat 2020-06-28 13:00:17 +02:00
Marvin W
48964bc5cc
Don't strip() at XML layer 2020-06-28 11:53:43 +02:00
Marvin W
8f8018ec81
Fix async tests 2020-06-28 11:53:43 +02:00
fiaxh
50c55c7f55 Fetch avatars only when they are used 2020-06-10 19:53:56 +02:00
fiaxh
e3724f96ed Fix runtime critical in entity capabilities hashing 2020-06-04 14:08:41 +02:00
fiaxh
d01af5b520 Fix compiler warnings 2020-06-03 21:50:40 +02:00
fiaxh
b5066e0e2f Check if server supports uid 2020-06-03 21:50:40 +02:00
fiaxh
74b511593d Convert '<' back to '&lt;' in factors of the XEP-0115 verification string 2020-05-14 13:22:25 +02:00
fiaxh
cd3a119eff Handle incoming own read marker in private MUCs 2020-04-28 23:56:53 +02:00
fiaxh
af52c24df7 Fix nick change in MUC, update bookmark accordingly; remove unused code 2020-04-26 00:20:27 +02:00
fiaxh
ee9795d8f4 Handle if Items/InfoResult are null 2020-04-25 16:15:43 +02:00
fiaxh
f8f305efe5 xmpp-vala: Use more async 2020-04-24 14:19:42 +02:00
fiaxh
e7bc68ad4d Handle entity hash in server features node, make ServiceDiscovery request_info/items async, add caching has_entity_feature 2020-04-24 14:18:24 +02:00
Anmol
2631a9bdba
voice handling in moderated groups (#788) 2020-04-22 20:04:03 +02:00
fiaxh
7c4260eed7 Remove features from service discovery module when detaching module from stream
fixes #179
fixes #812
2020-04-21 16:25:21 +02:00
kmq
fcad6720e6
HTTP-Upload: parsing max-file-size attribute (#809)
When a server returns multiple <x/> elements
in response to a discinfo query, this change
uses all of them instead of just the first one.
2020-04-17 19:50:10 +02:00
fiaxh
d091a6c3cd Add keyboard shortcut (up key) to activate last message correction 2020-04-05 16:19:56 +02:00
fiaxh
871ff33ac7 Add support for last message correction 2020-04-03 22:49:59 +02:00
Marvin W
0af8526ab1
Work-around use after free
Upstream: https://gitlab.gnome.org/GNOME/vala/-/issues/751
2020-04-01 17:40:47 +02:00
fiaxh
12cd56612d Store entity identity info, use it in conversation list tooltips 2020-03-29 20:24:39 +02:00
fiaxh
ed6eda129e Update live whether encryption is possible in MUC (lock icon visible) 2020-03-08 22:21:09 +01:00
fiaxh
013b388896 Make message sending async and set unsent on error 2020-03-05 12:21:43 +01:00
fiaxh
a81af020f3 Preserve unchanged conference data (name) in bookmarks
fixes #748
2020-02-20 17:15:51 +01:00
Marvin W
4a9c05ea37
Enabling display of more compiler warnings and fix some of them
Most of these are caused by various issues is the Vala compiler,
but it doesn't hurt to display them and report them upstream.
2020-01-21 21:55:08 +01:00
Marvin W
3650288a11
Don't use GObject/properties for JoinResult 2020-01-09 13:37:40 +01:00
Marvin W
11a118d53d
Fix issues in ICU usage 2019-12-25 19:56:51 +01:00
fiaxh
bce709b794 Store MUC passwords in bookmark
fixes #470
2019-12-24 23:31:17 +01:00
fiaxh
f58119f25e Don't show own typing notifications (other devices)
fixes #669
2019-12-24 01:46:01 +01:00
Marvin W
53d467938c
Use UTS46 instead of IDNA2003 2019-12-23 16:58:55 +01:00
Marvin W
a0a956ee08
Properly check Jids everywhere 2019-12-23 16:58:53 +01:00
Marvin W
1bb75f40d2
Add timing to logs, fix issue of silently ignored I/O errors 2019-12-22 19:30:16 +01:00
fiaxh
c3532bdf31 Refactor MAM catchup. Fetch from latest to earliest message. 2019-12-18 20:35:04 +01:00
fiaxh
321c3529f3 Add (partial) support for unique stanza ids (XEP-0359) 2019-12-18 20:35:04 +01:00
Marvin W
bd45fdf1e1
Add version and adjust some cmake 2019-12-18 00:51:49 +01:00
fiaxh
890b91ce4d Only send new room config if something was changed
fixes #675
2019-12-16 01:41:04 +01:00
fiaxh
d194eae61d Set ALPN info on XMPP connections if GIO >= 2.60 2019-11-29 16:03:18 +01:00
fiaxh
1985fe1d7b Don't continue reading after stream was disconnected, make disconnecting async
fixes #636
2019-11-27 20:01:48 +01:00
fiaxh
f9c69a204e Small changes to "Add support for HTTP Upload headers" 2019-11-19 21:50:46 +01:00
Wiktor Kwapisiewicz
687ec1a159 Add support for HTTP Upload headers
Some services use Authorization header [0] to pass upload credential
data. This avoids the token being exposed in server logs and is allowed
by XEP-0363 since version 0.5.0.

This change adds support for headers allowed in XEP-0363: Authorization,
Expires and Cookie.

[0]: https://xmpp.org/extensions/xep-0363.html#request
2019-11-19 21:24:28 +01:00
fiaxh
41ada4fcc8 Don't attempt DNS SRV lookups in connection fallback 2019-11-18 22:45:18 +01:00
fiaxh
fcce176b91 Open new connection to send filled-in registration form
fixes #644
2019-11-18 17:02:59 +01:00
fiaxh
05561dd677 Parse presence delivery errors when joining MUC
fixes #224
2019-11-17 17:53:46 +01:00
fiaxh
a2f63a7789 Parse offline member info from MUC presence
Fixes OMEMO only encrypting to new member after restart and private MUC name only updating after restart
2019-11-17 17:53:27 +01:00
fiaxh
247a368150 OMEMO: Don't set publish options, configure only bundle node instead 2019-11-04 15:11:36 +01:00
fiaxh
c032ab00ec Don't send delivery recipts or chat states for own messages
fixes #631
2019-10-22 01:23:08 +02:00
fiaxh
7adb0e82fb Fix pubsub item listener notifying 2019-10-02 19:09:29 +02:00
fiaxh
5d65f047d0 Fix Jingle transport error 2019-09-29 01:53:59 +02:00
fiaxh
74c29d4df1 Add Bookmarks2 implementation, introduce bookmarks interfaces 2019-09-29 01:53:59 +02:00
Marvin W
9daf18f031
Fix warnings and compilation with older valac 2019-09-16 23:57:48 +02:00
Marvin W
e899668213
Add JET support 2019-09-16 23:31:11 +02:00
Michael Vetter
c8f2b80978 Fix typo alledged -> alleged 2019-09-12 21:27:35 +02:00
Maxime “pep” Buquet
2a70a4e83f Make TestCase protected for newer vala
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-09-11 15:35:46 +02:00
Marvin W
dd33f5f949
Check roster push authorization 2019-09-10 23:02:42 +02:00
fiaxh
307f16cc86 Fix check of source of MAM message 2019-09-10 22:03:24 +02:00
Marvin W
e84f2c4956
Fix check of source of a carbons message 2019-09-10 21:11:49 +02:00
fiaxh
bd7fde99af fixup Fix some warnings 2019-09-10 19:36:11 +02:00
hrxi
d5d305193c Fix some warnings
Instances of `RegexError` are just asserted as `assert_not_reached` as
they cannot really fail except for allocation failure if the given regex
is valid.
2019-09-10 19:36:11 +02:00
fiaxh
ecb3e783b9 Include data forms in entity capabilities hash computation 2019-09-03 00:18:06 +02:00
Marvin W
9f613d5812
Merge pull request #592 from hrxi/gsoc_1
Add SOCKS5 bytestreams and a couple of other fixes
2019-08-29 00:44:59 +02:00
hrxi
6028fd15a8 Don't error on Jingle file transfer hash session-info 2019-08-27 12:14:53 +02:00
fiaxh
ff6caf241c Add missing 'to' attribute when sending service-unavailable for an unknown IG get/set NS
fixes #604
2019-08-26 16:37:43 +02:00
hrxi
6083f446b4 Fix candidate selection for equal priority
XEP-0260 states that the candidate selected (offered) by the initiator
wins, not the one that was chosen by the initiator (i.e. offered by the
responder).
2019-08-24 13:32:22 +02:00
fiaxh
130965f322 Add incoming mediated invitation support (#162)
Co-authored-by: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
2019-08-22 16:05:28 +02:00
fiaxh
0521afa3d8 Fix specified size for encrypted file uploads 2019-08-21 22:37:52 +02:00
hrxi
34d7b5f515 Fix Jingle connection code when cancellable is null 2019-08-09 14:46:58 +02:00
fiaxh
3ad2891eb8 Set OMEMO devicelist + bundle node access model to public 2019-08-09 13:44:39 +02:00
hrxi
6494d7a45d Fix race condition involving session-terminate
The Jingle file transfer (XEP-0234) specifies that the receiver of the
file transfer is the one to terminate the session. Otherwise, there
might be a race condition between the XMPP stream and out-of-band SOCKS5
connections.
2019-08-08 17:15:37 +02:00
hrxi
9a1e9864d6 Fall back to IBB if S5B does not work out
This mostly happens if connectivity to the candidates cannot be
established.
2019-08-06 21:16:57 +02:00
hrxi
2327dc783c Send Jingle errors to the right JID 2019-08-06 21:12:41 +02:00
hrxi
4e0adcd2b4 Fix destination address of IBB error codes 2019-08-06 21:12:41 +02:00
hrxi
e1c98a0fd9 Forgot to add outgoing Jingle SOCKS5 transfer 2019-08-06 16:46:45 +02:00
hrxi
1b1fac0bb5 Implement detach 2019-08-06 15:38:31 +02:00
hrxi
94794666d7 Factor out the session-terminate handler 2019-08-06 15:38:27 +02:00
hrxi
642dac9aa0 Add support for Jingle SOCKS5 bytestreams (XEP-0260) 2019-08-05 20:55:37 +02:00
hrxi
77ff73a1ca Terminate the Jingle session after the file transfer is complete 2019-08-05 17:17:17 +02:00
hrxi
7fe6dda4c9 Finish file transfer after receiving enough data
This means that we no longer rely on the remote end to close the
connection after sending the file, but additionally use the `<size>`
element from the initial file transfer `<description>` to check whether
the file transfer has been completed.

This was motivated by Conversations not closing the connection for
SOCKS5 file transfers.
2019-08-05 17:17:17 +02:00
hrxi
9bbcff4afe Fix human_readable in stanza errors 2019-08-05 17:17:17 +02:00