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
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
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
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
5f8184fe8e
only store non hardcoded resolver result in db
2018-10-16 12:23:27 +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
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
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
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
322463bab7
return InvalidJid object instead of null if Jid can not be parsed
2018-04-28 16:26:40 +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
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
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