aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/xmpp/XmppConnection.java (follow)
Commit message (Collapse)AuthorAgeFilesLines
* fix resolving IP if SRV violences RFC2782Christian Schneppe2020-04-071-17/+31
|
* WIP: happy eyeball with dns caching for 5min (#464)genofire2020-02-191-3/+12
| | | | | | * happy eyeball: fix dnssec for plain ip an srv-cname * reimplement dns resolver cache + add timeout for cache
* Networkstack: easy happy eyeball (#411)genofire2020-02-051-68/+32
| | | | | | | | * Networkstack: easy happy eyeball * Networkstack: drop own implementation of DNS-Server selection Co-authored-by: Christian Schneppe <kriztan@users.noreply.github.com>
* support registration via pars tokensChristian Schneppe2020-01-241-1/+25
|
* reset XmppConnection to parentChristian Schneppe2020-01-021-1/+1
|
* rework adhocinviteChristian Schneppe2019-12-131-1/+3
|
* bookmarks2. introduce #compat namespaceChristian Schneppe2019-10-261-1/+1
|
* support for purge and deleteChristian Schneppe2019-10-261-1/+1
|
* support for delete bookmarks2Christian Schneppe2019-10-261-1/+6
|
* migrate to AndroidXChristian Schneppe2019-09-201-1/+1
|
* show language in message bubble if multiple language variants were receivedChristian Schneppe2019-09-121-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Disabling 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 we now show the displayed language in a corner of the message bubble if more than one translation has been received. If multiple languages are received we 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 we will discard (not show at all) messages with with multiple bodies of the same language. (This is considered an invalid message) The language tag will not be shown if we receive 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.
* make Tor connections work with direct TLSChristian Schneppe2019-09-061-60/+48
|
* deleted wrong to jidChristian Schneppe2019-09-061-1/+0
| | | | fixes #374
* fix some crashesChristian Schneppe2019-09-031-5/+18
|
* fixed unlikely race between enabling carbons and discovering last MAM idChristian Schneppe2019-08-311-3/+3
|
* increased reconnection interval after policy violationChristian Schneppe2019-08-311-1/+3
|
* create empty disco result on error to fire advance stream features eventChristian Schneppe2019-08-311-1/+14
|
* use helper method to close socketChristian Schneppe2019-07-171-10/+3
|
* code cleanup & small fixesChristian Schneppe2019-07-011-2/+2
|
* Revert "Networkstack - let OS decide IPv4 or IPv6 (#267)"Christian Schneppe2019-06-251-5/+26
| | | | | | This reverts commit e6a15597904019f68c02e6fd8f61fb6de0b13324. If there is IPv6 available but the server doesn't listen to it, the connection will not be established
* implement client support for muc pushChristian Schneppe2019-06-251-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 optimizations will also suppress pings when a ping is already in flight to further save traffic.
* performance improvement of message expiryChristian Schneppe2019-06-221-2/+2
|
* self ping (xep-0410) after receiving invite to mucChristian Schneppe2019-06-181-1/+1
|
* Networkstack - let OS decide IPv4 or IPv6 (#267)genofire2019-06-081-26/+5
| | | | | | | | * Networkstack - let OS decide IPv4 or IPv6 * Drop own implementation of DNS-Server selection * remove dns resolver cache
* Make use of Namespace.REGISTER constantChristian Schneppe2019-05-041-4/+4
|
* remove logging from delete from serverChristian Schneppe2019-04-011-1/+0
|
* add ability to delete account also from serverChristian Schneppe2019-03-311-0/+16
| | | | fixes #315
* Deduplicate presencesChristian Schneppe2019-02-211-1/+2
| | | | possibly fixes #303
* print available stream features / mechanisms on incompat serverChristian Schneppe2019-02-091-0/+4
|
* reset inviteuri after successful generationChristian Schneppe2019-02-081-3/+2
|
* use ad-hoc commands for invite links if server supports thisChristian Schneppe2019-02-081-0/+69
|\
| * implement adhoc invite links if server supports thisChristian Schneppe2019-02-081-0/+73
| |
* | do not require starttls when connecting over to .onion domainChristian Schneppe2019-01-271-2/+2
| |
* | properly jump out of connection loop on state changing errorsChristian Schneppe2019-01-251-8/+7
| |
* | resend presence to muc avatar updateChristian Schneppe2019-01-251-0/+4
|/
* log number of unhandled iq callbacks after resumeChristian Schneppe2018-12-271-3/+4
|
* log policy violation stream error message to logcatChristian Schneppe2018-12-271-0/+4
|
* check mam preference for mam:2 namespace and purge offline only if setChristian Schneppe2018-12-141-0/+17
|
* show max file size for httpupload in profile --> server infoChristian Schneppe2018-11-081-1/+1
|
* reformat XmppConnection.javaChristian Schneppe2018-10-241-37/+30
|
* only store non hardcoded resolver result in dbChristian Schneppe2018-10-201-1/+1
|
* use short read timeout when waiting for first stream open. disable read ↵Christian Schneppe2018-10-041-1/+2
| | | | timeout aftwards
* clean up connection code. unify domain = ip and extended connection settings ↵Christian Schneppe2018-10-021-59/+21
| | | | into fake resolver
* use sni and alpn for start tls as well. apperently google requires itChristian Schneppe2018-10-021-0/+2
|
* introduced error code for server not opening stream after auth or starttlsChristian Schneppe2018-10-011-2/+5
|
* code cleanupChristian Schneppe2018-10-011-5/+5
|
* fixed regression that didn’t enable SNIChristian Schneppe2018-10-011-2/+2
|
* use conscrypt as security provider to provide tls 1.3 and modern cyphers on ↵Christian Schneppe2018-10-011-0/+4
| | | | old androids
* speed up DNSChristian Schneppe2018-09-131-2/+0
| | | | | | run queries in parallel decrease timeout do not fall back to google
* removed synchronized in favor of another interrupted check in startXmpp()Christian Schneppe2018-09-111-1/+4
|