Build: #1771 was successful Changes by Aditya Borikar <adityaborikar2@gmail.com> and Florian Schmaus <flo@geekplace.eu>
Code commits
Smack (master)
-
Florian Schmaus <flo@geekplace.eu> 11e38f9ba5ceb8938a01b20322bb79165a568748
Smack 4.5.0-alpha1-SNAPSHOT
-
Florian Schmaus <flo@geekplace.eu> cf92566e26372370bc92ffdadd5db4820b0d25b0
Merge pull request #416 from Flowdalic/connected-boolean
Set 'connected' to 'true' as early as possible -
Florian Schmaus <flo@geekplace.eu> 36d61d9e52654c920c3a3289a5ab486f51ec5ba6
Merge pull request #413 from adiaholic/xep-0156
HttpLookupMethod: Position parser at START_ELEMENT before parsing -
Aditya Borikar <adityaborikar2@gmail.com> 7796b367cc779a001a42c7313bbdaf5f50c325b6
Position parser at START_ELEMENT before parsing
This PR aims to provide parseXrdLinkReferencesFor() method the ability
to parse forward to the first START_ELEMENT tag.The HttpLookupMethodTest
tests the HttpLookupMethod class by parsing String. This makes use of
PacketParserUtils.getParserFor(String), which already does forward
winding to reach START_ELEMENT. However when fetching endpoints from a
remote host meta data, PacketParserUtils.getParserFor(InputStream) is
used which doesn't do winding in any form. And thus, even though
HttpLookupMethodTest tests pass, this implementation would crash while
parsing remote host-meta.- smack-core/src/main/java/org/jivesoftware/smack/altconnections/HttpLookupMethod.java (version 7796b367cc779a001a42c7313bbdaf5f50c325b6) (diffs)
- smack-core/src/main/java/org/jivesoftware/smack/util/PacketParserUtils.java (version 7796b367cc779a001a42c7313bbdaf5f50c325b6) (diffs)
- smack-core/src/main/java/org/jivesoftware/smack/util/ParserUtils.java (version 7796b367cc779a001a42c7313bbdaf5f50c325b6) (diffs)
-
Florian Schmaus <flo@geekplace.eu> 1a2a613112712580bedbf4374fba84dfe0f44517 m
Set 'connected' to 'true' as early as possible
We previously only set 'connected' after connectInternal()
returned. This could lead to notifyConnectionError() ignoring stream
error exceptions, e.g. when establishing TLS which happens also in
connectInternal(), because 'connected' was still 'false'.
2020-08-06 13:08:06.265 19830-20423/org.atalk.android D/SMACK: SENT (0):
<stream:stream xmlns='jabber:client' to='atalk.sytes.net' xmlns:stream='http://etherx.jabber.org/streams' version='1.0' xml:lang='en'>
2020-08-06 13:08:06.333 19830-20424/org.atalk.android D/SMACK: RECV (0): ?xml version='1.0'?>
<stream:stream id='16420577292739412012' version='1.0' xml:lang='en' xmlns:stream='http://etherx.jabber.org/streams' from='atalk.sytes.net' xmlns='jabber:client'>
<stream:error>
<policy-violation xmlns='urn:ietf:params:xml:ns:xmpp-streams'/>
<text xml:lang='en' xmlns='urn:ietf:params:xml:ns:xmpp-streams'>
Too many (20) failed authentications from this IP address (::ffff:42.60.7.13). The address will be unblocked at 05:15:34 06.08.2020 UTC
</text>
</stream:error>
</stream:stream>
2020-08-06 13:08:06.346 19830-20424/org.atalk.android I/aTalk: [241896] org.jivesoftware.smack.AbstractXMPPConnection.notifyConnectionError() Connection was already disconnected when attempting to handle org.jivesoftware.smack.XMPPException$StreamErrorException: policy-violation You can read more about the meaning of this stream error at http://xmpp.org/rfcs/rfc6120.html#streams-error-conditions
<stream:error><policy-violation xmlns='urn:ietf:params:xml:ns:xmpp-streams'/><text xml:lang='en'>Too many (20) failed authentications from this IP address (::ffff:42.60.7.13). The address will be unblocked at 05:15:34 06.08.2020 UTC</text></stream:error>
org.jivesoftware.smack.XMPPException$StreamErrorException: policy-violation You can read more about the meaning of this stream error at http://xmpp.org/rfcs/rfc6120.html#streams-error-conditions
<stream:error><policy-violation xmlns='urn:ietf:params:xml:ns:xmpp-streams'/><text xml:lang='en'>Too many (20) failed authentications from this IP address (::ffff:42.60.7.13). The address will be unblocked at 05:15:34 06.08.2020 UTC</text></stream:error>
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:966)
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$700(XMPPTCPConnection.java:898)
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:921)
at java.lang.Thread.run(Thread.java:919)
Which eventually leads to a NoResponseException
org.jivesoftware.smack.SmackException$NoResponseException: No response
received within reply timeout. Timeout was 30000ms (~30s). While
waiting for establishing TLS
[XMPPTCPConnection[not-authenticated] (4)]
We now set 'connected' to 'true' as soon as the transport (e.g. TCP,
BOSH, …) is connected. While this is in other ways also sensible, it
also allows notifyConnectionError() to handle exceptions in the early
connection stage.
Thanks to Eng Chong Meng for reporting this.- smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java (version 1a2a613112712580bedbf4374fba84dfe0f44517) (diffs)
- smack-core/src/main/java/org/jivesoftware/smack/c2s/ModularXmppClientToServerConnection.java (version 1a2a613112712580bedbf4374fba84dfe0f44517) (diffs)
- smack-core/src/main/java/org/jivesoftware/smack/c2s/internal/ModularXmppClientToServerConnectionInternal.java (version 1a2a613112712580bedbf4374fba84dfe0f44517) (diffs)
- smack-tcp/src/main/java/org/jivesoftware/smack/tcp/XMPPTCPConnection.java (version 1a2a613112712580bedbf4374fba84dfe0f44517) (diffs)