Commit graph

298 commits

Author SHA1 Message Date
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
hrxi 1be1d47122 Fix a couple of delegate copy warnigs
"warning: copying delegates is not supported"
2019-08-05 17:17:17 +02:00
hrxi 95596e25a5 Add jingle connection for better interfacing with jingle (terminate etc.) 2019-08-05 17:17:17 +02:00
fiaxh 1853ee8b4f Fix compilation with older valac versions 2019-07-18 03:20:40 +02:00
fiaxh f0abb8aaf9 Refactor file receive/send interfaces and UI 2019-07-18 02:03:42 +02:00
fiaxh 30353e92d6 Merge branch 'gsoc_0' of https://github.com/hrxi/dino into hrxi-gsoc_0 2019-07-16 21:15:47 +02:00
Marvin W 87da6584c0
Unroll some async methods in stanza reader 2019-07-14 13:54:42 +02:00
Marvin W 567ac81d78
Do not log long bodies 2019-07-14 13:33:36 +02:00
hrxi 4b6fe6bf7f Address pull requests comments, fix a few TODOs 2019-07-12 01:53:28 +02:00
hrxi 82e7cf4447 Add file receiving via Jingle
This currently follows the same rules as HTTP file download for
accepting files.
2019-07-09 11:21:40 +02:00
hrxi 877c46628f Implement file sending via Jingle
This is still disabled by default until prioritization is implemented;
otherwise this could be preferred to HTTP uploads.

File sending only works via Jingle In-Band-Bytestreams right now, more
transports are going to be implemented.

To test this, uncomment the line with `JingleFileTransfer` in
libdino/src/application.vala.
2019-07-09 11:21:39 +02:00
Daniel Gultsch 925463b296 mirror node value on disco request. fixes #258 2019-06-30 14:22:25 +02:00
hrxi 57a7d165e9 Send bad-request error for unknown IQ set/gets 2019-06-21 18:09:44 +02:00
hrxi 62aa8aa74a Add a couple of error primitives for easier error handling 2019-06-21 18:09:44 +02:00
fiaxh 34f9677c4e
Merge pull request #570 from hrxi/pr_typos
Fix a couple of typos and one network typo
2019-06-06 15:33:35 +02:00
hrxi 7097a71852 Fix ANSI color removal for XMPP log on non-tty stderrs 2019-06-06 15:32:11 +02:00
fiaxh 8120203d62 Don't set timeouts on registration connection attempts 2019-06-01 19:03:01 +02:00
hrxi ce8f343297 Fix a typo in the <service-unvailable/> iq answer 2019-06-01 17:13:44 +02:00
hrxi c245f7e34a Fix a couple of typos and double imports 2019-06-01 17:13:33 +02:00
fiaxh ad16b18871 Check presence for empty show node, assume as online 2019-05-21 18:09:53 +02:00
fiaxh d3c6e5c62c Enable sending chat state notifications in private rooms 2019-05-16 11:12:14 -06:00
fiaxh 9d19cdbf4e Process read marker from other devices for MUCs to adjust read-up-to state 2019-05-11 20:01:20 +02:00
fiaxh b6799e59bb Remove avatars with missmatch between supposed and actual sha1 hash on load, make loading async 2019-04-24 23:44:00 +02:00
fiaxh a960740c3e Ensure image data is kept until avatars are written to file 2019-04-24 23:38:07 +02:00
fiaxh 6f6e4b97cb Use glib log functions 2019-03-15 22:01:34 +01:00
fiaxh fb504308d0 Entity capabilities: Check c node for ver attribute
fixes #530
2019-03-14 17:39:31 +01:00
fiaxh 78ec625dbe Check for eme tag before adding fallback text for empty-body OMEMO messages 2019-02-20 01:48:07 +01:00
fiaxh 084653cfc2 Fix compiler error (From using uint8[].copy()) 2019-02-04 16:01:35 +01:00
fiaxh fc1a9a5712 Improve ping timeouts, add debug output for XmlErrors and ping timeouts 2019-01-02 15:59:56 +01:00
Daniel Gultsch d8e0ab406c display groups w/o name by list of members
For members-only, non-anonymous groups that do not have a name set we now
show an automatically generated name that is generated from the list of members
(offline, and online). Only the first name (before the first space) is used
to keep the generated name short.

The term *private room* is coined as a short hand for members only&non-anon group
chats.

This commit also uses the offline members list instead of the online member list
to generate avatar tiles (also only in members-only, non-anon groups.)
2018-12-28 13:42:58 +01:00
Daniel Gultsch 542744ade2 support jpeg pep avatars + actually check hash 2018-11-27 21:20:53 +01:00
Daniel Gultsch 34ab3de0ba only parse vcard hashes from available presence 2018-11-27 21:20:53 +01:00
fiaxh 2208ff9799 Restructure (http) file provider flow: Separate download&get_info, download in provider, move XmppStreamModule into xmpp-vala 2018-11-27 03:38:42 +01:00
fiaxh fa731a4623 Split login jid/password into two steps with checks 2018-11-16 09:29:34 -06:00
Marvin W dfb75e2cda
Merge PR #413 "Improvements to the OMEMO plugin" 2018-11-10 08:05:14 -06:00
codedust 1e54a442ba Display room name in conversation selector and conversation titlebar 2018-11-02 15:14:35 +01:00
fiaxh 6d947c42b5 Notification on TLS error/wrong password, log TLS cert issues, don't make account with connection error appear disabled in accounts dialog 2018-09-15 16:19:47 +02:00
fiaxh 79e0aee5fd Fix property with custom get+set to not have a default value (compiler error with vala 0.41)
Fix encryption icon not being shown right away
2018-09-04 13:48:33 +02:00
Marvin W baa3f99ed7 Initial implementation of SCRAM-SHA-1 2018-09-01 13:20:10 +02:00
fiaxh 4be8c92a2c In-Band Registration 2018-08-22 20:29:24 +02:00
Samuel Hand 8ebc2c5dd3 Fix mutual subscription detection 2018-08-10 01:40:20 +01:00
Samuel Hand 0bfab9d1d9 Fix bug where OMEMO not avaiable with a newly added contact 2018-08-05 01:26:36 +01:00
fiaxh 2e5977df96 Fire signal on subscription approval 2018-07-30 00:00:56 +02:00
fiaxh babe987dcb Don't handle error message stanzas as normal messages 2018-06-14 23:12:25 +02:00
Samuel Hand 62e5e6485e Implement XEP-0380 for the OMEMO and OpenPGP plugins (#359)
* Implement XEP-0380 in a naive fashion for both the OMEMO and OpenPGP plugins

* Move the XEP-0380 namespace to a constant

* Move the implementation for xep-0380 to its own module

* Remove un-needed lines from plugins/openpgp/src/stream_module.vala
2018-05-28 16:19:51 +02:00
fiaxh c1533f2577 Redesign chat input + move file upload there 2018-04-30 11:03:59 +02:00
fiaxh c656c7e9c2 small fixes 2018-04-17 22:13:05 +02:00
fiaxh 4ccdc1d092 Small connection fixes 2018-03-10 20:01:22 +01:00
fiaxh 81310dff2e Handle multiple chat state notifications per bare jid
fixes #117
2018-03-10 20:01:22 +01:00
fiaxh 0968da1ff7 Only notify on last MAM message, only if not read
fixes #293
2018-03-06 21:55:31 +01:00
fiaxh 5436d716c0 Use correct host name for TLS when using xmpps 2018-02-11 10:57:43 -06:00
fiaxh ef40b61734 Small fixes 2018-01-30 17:29:54 +01:00
fiaxh 78de584ad0 Make slack workarounds use in-pipeline 2018-01-28 22:27:50 +01:00
fiaxh 57c72d2818 Pipeline for incoming messages in libdino 2018-01-28 13:37:53 +01:00
Marvin W 03a349bfaf Small fixes to MucManager 2018-01-28 00:38:47 +01:00
Marvin W 782ae4c049 Move Jid class to xmpp-vala, partially refactor namespace 2018-01-28 00:38:47 +01:00
linkmauve 0ce28c0b0d Fix typos in comments and variable names (#269)
Thanks `codespell`!
2018-01-10 15:12:54 +01:00
David Plassmann 5d6cf9d8d5 Add support for setting a new Affiliation in a muc (#266)
* Added support for setting a new Affiliation in a muc

* small changes

* fix parameter order
2018-01-09 01:06:32 +01:00
fiaxh 2e041e2984 Tab completion: Case insensitive, handle spaces 2018-01-06 14:02:32 +01:00
fiaxh a8cc94c188 Show error on invalid TLS certificate 2018-01-04 21:17:56 +01:00
fiaxh b4bb0912fc Show subscription request in conversation summary 2017-12-30 13:10:06 +01:00
fiaxh f25fadde2d Fallback display for all file types 2017-12-13 21:11:33 +01:00
fiaxh f3ca14f2d6 ConversationView: Date separator 2017-12-01 02:28:51 +01:00
fiaxh 9165c4db27 Async service lookup, connect and write 2017-11-23 01:28:29 +01:00
fiaxh de133218da Disconnect stanza listeners from pipeline 2017-11-22 00:40:41 +01:00
fiaxh 2a514d0969 Fix unit tests using async + read message marker 2017-11-17 17:24:03 +01:00
fiaxh 3f531d6b91 Read+(write) stream async 2017-11-16 17:43:00 +01:00
fiaxh 81e05e6645 small fixes 2017-11-01 18:53:38 +01:00
fiaxh 0102abeec1 Fix warnings 2017-10-31 15:41:45 +01:00
fiaxh d9b91206c0 Keep MUC join dialog open until joined, show errors 2017-10-31 15:41:45 +01:00
fiaxh 7e83529afc Blocking setting in Contact Details 2017-10-31 15:40:42 +01:00
Emmanuel Gil Peyrot a8d06e634b xmpp-vala: Add support for XEP-0191: Blocking Command 2017-10-31 15:40:42 +01:00
linkmauve 1e1aa704a2 Remove new from struct initialisation, as it is deprecated (#180)
* Remove new from struct initialisation, as it is deprecated.

* Use Map.has_key instead of Map.contains, as it is deprecated.
2017-10-23 16:10:15 +02:00
fiaxh 749edd21b9 Add oob tag to http-upload messages
fixes #166
2017-10-22 18:26:31 +02:00
fiaxh 9d8e1e88ec http-files: max-file-size handling 2017-09-26 17:01:06 +02:00
fiaxh 1f0df86445 fixup 8944029 (PGP support for MUCs) 2017-09-06 00:38:59 +02:00
fiaxh a257b16337 Download & inline display images 2017-08-31 18:54:38 +02:00
Marvin W 82a8f5c38d
xmpp-vala: use encoded value when formatting stanza attributes
fixes #140
2017-08-29 22:07:38 +02:00
fiaxh 8bc0d107e7 Plugins providing conversation items for ConversationView 2017-08-28 00:02:59 +02:00
Marvin W 9840774a87
omemo: store and display identity keys of all devices 2017-08-27 14:52:18 +02:00
fiaxh 621e1e98cb xmpp-vala: Improve time parsing 2017-08-22 16:23:15 +02:00
fiaxh a8aceb1e39 README: Discussion MUC, change url 2017-08-22 16:04:41 +02:00
Marvin W a24e88f48b
Fix some UI issues 2017-08-22 00:24:39 +02:00
fiaxh 299f52df3a xmpp-vala: Connection fallback without SRV records 2017-08-19 00:29:08 +02:00
Marvin W f78818abbe
xmpp-vala: catch TLS errors during read() 2017-08-17 19:49:33 +02:00
fiaxh bff6885a6b fixup 4aee957 (request history since last known messages) 2017-08-17 01:37:15 +02:00