Commit graph

154 commits

Author SHA1 Message Date
Daniel Gultsch 87f99d3570 Transferables interface needs to differentiate between 0 and null file size 2021-05-17 15:51:21 +02:00
Daniel Gultsch b025265f91 execute status code check on HEAD 2021-05-16 16:17:06 +02:00
Daniel Gultsch 0f3181555a FileParams indicate unavailable file size as null
since 0 is a valid file size we should use null to indicate absence
2021-05-16 15:32:57 +02:00
Daniel Gultsch 9d9514a091 Add User-Agent to all HTTP calls 2021-04-30 10:54:36 +02:00
Daniel Gultsch bc58fb0fbd Always verify hostname/domain
There might be corner cases where it is required to use self signed
certificates. However there should be no corner cases where it is
required to use a wrong domain name. This commit swaps out the
MemorizingHostnameVerifier that let users accept wrong domains with the
standard XmppDomainVerifier.

closes #4066
2021-04-30 09:55:22 +02:00
Daniel Gultsch 2760f07307 disable read timeout for HTTP Upload
fixes #4057
2021-04-18 15:46:47 +02:00
Daniel Gultsch 202bde46ed properly error out if upload fails. fixes #4052 2021-04-09 15:49:33 +02:00
Daniel Gultsch 914ea9c398 use http proxy below android 7.1 2021-03-22 18:03:25 +01:00
Daniel Gultsch ce7f59a76c use okhttp to fetch captcha 2021-03-22 10:39:53 +01:00
Daniel Gultsch 739d20428a optimize imports 2021-03-21 21:39:04 +01:00
Daniel Gultsch a6244d986a use settable futures for slot requester 2021-03-21 20:45:26 +01:00
Daniel Gultsch 72828c6c4e fix 'checking file size' status display 2021-03-20 11:21:48 +01:00
Daniel Gultsch 38ef69a926 do not display toast for cancelled downloads 2021-03-20 11:00:20 +01:00
Daniel Gultsch aaac8296b3 only overwrite body in text messages 2021-03-19 19:51:13 +01:00
Daniel Gultsch e217551a82 migrate to OkHttp instead of HttpUrlConnection
OkHttp gives us more fine grained control over the HTTP library and frees us from any platform bugs
2021-03-19 14:57:20 +01:00
Daniel Gultsch 24f2f52512 limit http upload / download to 4 parallel connections 2021-02-22 09:24:41 +01:00
Daniel Gultsch 0812bae1ab do not run alpha check on jpegs 2021-02-20 10:08:43 +01:00
Daniel Gultsch 8ce7bfb95e automated code clean up 2021-01-23 09:25:34 +01:00
Ferdinand Pöll 453ca7c0ed Migrate from Android Support Library to AndroidX
Unignored gradle.properties since androidX requires additions there
See also https://developer.android.com/jetpack/androidx/migrate
2021-01-18 20:49:35 +01:00
Daniel Gultsch 303e205276 if file extension doesn’t exist. try to guess from content type. fixes #3939 2020-12-06 19:22:36 +01:00
Daniel Gultsch a0920b83e2 use Account.getDomain() for direct access to domain jid 2020-05-17 10:24:46 +02:00
Daniel Gultsch b6703dbe38 switch xmpp-addr to jxmpp-jid 2020-05-15 17:06:16 +02:00
Daniel Gultsch 00191e2b60 explicitly use BouncyCastle for file crypto 2020-03-09 19:12:30 +01:00
Daniel Gultsch 257de4b51e fixed typo 2020-03-09 15:06:21 +01:00
Daniel Gultsch aecb771ab5 use 16 byte IVs for http upload files larger than 768KiB
Ever since Android 9+ switched to Conscrypt we can no longer efficiently
encrypt (and decrypt) large files with AES-GCM. We did’t notice this before
because when using 16 byte IVs even modern Androids will fall back to bouncy
castle. However the 'bug'/'feature' in Conscrypt surfaced when we switched over
to 12 byte IVs (which uses Conscrypt on Android 9+)
Switching back entirely to 16 byte IVs is undesirable as this would break
compatibility with Monal. So we end up with a weird compromise where we use
12 byte for normale plain text OMEMO messages and 'small' files where the
inefficiencies aren’t a problem.

The result of this commit is that Monal won’t be able to receive our files
larger than 768KiB. However the alternative is that Conversations would always
OOM when attempting to send larger files (where large depends on the available
RAM.)

fixes #3653
2020-03-08 13:13:19 +01:00
Daniel Gultsch 66da5ffb6c fixed download of previously deleted omemo files 2020-01-20 10:43:17 +01:00
Daniel Gultsch c62d5ebcb3 added failure logging to http download 2020-01-19 11:36:26 +01:00
Daniel Gultsch c502503994 pass omemo decrypt up to higher layers to count as download error. decrypt all encrypted files 2020-01-19 10:01:43 +01:00
Daniel Gultsch 724f30bcc5 fixed adding omemo encrypted images to gallery 2020-01-15 14:19:17 +01:00
Daniel Gultsch 80e83f77a7 pulled translations from transifex 2020-01-08 19:05:12 +01:00
Daniel Gultsch af3c106dc8 reset file to normal message when attempting re-download after delete
fixes: #3604
2019-12-30 00:14:55 +01:00
Daniel Gultsch ed4a73e1c7 persist file size across aborts
fixes #3601
2019-12-26 19:01:01 +01:00
Daniel Gultsch 9bcef7a8e7 display '#' in generated channel avatars 2019-12-22 19:30:58 +01:00
Marc Schink 5117956648 Add missing space in debug output 2019-12-21 13:16:22 +01:00
Marc Schink 92cf221a2b Implement download resumption for OMEMO encrypted files 2019-12-21 13:16:18 +01:00
Daniel Gultsch 07786d4576 optionally search local muc rooms instead of jabber.network 2019-11-02 09:43:37 +01:00
Daniel Gultsch af74c3604c fixed R8 weirdness 2019-09-18 11:04:36 +02:00
Daniel Gultsch d3ccba445a increased reconnection interval after policy violation 2019-08-16 15:00:26 +02:00
Daniel Gultsch 0770914edf refactored filename and extension parsing 2019-08-16 14:09:42 +02:00
Daniel Gultsch 953307ca30 use socks instead of http proxy for http upload
http proxy doesn’t seem to work with onion v3
2019-06-16 15:06:34 +02:00
Daniel Gultsch 82dcae59e3 added language tag in channel search results 2019-05-02 20:09:43 +02:00
Daniel Gultsch b2ea91909b introduced type private_file_message to handle attachments in PMs. fixes #3372 2019-04-27 11:46:43 +02:00
Daniel Gultsch ff84ee6964 cache channel search results 2019-04-24 13:25:54 +02:00
Daniel Gultsch 2fa687b8ae refactor muc search to use http 2019-04-22 13:00:45 +02:00
Daniel Gultsch b30fb46c85 make sure that http upload/download is not startetd multiple times 2019-01-28 10:39:01 +01:00
Daniel Gultsch 8ab4ca7138 fixed downloading of deleted files 2019-01-10 21:23:53 +01:00
Daniel Gultsch 52afcac230 mark deleted files in database and not query them when querying for media 2019-01-10 14:52:27 +01:00
Daniel Gultsch 96e3546904 put images into MessageStyle notifications 2019-01-09 12:47:09 +01:00
Daniel Gultsch 52ecd9347c added dialogs for rate limiting and out of date version 2018-10-31 13:33:55 +01:00
Daniel Gultsch 4f12cf06ed revert back to 16 byte IVs for omemo since ChatSecure doesn’t support 12 byte 2018-10-17 20:46:57 +02:00