Daniel Gultsch
f6724e405e
allow jingle state transition for fallback after proxy failure
2019-11-09 09:31:35 +01:00
Daniel Gultsch
8e42d0d39c
make jingle state transitions less error prone
2019-11-08 22:27:14 +01:00
Daniel Gultsch
4df8343b05
set autojoin=true after following invite
2019-10-07 09:51:03 +02:00
Daniel Gultsch
f530e395ca
bookmarks2. introduce #compat namespace
2019-10-07 09:37:12 +02:00
Daniel Gultsch
f26e0720c6
support for purge and delete
2019-10-07 09:37:12 +02:00
Daniel Gultsch
f1aa5f2cab
support for delete bookmarks2
2019-10-07 09:37:12 +02:00
Daniel Gultsch
6923b2898c
WIP Bookmarks 2 support
2019-10-07 09:37:12 +02:00
Daniel Gultsch
6155938623
show reason in error message
2019-10-05 22:14:38 +02:00
Daniel Gultsch
d6835101b9
fixes for previous commit
2019-10-05 21:58:21 +02:00
Daniel Gultsch
7ce7a505a0
mark cancelled jingle ft as such on both sides
...
fixes #3554
2019-10-05 21:30:15 +02:00
Daniel Gultsch
6776603b90
fully read port in socks connection
...
incoming direct connections in receive mode wouldn’t clear the entire
destination from the input stream; thus adding a leading 0x00 to the file
fixes #3557
2019-10-03 20:47:31 +02:00
Daniel Gultsch
3d332f6f35
set shorter timeouts when using direct candidates
2019-10-03 09:37:01 +02:00
Daniel Gultsch
f8bd4284a5
report not-acceptable on jingle errors
2019-10-01 11:31:15 +02:00
Daniel Gultsch
d2d9bbe3da
improved jingle debugging
2019-09-29 13:32:45 +02:00
Daniel Gultsch
ed46d12115
close correct socket after faulty jingle socks connection
2019-09-20 10:00:57 +02:00
Daniel Gultsch
9bf5fb98ac
show language in message bubble if multiple language variants were received
...
XML and by inheritence XMPP has the feature of transmitting multiple language
variants for the same content. This can be really useful if, for example, you
are talking to an automated system. A chat bot could greet you in your own
language.
On the wire this will usually look like this:
```xml
<message to="you">
<body>Good morning</body>
<body xml:lang="de">Guten Morgen</body>
</message>
```
However receiving such a message in a group chat can be very confusing and
potentially dangerous if the sender puts conflicting information in there and
different people get shown different strings.
Disabeling support for localization entirely isn’t an ideal solution as on
principle it is still a good feature; and other clients might still show a
localization even if Conversations would always show the default language.
So instead Conversations now shows the displayed language in a corner of the
message bubble if more than one translation has been received.
If multiple languages are received Conversations will attempt to find one in
the language the operating system is set to. If no such translation can be
found it will attempt to display the English string.
If English can not be found either (for example a message that only has ru and
fr on a phone that is set to de) it will display what ever language came first.
Furthermore Conversations will discard (not show at all) messages with with
multiple bodies of the same language. (This is considered an invalid message)
The lanuage tag will not be shown if Conversations received a single body in
a language not understood by the user. (For example operating system set to
'de' and message received with one body in 'ru' will just display that body as
usual.)
As a guide line to the user: If you are reading a message where it is important
that this message is not interpreted differently by different people (like a
vote (+1 / -1) in a chat room) make sure it has *no* language tag.
2019-09-12 10:12:51 +02:00
Daniel Gultsch
dd9777a6b7
do not include scope in ipv6 annoucment
2019-09-08 17:44:26 +02:00
Daniel Gultsch
9129c9acde
JET uses plain text file size
2019-09-06 13:11:37 +02:00
Daniel Gultsch
0e1c26c569
do not include link local in direct candidates
2019-09-05 13:17:45 +02:00
Daniel Gultsch
571c29f92a
make Tor connections work with direct TLS
2019-09-05 12:08:58 +02:00
Daniel Gultsch
7ec1b443ab
implemented support for for jingle encrypted transports (XEP-0396)
2019-09-04 16:14:01 +02:00
Daniel Gultsch
ff4d127b6f
use higher priority for proxy on receiving end
2019-09-02 08:51:50 +02:00
Daniel Gultsch
90e669313e
send fallback to ibb after proxy activation failed
2019-09-01 21:41:28 +02:00
Daniel Gultsch
10b1365264
also reply with direct connections on response
2019-09-01 20:42:07 +02:00
Daniel Gultsch
1c413edf06
bare minimum direct connections
2019-09-01 15:06:59 +02:00
Daniel Gultsch
783ed53d3a
order canditates by priority before attempting to connect
2019-09-01 11:34:36 +02:00
Daniel Gultsch
219ae65ef7
more ibb fixes (include sid in transport-accept)
2019-08-22 14:47:30 +02:00
Daniel Gultsch
98eb49904c
fixed unlikely race between enabling carbons and discovering last MAM id
2019-08-22 09:57:39 +02:00
Daniel Gultsch
daf7e6224f
fixed pgp decryption of automatically accepted jingle ft
2019-08-16 15:29:58 +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
c039ffcf35
clean up logging
2019-08-14 18:44:57 +02:00
Daniel Gultsch
ed95dd64ad
create empty disco result on error to fire advance stream features event
2019-08-13 21:18:32 +02:00
Daniel Gultsch
8ac042418b
fixes #3514
2019-08-11 16:54:00 +02:00
Daniel Gultsch
98c4e9056f
use helper method to close socket
2019-07-04 10:12:08 +02:00
Daniel Gultsch
e467fe341e
implement client support for muc push
...
Staying connected to a MUC room hosted on a remote server can be challenging.
If a server reboots it will usually send a shut down notification to all
participants. However even if a client knows that a server was shut down it
doesn’t know when it comes up again. In some corner cases that shut down
notification might not even be delivered successfully leaving the client in a
state where it thinks it is connected but it really isn’t.
The possible work around implemented in this commit is to register the clients
full JID (user@domain.tld/Conversations.r4nd) as an App Server according to
XEP-0357 with the room. (Conversations checks for the push:0 namespace on the
room.)
After cycling through a reboot the first message send to a room will trigger
pubsub notifications to each registered full JID. This event will be used to
trigger a XEP-0410 ping and if necessary a subsequent rejoin of the MUC.
If the resource has become unavailable during down time of the MUC server the
user’s server will respond with an IQ error which in turn leads to the MUC
server disabling that push target.
Leaving a MUC will send a `disable` command. If sending that disable command
failed for some reason (network outage) and the client receives a pubsub
notification for a room it is no longer joined in it will respond with an
item-not-found IQ error which also disables subsequent pushes from the server.
Note: We 0410-ping before a join to avoid unnecessary full joins which can be
quite costly. Further client side optimazations will also surpress pings when
a ping is already in flight to further save traffic.
2019-06-24 18:16:06 +02:00
Daniel Gultsch
6862b60c3f
self ping (xep-0410) after receiving invite to muc
2019-06-18 13:20:24 +02:00
Daniel Gultsch
782d889cc5
disallow subsequent session-accept
2019-06-17 09:51:49 +02:00
Daniel Gultsch
9fc1ead74f
use ibb if other party doesn’t annouce s5b feature
2019-06-16 22:57:10 +02:00
Daniel Gultsch
fe6c981ae2
accept direct ibb jingle offers
2019-06-16 21:23:18 +02:00
Daniel Gultsch
c965049605
handle invalid canditates in jingle
2019-05-22 17:30:51 +02:00
Daniel Gultsch
61604dedea
jingle: send canditate error before fallback
2019-04-30 11:23:15 +02:00
af8a524db1
137d48810d
Make use of Namespace.REGISTER constant ( #3446 )
2019-04-29 07:51:46 +00:00
Daniel Gultsch
bebce313b2
print available stream features / mechanisms on incompat server
2019-02-09 20:21:29 +01:00
Daniel Gultsch
18807305c1
do not require starttls when connecting over to .onion domain
2019-01-25 08:48:46 +01:00
Daniel Gultsch
83c3258dd7
properly jump out of connection loop on state changing errors
2019-01-19 11:47:21 +01:00
Daniel Gultsch
a53774bc6d
resend presence to muc avatar update. fixes #3175
2019-01-17 17:55:47 +01:00
Daniel Gultsch
e9bf2b464c
explicitly set type=images for all media with an image mime type
...
this is in preperation to be able to query the database for all images
2019-01-12 09:01:35 +01:00
Daniel Gultsch
96e3546904
put images into MessageStyle notifications
2019-01-09 12:47:09 +01:00
Daniel Gultsch
6b75c819d8
log number of unhandled iq callbacks after resume
2018-12-22 13:00:40 +01:00
Daniel Gultsch
9659f46136
log policy violation stream error message to logcat
2018-12-18 11:02:25 +01:00
Daniel Gultsch
7219f42ad2
check mam preference for mam:2 namespace and purge offline only if set
2018-12-05 19:11:40 +01:00
Daniel Gultsch
1de385dcb9
set access model to open when publishing avatar. fixes #3291
2018-11-25 20:58:48 +01:00
Daniel Gultsch
5f8184fe8e
only store non hardcoded resolver result in db
2018-10-16 12:23:27 +02:00
Daniel Gultsch
57fe153ef1
make 'cancelled' work for jingle ft
2018-10-08 10:31:41 +02:00
Daniel Gultsch
390175e5b3
use short read timeout when waiting for first stream open. disable read timeout aftwards
2018-10-04 11:20:02 +02:00
Daniel Gultsch
f608fb349a
refactored file encryption to give access to inner stream
...
Conscrypt on some plattforms doesn’t like when we close the CipherInputStream. Therefor we refactor the api to give us access to the inner stream so we can close that independently.
2018-10-03 18:14:45 +02:00
Daniel Gultsch
9ca636589c
remove more legacy otr decryption code
2018-10-03 12:50:54 +02:00
Daniel Gultsch
db2107c093
clean up connection code. unify domain = ip and extended connection settings into fake resolver
2018-10-01 17:07:37 +02:00
Daniel Gultsch
8270adf703
use sni and alpn for start tls as well. apperently google requires it
2018-10-01 11:34:27 +02:00
Daniel Gultsch
1cbb60d7ed
removed unused code (otr jingle encrypted file transfer)
2018-09-30 13:48:11 +02:00
Daniel Gultsch
9816261569
introduced error code for server not opening stream after auth or starttls
2018-09-27 17:39:49 +02:00
Daniel Gultsch
d737ea296e
code cleanup
2018-09-27 09:59:05 +02:00
Daniel Gultsch
681ce91ab8
do not run through connection loop after thread was interrupted and resolver returned 0 results
2018-09-26 14:39:04 +02:00
Daniel Gultsch
2d206122a5
use conscrypt api to set sni and alpn
2018-09-23 11:20:23 +02:00
Daniel Gultsch
b759cf902d
fixed regression that didn’t enable SNI
2018-09-22 13:32:46 +02:00
Daniel Gultsch
6637d7056e
use conscrypt as security provider to provide tls 1.3 and modern cyphers on old androids
2018-09-21 16:33:07 +02:00
Daniel Gultsch
be4c6bc2ca
speed up DNS
...
run queries in parallel
decrease timeout
do not fall back to google
2018-09-08 11:30:20 +02:00
Daniel Gultsch
6d6bbc0a5d
removed synchronized in favor of another interrupted check in startXmpp()
2018-09-01 10:07:40 +02:00
Daniel Gultsch
658caec342
use volatile for thread object in xmppconnection
2018-08-28 17:51:18 +02:00
Daniel Gultsch
25aa6bed1e
upgrade babbler version
2018-08-18 18:13:18 +02:00
Daniel Gultsch
dc5e7e5d95
store bookmarks in pep if conversion xep is running
2018-08-18 16:27:50 +02:00
Daniel Gultsch
2cc601ee36
do not call listeners while being synchronized on stanza queue
2018-07-16 20:42:17 +02:00
Daniel Gultsch
48e366e410
support mam:1
2018-07-07 11:20:39 +02:00
ChaosKid42
42b1e56cd9
improve identification of muc service ( #3094 )
2018-06-24 15:42:54 +02:00
Daniel Gultsch
b9bdb3df55
use Tor on http upload is account uses onion domain. fixes #3075
2018-06-16 18:31:55 +02:00
Daniel Gultsch
4019593181
report unparsable limit as http upload available
2018-06-05 16:18:18 +02:00
Daniel Gultsch
1854e37e7a
reintroduce support for old http upload
2018-05-26 21:43:50 +02:00
Daniel Gultsch
70d95c7903
upload files using p1s3 - sending part
2018-05-25 12:24:23 +02:00
Daniel Gultsch
5b41906328
do not include body in simple status updates to not trigger fts update
2018-05-10 10:47:28 +02:00
Daniel Gultsch
e84a65bc86
do not load conversations with null jid
2018-05-09 11:09:01 +02:00
Daniel Gultsch
d0c88e6293
check if jid was valid before parsing muc status or event msgs
2018-04-29 09:33:20 +02:00
Daniel Gultsch
effeb7b585
convert empty resources in messages to bare jid
2018-04-28 21:30:30 +02:00
Daniel Gultsch
6dbaece149
Merge tag '2.1.3'
2018-04-28 16:33:32 +02:00
Daniel Gultsch
322463bab7
return InvalidJid object instead of null if Jid can not be parsed
2018-04-28 16:26:40 +02:00
Daniel Gultsch
35020702fb
very much unoptimized search functionality
2018-04-26 13:22:31 +02:00
Daniel Gultsch
2a9413e64d
fixed caps hash generation for empty form values
2018-04-22 11:07:00 +02:00
Daniel Gultsch
4a706aad03
catch dead object exceptions when acquiring wake locks
2018-04-15 18:31:58 +02:00
Daniel Gultsch
f0cfbb4681
fixed muc detection for rare cases where muc is hosted on primary domain
2018-03-31 22:01:17 +02:00
Daniel Gultsch
bd3799fe02
messages coming from known muc server are treated as muc when creating conversation
2018-03-22 12:43:08 +01:00
Daniel Gultsch
5514958e93
presist http upload availibility
2018-03-18 10:30:15 +01:00
Daniel Gultsch
1bfc0b8da6
trim to original resource if server added something
2018-03-15 08:53:19 +01:00
Daniel Gultsch
72388e37f5
fixed some issues with jid escaping
2018-03-11 18:32:16 +01:00
Daniel Gultsch
c1135ad592
use escaped form of jid where approriate
2018-03-11 14:14:56 +01:00
Daniel Gultsch
4bb45996c5
return contact and account.getServer() as String
2018-03-11 12:13:56 +01:00
Daniel Gultsch
1accf9d961
migrate to xmpp-addr
2018-03-07 22:30:36 +01:00
Daniel Gultsch
b393f54a03
get rid of customizable resources
2018-03-07 22:30:35 +01:00
Daniel Gultsch
bf6b54a7aa
get rid of OTR
2018-03-07 22:30:34 +01:00
Daniel Gultsch
de0272fd1a
integrate trust manager into conversations
2018-03-07 22:30:33 +01:00
Daniel Gultsch
63cd8e5981
added config param to use a random resource at every bind
2018-02-24 20:47:02 +01:00
Daniel Gultsch
f81e5e471e
request disco items before disco#info on first connect
...
should make initial connect faster because code is not waiting for omemo code to run
2018-02-20 17:36:07 +01:00
Daniel Gultsch
e7094af9d5
warn when attempting to write stanza to an unbound stream
2018-02-20 17:03:44 +01:00
Daniel Gultsch
014cf66c87
do not allow insecure bind
2018-02-18 21:54:03 +01:00
Marc Schink
17c6d8827c
Make use of Namespace.DATA constant
2018-02-16 16:12:53 +01:00
Daniel Gultsch
012653f7ed
SM saftey checks
2018-02-02 16:52:40 +01:00
Daniel Gultsch
78c5c508b3
permanently cache last resolver result
2018-01-21 20:41:30 +01:00
Daniel Gultsch
f2bbb6087c
remove wakelocks in XmlReader
2018-01-21 12:30:31 +01:00
Daniel Gultsch
6458351f6c
use countdownlatch to check if TagWriter has finished
2018-01-20 23:13:36 +01:00
Daniel Gultsch
3a8855a672
fixed interupt handling
2018-01-20 21:57:09 +01:00
Daniel Gultsch
2b39acf352
postpone notification actions (mark as read, reply) until after messages are loaded
2018-01-20 20:05:39 +01:00
Daniel Gultsch
6009b8ebf0
disable offline messages. postpone prekey handling until after mam catchup
2018-01-19 18:17:13 +01:00
Daniel Gultsch
036dd82698
properly handle key transport messages. use prekeyparsing only when that attribute is set
2018-01-18 20:58:55 +01:00
Daniel Gultsch
127557df56
show pep as available if omemo_all_access has been installed on server
2017-12-18 13:47:53 +01:00
Daniel Gultsch
1b0cd77c57
XmppConnection: refactor registration code. 'Open Website' on PAYMENT_REQUIRED failure
2017-12-08 14:23:38 +01:00
Daniel Gultsch
05b6fdb9f1
use empty wake lock tag
2017-11-21 13:25:18 +01:00
Daniel Gultsch
2d42646893
JingleConnection: fixed rare npe when canceling jingle
2017-11-16 12:49:15 +01:00
Daniel Gultsch
c52492ada0
apperently some servers will ommit the from even for stanzas not going to them
2017-11-16 12:48:26 +01:00
Daniel Gultsch
bc9da1fbf4
remove prosody push from blacklist
2017-11-12 19:22:39 +01:00
Daniel Gultsch
435d1ef5bd
SASL: don't prefer PLAIN auth over DIGEST-MD5 for nimbuzz.com
2017-11-05 16:21:59 +01:00
Daniel Gultsch
962add97f9
XmppConnection: throw bind failure when server tries to reassign domain
2017-10-27 18:26:06 +02:00
Daniel Gultsch
6f802b88d2
XmppConnection: do not count stanzas before smacks session has started
2017-10-27 11:35:55 +02:00
Daniel Gultsch
396ad3361f
Jingle: create output stream on demand
2017-10-26 18:42:10 +02:00
Daniel Gultsch
d348780dfc
wait up to 2s to let server close socket before force closing
2017-08-23 12:33:40 +02:00
Daniel Gultsch
6afa5653cb
fixed jingle state machine being thrown off by iq-result coming after session-accept
...
fixes #2587
2017-08-18 14:33:56 +02:00
Daniel Gultsch
b925f436fd
add more logging to http download connection and reset file params after setting expected size
2017-08-04 11:58:12 +02:00
Daniel Gultsch
225cca4566
provide extra 'network is unreachable' account state
2017-08-02 18:58:51 +02:00
Daniel Gultsch
e11277c70f
use base64 instead of base36 when creating random strings
2017-07-30 11:39:47 +02:00
Daniel Gultsch
2fc216bfc4
skip initial socket closing if thread was already interrupted
2017-07-21 08:30:16 +02:00
Daniel Gultsch
9a57673130
use publish-options instead of always pushing node configuration
2017-07-18 12:51:15 +02:00
Daniel Gultsch
2a198793b1
fixed otr jingle file size reporting
2017-07-18 12:43:53 +02:00
Daniel Gultsch
febee9863f
catch IllegalArgumentException caused by invalid custom hostname
2017-07-16 21:02:56 +02:00
Daniel Gultsch
3d0b127a8f
verify with hostname in direct tls connections
2017-07-13 19:27:43 +02:00
Daniel Gultsch
edb28ccb31
throw state changing exception on failed tls only if no more connection options left
2017-07-11 23:25:59 +02:00
Daniel Gultsch
da00a58902
work around idn short comings in minidns
2017-07-10 08:50:01 +02:00
Daniel Gultsch
5cac4397dd
catch state changing error when sending timeout to iq callbacks
2017-07-03 19:44:01 +02:00
Daniel Gultsch
4a2e222b34
deduplicate disco items before disco#info
2017-06-30 08:45:16 +02:00
Daniel Gultsch
cbbf6f439b
add publish-options helper class
2017-06-27 22:50:39 +02:00
Daniel Gultsch
3c90dbe723
fixed ip reporting for dns look ups
2017-06-22 00:09:59 +02:00
Daniel Gultsch
2ed71df01a
also check for hostname in in certs if hostname is from trusted source
2017-06-21 23:40:01 +02:00
Daniel Gultsch
2e380ed792
upgrade minidns. refactored dns utils
2017-06-21 23:28:01 +02:00
Daniel Gultsch
5d9d725446
offer to open website if ibb offers oob redirect. fixes #2503
2017-06-19 20:02:41 +02:00
Daniel Gultsch
3ece613a5d
rename resource on bind conflict
2017-05-25 14:40:59 +02:00
Daniel Gultsch
51d1223198
invoke statusChanged callback after syncronization
2017-05-19 15:28:25 +02:00
Daniel Gultsch
7cd4ed78b2
synchronize on dedicated lock for catchup instead of account
2017-05-19 13:30:57 +02:00
Daniel Gultsch
9fd6539534
clean up client cert selection code
2017-05-18 11:31:31 +02:00
Daniel Gultsch
5056a28553
differentiate starttls failure and sasl failure
2017-05-13 08:08:05 +02:00
Daniel Gultsch
91db2023d3
use mam reference instead of timestamp
2017-05-07 21:05:35 +02:00
Daniel Gultsch
9a7d925b97
do not synchronize startXmpp() and sendPacket() on the same object as this can block the ui
2017-05-06 15:37:22 +02:00
Daniel Gultsch
be371ac5df
reset resource after bind failure
2017-05-05 09:38:58 +02:00
Daniel Gultsch
7b6d49f329
unified all account state exceptions
2017-05-05 09:33:05 +02:00