Commit graph

553 commits

Author SHA1 Message Date
mjk c40775b7da comment out unused arguments [-Wunused-parameter] 2021-06-09 07:20:13 -03:00
mjk 934b492357 init Callback completely always
The `token` pointer was left dangerously uninitialized after construction.
2021-06-09 07:20:12 -03:00
mjk 0258980977 replace lists with vectors 2021-06-09 07:20:12 -03:00
mjk 8034a6f344 remove the no-longer-needed -municode compile option 2021-06-09 07:20:10 -03:00
mjk c89671af04 log SetCurrentProcessExplicitAppUserModelID errors 2021-06-09 07:20:10 -03:00
mjk 822b91f40c stop checking for empty AUMIDs
The downstream code handles them just fine.
2021-06-09 07:20:09 -03:00
mjk 332216e63c reflow/respace 2021-06-09 07:20:09 -03:00
mjk 7b6f3ea9f6 replace C-style concurrent initialization of statics
C++ statics are thread-safe as is and are usually implemented more
efficiently. Besides, `volatile` is likely misused here anyway.
2021-06-09 07:20:04 -03:00
mjk 8988b77d57 don't use FALSE as a null pointer constant 2021-06-09 07:20:03 -03:00
mjk 987eb672d5 fix / work around uninitialized fields warnings 2021-06-09 07:20:03 -03:00
mjk 1698d15f7d silence enum stringification warnings by first casting to underlying types 2021-06-09 07:20:02 -03:00
mjk 17c1172d84 work around a (pedantic) format specifier warning 2021-06-09 07:20:02 -03:00
mjk 8f8dfa2e70 move module loading functions out of shortcutcreator.cpp 2021-06-09 07:20:02 -03:00
mjk e8d84d2eda handle empty menu-relative shortcut paths 2021-06-09 07:20:01 -03:00
mjk f1bcb6604f rewrite InitApartment and protect callers from (the rest of the) exceptions
Initializing COM by calling `winrt::init_apartment()` would always cause
stack unwinding *in practice*, which is suboptimal at best, and even using
`apartment_type::single_threaded` still would require exception filtering
*just in case*.
2021-06-09 07:20:01 -03:00
mjk c855d5e7cb protect GetTemplateContent callers from exceptions 2021-06-09 07:20:00 -03:00
mjk ed7c23c8d2 generalize glib::try_invoke to any return-by-value type and void 2021-06-09 07:19:59 -03:00
mjk b1cb64d716 add nullary version of g_try_invoke macro 2021-06-09 07:19:58 -03:00
mjk da424fb73b fiddle with punctuation 2021-06-09 07:19:58 -03:00
mjk 39b51b2d4c make glib::impl::varstring less explosive 2021-06-09 07:19:57 -03:00
mjk 7cb6b3f4b3 fix UB in glib::describe_arguments called with no arguments
Makes failure logging of nullary invokables non-crashy.
2021-06-09 07:19:56 -03:00
mjk 15abe70fc6 handle theoretical future failures of wsview_to_char 2021-06-09 07:19:56 -03:00
mjk ab6ce05aec handle empty hresult_error message specially 2021-06-09 07:19:55 -03:00
mjk c44b1daaf7 make meta-error messages more precise 2021-06-09 07:19:54 -03:00
mjk 5e50d1d2d7 remove an unused include 2021-06-09 07:19:53 -03:00
mjk d3214188d5 use lower-case 0x prefix for hresult code formatting everywhere 2021-06-09 07:19:51 -03:00
mjk 229ff697c4 move some whitespace around 2021-06-09 07:19:50 -03:00
mjk c3624f8490 handle exe paths longer than 259 chars 2021-06-09 07:19:48 -03:00
mjk 597061aed1 work around GetEnvironmentVariable not resetting last error 2021-06-09 07:19:48 -03:00
mjk fd035084de unimplement accidentally implemented wide string overloads of describe_argument 2021-06-09 07:19:47 -03:00
LAGonauta 426f997f9b Fix notifications not hiding 2021-06-09 07:19:47 -03:00
LAGonauta c60e0a828f Add README.md to Windows notification plugin 2021-06-09 07:19:46 -03:00
LAGonauta cc0e206c27 Removed unused library on linker
It is loaded dynamically
2021-06-09 07:19:45 -03:00
LAGonauta 60791cb3f0 Add ginvoke to CMakeLists 2021-06-09 07:19:45 -03:00
mjk f9a3b28624 switch to runtime loading of PropVariantToStringAlloc
Now it really should work.
2021-06-09 07:19:44 -03:00
mjk cb3c6874bc add restoration of shortcut's target path 2021-06-09 07:19:44 -03:00
mjk eeda464ca9 rewrite shortcut management code with RAII, error logging and exceptions
It actually works now.
2021-06-09 07:19:43 -03:00
mjk f193948f4e constify all the things 2021-06-09 07:19:43 -03:00
mjk 401c4a1bb1 change some local functions' signatures 2021-06-09 07:19:43 -03:00
mjk 34519e96bd make GetEnv more robust and not limit length of variables 2021-06-09 07:19:42 -03:00
mjk fb754b0d43 generalize GetShortcutPath into GetEnv 2021-06-09 07:19:42 -03:00
mjk 2eb1eea06e clarify GetCurrentModulePath's name 2021-06-09 07:19:41 -03:00
mjk 5b40d166d2 make GetCurrentModulePath and GetShortcutPath throw win32 errors 2021-06-09 07:19:41 -03:00
mjk 2ad659f777 clarify some entry points' names 2021-06-09 07:19:40 -03:00
mjk b21066c89e mark exception-safe C entry points as such 2021-06-09 07:19:40 -03:00
mjk 1bd1376cea stop exceptions from crossing ABI boundary in a few places 2021-06-09 07:19:40 -03:00
mjk f1b5633ce6 introduce try_invoke -- a logging exception catcher 2021-06-09 07:19:39 -03:00
LAGonauta 3d9dcbcf87 Valac think that getters are always owned by the struct 2021-06-09 07:19:38 -03:00
LAGonauta 8856fcbceb Use g_new0 and g_free to generate raw strings 2021-06-09 07:19:37 -03:00
LAGonauta 94944a9e2a Use async 2021-06-09 07:19:37 -03:00
LAGonauta 7de1c01fe8 Add comment to builder 2021-06-09 07:19:36 -03:00
LAGonauta 0f555da7a9 Fixed crash with multiple notifications
Sometimes an invalid function pointer was called with an invalid context
2021-06-09 07:19:35 -03:00
LAGonauta f2c689fa12 Delegate activate_action to UI thread 2021-06-09 07:19:34 -03:00
LAGonauta 839d2a5316 Initial notification provider using WinRT
Crashes when activating actions, might be related to threads.
2021-06-09 07:19:32 -03:00
LAGonauta be0e1841b8 Anitial builder 2021-06-09 07:19:32 -03:00
LAGonauta 2476b5e04b Initial experiments with notification XML building 2021-06-09 07:19:32 -03:00
LAGonauta bc9b9b95e0 Add template getter 2021-06-09 07:19:31 -03:00
LAGonauta 9d9b9e8e42 Rename plugin vala file 2021-06-09 07:19:31 -03:00
LAGonauta 0153953b5d Rename enums to better match what Vala expects 2021-06-09 07:19:30 -03:00
LAGonauta 363b200272 Add template type enum 2021-06-09 07:19:28 -03:00
LAGonauta c6a96fc025 Cleanup dismissed actions on toast notification finalizer 2021-06-09 07:19:27 -03:00
LAGonauta 898470ed23 Add failed and dimissed actions 2021-06-09 07:19:25 -03:00
LAGonauta 6cdaad315a Fields must be created in the private struct
Also change unordered_map to list, we do not need hashing and stuff.
2021-06-09 07:19:24 -03:00
LAGonauta 91d61843f2 No need to enable coroutines 2021-06-09 07:19:22 -03:00
LAGonauta c4f526329d Remove unity compilation unit 2021-06-09 07:19:21 -03:00
LAGonauta 40bf3d2fd4 Actions can stack 2021-06-09 07:19:20 -03:00
LAGonauta 7fd918f32d Fix string conversion 2021-06-09 07:19:19 -03:00
LAGonauta 1d1b00222f Add toastnotifier 2021-06-09 07:19:17 -03:00
LAGonauta 8df226ec29 Increase ref on event token 2021-06-09 07:19:15 -03:00
LAGonauta 13e0a5c0c4 Use string_view 2021-06-09 07:19:14 -03:00
LAGonauta ca0cab0e36 Initial code to allow buttons and text 2021-06-09 07:19:13 -03:00
LAGonauta ae9671716f Initial GObject wrapper for WinRT notifications
Still missing a lot of stuff
2021-06-09 07:19:11 -03:00
LAGonauta ce0deed0dc Initial callback support 2021-06-09 07:19:09 -03:00
LAGonauta 95051d304a Initial code for using winrt headers 2021-06-09 07:19:08 -03:00
LAGonauta 915dd4c738 Add MIT licensed winrt headers 2021-06-09 07:19:06 -03:00
LAGonauta 03774a3756 Fix muc invite and voide request not working 2021-06-09 07:19:05 -03:00
LAGonauta 2d63c8ae77 Rename field 2021-06-09 07:19:04 -03:00
LAGonauta 96f96ead7e Use list with all notifications 2021-06-09 07:19:04 -03:00
LAGonauta 5f2e636868 Add notification retraction 2021-06-09 07:19:03 -03:00
LAGonauta d8bb9897a4 Add support for custom actions on notification 2021-06-09 07:19:02 -03:00
LAGonauta 08f2391acc Initial plugin using new notification provider 2021-06-09 07:19:02 -03:00
LAGonauta eae628758c Use VAPI and generate template in-app 2021-06-09 07:19:01 -03:00
LAGonauta 931f09504d Added 32-bit wintoast linker library 2021-06-09 07:19:01 -03:00
LAGonauta 5702b323c9 Use dynamic linking instead of runtime loading
Also made me notice that the signature of the function with the callback was wrong. Oops.
2021-06-09 07:19:00 -03:00
LAGonauta 198bce4a84 Allow null image_path 2021-06-09 07:18:59 -03:00
LAGonauta 8553a7cd86 Add callback support 2021-06-09 07:18:59 -03:00
LAGonauta 642ed6ab1b Convert C code to Vala 2021-06-09 07:18:58 -03:00
LAGonauta d36de2b9ea Use code from Dino.Ui.Util 2021-06-09 07:18:56 -03:00
LAGonauta 49978edebf Clean up 2021-06-09 07:18:55 -03:00
LAGonauta 65a26bce53 Refactor windows-notification plugin 2021-06-09 07:18:53 -03:00
LAGonauta 1d4bb774a5 Initial notification support 2021-06-09 07:18:51 -03:00
LAGonauta 24890ca38a Export all plugin symbols on Windows 2021-06-09 07:18:44 -03:00
LAGonauta 50b2a0dc0a Do not hardcode GPG path on Windows 2021-06-09 07:18:43 -03:00
LAGonauta 823df3ed70 Add WIN32 fonts as a plugin 2021-06-09 07:18:26 -03:00
LAGonauta 281a84a14c Add support for OpenPGP on Windows 2021-06-09 07:17:20 -03:00
fiaxh ce292d03e3 Don't remove characters after '#' in filename 2021-06-07 10:00:47 -06:00
Marvin W 686035ca1e
RTP: Handle missing rtp pay/depay elements 2021-05-15 19:55:44 +02:00
Marvin W 6399892bf2
Move crypto-vala to shared library 2021-05-14 19:26:05 +02:00
Marvin W bec73ed371
RTP: Fix GStreamer version check 2021-05-14 10:17:51 +02:00
Marvin W 3bfd407843
Calls: Use vp8depay.wait-for-keyframe only with GStreamer 1.16+ 2021-05-11 22:11:44 +02:00
fiaxh d71604913d Merge remote-tracking branch 'origin/feature/calls' 2021-05-11 12:57:02 +02:00
fiaxh 90f9ecf62b Calls: Indicate whether OMEMO key is verified 2021-05-11 12:52:00 +02:00
Marvin W 8044b546d0
Support voice processing on GStreamer 0.14 2021-05-02 18:03:03 +02:00
fiaxh 0ad968df36 Use the same DTLS fingerprint in all contents. Display audio+video enc keys in UI if they differ. 2021-05-01 22:57:38 +02:00
fiaxh 7d2e647690 Improve call wording, cleanup 2021-05-01 21:51:24 +02:00
Marvin W 0409f55426
Fix webcam framerate selection 2021-05-01 17:27:55 +02:00
Marvin W d388525fc6
Correctly handle missing webrtc-audio-processing 2021-05-01 16:00:37 +02:00
Marvin W 23ffd37dde
Echo Cancellation 2021-05-01 15:48:51 +02:00
fiaxh 421f43dd8b Add support for OMEMO call encryption 2021-04-29 16:13:25 +02:00
fiaxh 5d85b6cdb0 Handle non-existant call support 2021-04-29 16:13:25 +02:00
Marvin W 3880628de4
Video optimizations 2021-04-29 15:53:59 +02:00
fiaxh 328c3cf37f Fix bad syntax in gnutls vapi, add libsrtp2 dependency to CI builds 2021-04-12 22:22:39 +02:00
Marvin W 2bee82f0b6
ICE: Require libnice 0.1.15 or newer 2021-04-12 18:05:55 +02:00
Marvin W d19a01d5f2
Handle DTLS edge-cases 2021-04-12 18:05:08 +02:00
Marvin W fe160d94ba
Handle broken VAPI in older vala 2021-04-11 16:28:59 +02:00
Translations e32b49b68f Update translations 2021-04-11 15:59:37 +02:00
Marvin W 4edab3c8d6
Fix custom vapi integration 2021-04-11 15:13:22 +02:00
Marvin W e9ff660537
Fix usage of old libnice versions 2021-04-11 15:13:22 +02:00
fiaxh dfffa08ec1 Fix warnings 2021-04-11 14:42:59 +02:00
Marvin W 6ebdec1d78
GStreamer compat 2021-04-11 12:31:03 +02:00
fiaxh 5e11986838 Fix dtls pull_timeout_function, fix cyclic references 2021-04-09 22:23:56 +02:00
Marvin W fbc10c2023 DTLS-SRTP: Wait for setup finish and handle setup=passive 2021-04-09 22:23:53 +02:00
fiaxh 8d1c6c29be Display+store call encryption info 2021-04-09 22:23:13 +02:00
fiaxh 4ce2bd8cd2 Set omemo+openpgp database properties to be the same as main db 2021-04-07 21:31:47 +02:00
fiaxh 3454201e5a Use outgoing JMI if contact has supporting device 2021-04-01 12:03:04 +02:00
Marvin W c5ab4fed87
Fix bug in legacy SRTP decryption 2021-04-01 11:51:35 +02:00
Marvin W c5cb43350a
Remove unnecessary debug code 2021-04-01 11:51:12 +02:00
Marvin W 5e58f29883
Migrate to libsrtp2 2021-03-29 13:20:12 +02:00
Marvin W 9520a81b81
Don't reuse PTs for different media types 2021-03-29 13:14:37 +02:00
Marvin W fd21eafe26
Fix cyclic reference in DTLS 2021-03-29 13:14:10 +02:00
Marvin W fc3263d49e
Fix device manager usage for GStreamer 1.16 2021-03-26 15:18:04 +01:00
fiaxh ec35f95e13 Add initial support for DTLS-SRTP 2021-03-25 14:45:54 +01:00
Marvin W 4b230808b9
Move SRTP implementation into crypto library for reuse 2021-03-23 20:04:28 +01:00
Marvin W 97ab7de7ab
Mark ICE component as ready even without the event 2021-03-23 15:11:00 +01:00
Marvin W b01f6f9ef7
Resample audio data for common 48k sample rate 2021-03-23 15:11:00 +01:00
Marvin W c8a37c0246
Make foundation a string 2021-03-23 15:11:00 +01:00
Marvin W b393d41601
Add support for SRTP 2021-03-23 15:11:00 +01:00
Marvin W cde1e38f5d
RTP: Backport gst_caps_copy_nth from GStreamer 1.16 2021-03-21 15:43:54 +01:00
Marvin W ef2e3c774c Add RTP implementation as plugin 2021-03-21 12:41:38 +01:00
Marvin W d703b7c09d Add libnice-based ICE-UDP implementation as plugin 2021-03-21 12:41:27 +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
Marvin W 64237a83a4
CMake: Make STATIC explict where needed 2021-03-06 10:25:56 -06:00
Translations ea678bb8d8 Update translations 2021-03-04 09:38:26 -06:00
fiaxh ad031ee333 Remove unnecessary Soup dependency from OMEMO plugin
fixes #983
2021-01-28 14:02:24 +01:00
Translations fc18e781a5 Update translations + DOAP 2021-01-11 20:37:24 +01:00
fiaxh cc01374d3c Use advertized/server/live time for sorting instead of arrival time
fixes #310
2020-12-04 19:11:27 +01:00
fiaxh f31e96d6bb Improve contact description in OMEMO warnings
fixes #947
2020-12-04 17:16:09 +01:00
fiaxh 881b9eec9d Improve entity identity getter 2020-11-20 15:21:18 +01:00
fiaxh d0488401ce Use WeakMap for message caching 2020-11-14 17:05:46 +01:00
Translations 7726c0b75b Update translations 2020-11-12 18:28:56 +01:00
Translations b2c7e9dfff Make some strings translatable, update translations 2020-11-10 14:04:57 +01:00
Translations 6218b759bf Update translations 2020-11-04 18:12:01 +01:00
Kim Alvefur 0b145c69e9
Swedish translations (#936)
* Swedish translations

* Translate OMEMO strings to Swedish
2020-11-04 13:26:34 +01:00
fiaxh 2e0357877c Fix some compiler warnings 2020-10-27 16:05:30 +01:00
Translations d42918b0ab Update translations 2020-10-07 20:52:53 +02:00
Marvin W 1956f63179
Set key size for omemo http file transfers to 256 bits
Fixes #909
2020-09-15 20:32:09 +02:00
Marvin W cd5b639a82
Send OMEMO-encrypted messages and files using 12 byte IV 2020-09-14 22:04:06 +02:00
Translations 1534aa3a5e Update translations 2020-09-10 20:18:18 +02:00
fiaxh 3563232df0 OMEMO: Don't trigger "Not encrypted to this device" warning for messages w/o payload 2020-09-10 19:35:05 +02:00
fiaxh 49bcbdaa51 Fix initial file encryption displaying
fixes #831
2020-09-07 15:14:29 +02:00
Translations ff9a9a0d66 Update translations 2020-08-01 23:02:44 +02:00
fiaxh e159fd2492 Only query entity caps when we need them 2020-07-16 23:31:19 +02:00
Marvin W af98b8ea0f
Fix rare 1 byte buffer over-read 2020-06-28 11:53:43 +02:00
fiaxh 886a519d85 Don't offer encryption in MUC PMs 2020-06-23 15:54:12 +02:00
fiaxh 0beb592c5a Use sqlite UPSERT 2020-06-10 23:40:00 +02:00
fiaxh b72ea08d03 Show unencryptable/untrusted OMEMO warnings also in MUCs
fixes #857
2020-06-05 01:28:42 +02:00
Translations 82ce2426c1 Update translations 2020-05-17 20:07:48 +02:00
Translations c6cf90a923 Update translations 2020-05-16 19:14:54 +02:00
fiaxh 51a2372869 Add file upload preview
fixes #756
2020-04-22 15:44:12 +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
Marvin W fbd70ceaac
Bump libsignal-protocol-c version to 2.3.3 2020-04-13 19:56:45 +02:00
Translations 5b9199e7d4 Update translations 2020-04-12 22:35:42 +02:00
Translations d3e58291e7 Update translations 2020-04-11 00:28:51 +02:00
fiaxh 5b2683dfa5 Last message correction fixes 2020-04-06 15:33:43 +02:00
fiaxh 871ff33ac7 Add support for last message correction 2020-04-03 22:49:59 +02:00
fiaxh 1016529c36 Visually mark OMEMO messages from a trusted device as trusted 2020-03-29 20:24:39 +02:00
fiaxh c029da49bc Warn about undecrypted and untrusted messages 2020-03-29 20:24:38 +02:00
mbeko 5a98d2919b Change UI messages for more clarity 2020-03-24 22:19:38 +01:00
Alexander Krotov b9125b7e3e Enable secure_delete PRAGMA on SQLite databases (#370)
It is especially important for OMEMO database, as it stores *ephemeral* keys
2020-02-21 20:49:36 +01:00
Translations 29bcba2580 Update translations 2020-02-16 16:56:12 +01:00
fiaxh 7d699a2ed2 Rename zh_Hans -> zh_CN and zh_Hant -> zh_TW
fixes #524
2020-01-29 00:38:12 +01:00
Translations 74dc1c1739 Update translations 2020-01-29 00:38:07 +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 55b148a0f7
Use system provided libsignal-protocol-c by default
You can still compile in tree by using --with-libsignal-in-tree flag
2020-01-21 21:55:08 +01:00
Marvin W 41f9827166
Improve log messages for OMEMO sending issues 2020-01-15 23:45:00 +01:00
Marvin W 3cfe0d60f6
Initialize GCrypt on libsignal setup 2020-01-15 19:31:47 +01:00
Marvin W b2af8c5112
Fix various typing issues in signal bindings 2020-01-09 13:39:36 +01:00
Marvin W 8cca049e5c
Fix file receival in groupchat pmsx 2020-01-09 13:21:54 +01:00
Marvin W 4a3cef89fd
Don't allow newlines in URLs, also clean up on http file transfer detection 2019-12-26 15:46:58 +01:00
Translations 2d8a1374ad Update translations 2019-12-24 23:31:17 +01:00
Marvin W a0a956ee08
Properly check Jids everywhere 2019-12-23 16:58:53 +01:00
Marvin W 6257e9705c
OMEMO: Improve handling of newly added devices 2019-12-23 16:49:56 +01:00
Translations 013786a120 Update translations 2019-12-19 15:26:54 +01:00
fiaxh c3532bdf31 Refactor MAM catchup. Fetch from latest to earliest message. 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
Translations 11c18cdf72 Update translations 2019-12-16 21:23:18 +01:00
fiaxh 21c01dcdcb Omemo contact details dialog: Only show inactive keys Expander if there are any 2019-12-13 20:55:39 +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
Translations 65feaece87 Update translations 2019-11-14 01:56:13 +01:00
Wiktor Kwapisiewicz 0acbe4855d Fix reporting failed HTTP upload
Status code can't be less than 200 and greater than or equal 300 at the same
time. Using || instead of && marks all uploads that do not have 2xx status code
as "failed".
2019-11-04 15:15:28 +01:00