Commit graph

60 commits

Author SHA1 Message Date
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
Christoph Scholz 386b224123 fix escapeing in local channel discovery 2020-11-13 13:35:46 +00:00
Daniel Gultsch b6703dbe38 switch xmpp-addr to jxmpp-jid 2020-05-15 17:06:16 +02:00
Daniel Gultsch abfa4eae08 remove white space before parsing omemo bundle base64 2020-05-08 19:33:49 +02:00
Daniel Gultsch 5a5f887229 code cleanup in bundle parsing
also switch to guavas base64 parser to avoid potential ROM bugs
2020-05-03 11:54:58 +02:00
Daniel Gultsch 418cecad11 remove XEP-0357 support for group chats 2020-04-28 06:50:04 +02:00
Daniel Gultsch 07786d4576 optionally search local muc rooms instead of jabber.network 2019-11-02 09:43:37 +01: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 b9bdb3df55 use Tor on http upload is account uses onion domain. fixes #3075 2018-06-16 18:31:55 +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 9908af6286 sync roster to disk after roster push 2018-03-18 12:24:28 +01:00
Daniel Gultsch 1accf9d961 migrate to xmpp-addr 2018-03-07 22:30:36 +01:00
Daniel Gultsch ad601e47c8 fixed roster items w/o subscription (request) not being shown 2017-07-28 18:34:55 +02:00
Daniel Gultsch 24768d051d upgrade to signal-protocol-java. thanks @ysangkok
fixes #1384
closes #2509
2017-06-18 16:36:30 +02:00
Daniel Gultsch 2cf05528b4 add the 4 most frequently contacted contacts as app shortcuts 2017-05-31 16:45:51 +02:00
cijo-saju 3467a67e75 Removed unused imports from entire project. 2017-04-12 20:24:36 +05:30
Daniel Gultsch 1c56b74e41 closing the corresponding conversations after blocking a contact. fixes #2347 2017-03-06 16:53:54 +01:00
Daniel Gultsch c740386297 rename the Xmlns class to Namespace 2017-03-01 13:01:46 +01:00
Daniel Gultsch 780d1daf7e fixed some issues around ibb 2017-01-20 22:37:50 +01:00
Daniel Gultsch e5d7357e6e mark conversations as read after receiving blocklist push for that conversations 2016-11-28 15:51:11 +01:00
Daniel Gultsch 0af13fc746 be more careful parsing integers in omemo 2016-10-06 22:05:18 +02:00
Daniel Gultsch ed2fa20414 handle invalid prekey ids in bundle 2016-08-02 10:40:24 +02:00
Daniel Gultsch 27690865a6 respond to XEP-0202: Entity Time 2016-07-13 18:10:10 +02:00
Daniel Gultsch 4ba5472d0c respond to block list push 2016-06-22 12:22:36 +02:00
Daniel Gultsch 36ae840d76 log all background stanzas when background logging is enabled 2016-06-05 02:04:31 +02:00
Daniel Gultsch 9ce2cfa3d2 resetting fetch status error when mutual subscription is reestablished 2016-05-19 10:47:27 +02:00
Daniel Gultsch a25912c32c log incoming iq requests 2016-05-15 09:55:06 +02:00
Daniel Gultsch f37098a54f catch all axolotl parse exception at once. fixes #1692 2016-02-11 12:26:43 +01:00
Daniel Gultsch f30df7a535 catch a few NPE when parsing invalid pep nodes 2016-02-02 11:21:07 +01:00
Daniel Gultsch 88523bbb50 more detailed logging 2015-12-12 15:58:22 +01:00
Daniel Gultsch cfeb67d71d introduced code to verify omemo device keys with x509 certificates.
cleaned up TrustKeysActivity to automatically close if there is nothing to do
2015-10-16 23:48:42 +02:00
Daniel Gultsch 8f4b7686c9 catch invalid base64 on omemo key decoding 2015-08-30 11:11:54 +02:00
Daniel Gultsch d0b8bd0f8a catch invalid base64 in axolotl key parsing 2015-08-24 18:18:01 +02:00
Daniel Gultsch 0dfb9bd1a0 introduce special iq type for internal timeouts. always use != result to check for error in callbacks 2015-08-23 17:53:23 +02:00
Daniel Gultsch 496f531e2e modified clearIqCallbacks into 2-step process 2015-08-23 08:01:47 +02:00
Andreas Straub 3458f5bb91 Clean up logging
Add a fixed prefix to axolotl-related log messages, set log levels
sensibly.
2015-07-19 22:17:57 +02:00
Andreas Straub 6867b5c3ab Return empty set on invalid PEP devicelist 2015-07-19 21:32:27 +02:00
Andreas Straub c1d23b2395 Migrate to new PEP layout
Merge prekeys into bundle node
2015-07-19 21:32:26 +02:00
Andreas Straub 299bbdf27f Reformat code to use tabs
This really sucks to do it like this. Sorry. :(
2015-07-19 21:32:26 +02:00
Andreas Straub 77619b55e4 Added PEP and message protocol layers
Can now fetch/retrieve from PEP, as well as encode/decode messages
2015-07-19 21:32:26 +02:00
iNPUTmice 4e14c89ff8 support for XEP-0092: Software Version 2015-02-16 10:06:09 +01:00
Daniel Gultsch 85f24c9106 avoid requesting blocklist after stream resumption 2015-01-05 16:17:05 +01:00
Sam Whited 88704ce5cd Verify IQ responses
Fixes #20

Move fromServer/toServer to AbstractStanza
2015-01-04 08:28:13 -05:00
Sam Whited eb7e683403 Make IqPacket type an enum 2015-01-04 08:20:30 -05:00
Daniel Gultsch 8f93f9c314 improved fromServer filter 2014-12-30 09:36:00 +01:00
Daniel Gultsch 04de77261b fixed #818 2014-12-30 01:13:35 +01:00
Sam Whited b48bddb852 Fix typo in method name 2014-12-29 14:21:20 -05:00
iNPUTmice d5f99560ff made method private that is no longer required to be public 2014-12-23 18:09:29 +01:00
Sam Whited e152ed1e07 Simplify roster handling code
Merge result handling code into IqParser

Fixes #20
2014-12-22 12:53:31 -05:00