Commit Graph

21 Commits

Author SHA1 Message Date
Florian Schmaus 874a22489e Remove resource binding out of sasl auth
Follow XEP-170 recommendations: Resource binding *after* compression.

Fixes also a bunch of race conditions related to the wait()/notify()
pattern used in the early stages of a Connection where
createPacketCollectorAndSend(Packet).nextResultOrThrow() can not be
used. Those wait()/notify() patterns are currently
- SASL authentication
- compression
- resource binding

Fixes SMACK-454
2014-04-28 07:58:34 +02:00
Florian Schmaus 069e7d7e60 Use connection specific reply timeout value
instead of the global default one.
2014-04-23 10:08:51 +02:00
Florian Schmaus 8ba0715cc3 Bump jbosh to 0.8.0 2014-04-17 12:13:56 +02:00
Georg Lukas ab70cfec24 Refactoring: All connection classes begin with XMPP now
This commit renames classes as follows:
 * TCPConnection --> XMPPTCPConnection
 * BOSHConnection --> XMPPBOSHConnection

There are two reasons for this rename. First, it is there to indicate
that the classes actually _are_ XMPP connections, using different
transport mechanisms. Second, it makes auto-completion in IDEs easier,
the developer can type XMPP<complete> and choose the right backend.
2014-04-09 20:03:07 +02:00
Florian Schmaus d8a5610d7b Use Locale.US when doing String operations
on machine readable output. The default locale may not provide the
wanted mapping. See also
http://developer.android.com/reference/java/util/Locale.html#default_locale

SMACK-467
2014-04-03 22:50:13 +02:00
Florian Schmaus 978f692eb0 Use XmlStringBuilder in most toXML() bodies
Also change StringUtils.escapeForXML() and Packet.toXML() to return
CharSequence instead of String. XmlStringBuilder now has 'optX' methods.

Remove XmlUtils in favor of XmlStringBuilder
2014-03-22 16:59:15 +01:00
Florian Schmaus 1cf4681581 Always lookup DNS SRV RR on connect() 2014-03-20 17:08:46 +01:00
Florian Schmaus d8c656270e Switch jbosh to 0.8.0-SNAPSHOT 2014-03-19 13:14:03 +01:00
Florian Schmaus 9c8d7af3bf Fix error handling in BOSHConnection
getCause() never throws. Not sure why the code was written that
way. Thanks to CSH for reporting.
2014-03-19 09:00:10 +01:00
Florian Schmaus 44a5408bc0 Move host/port from ConnectionConfiguration to XMPPConnection
There semantic is that they now report the host used to establish the
connection. Therefore BOSHConfiguration needs to hostAddresses for
getURI().
2014-03-19 09:00:10 +01:00
Florian Schmaus 4db967079f getInstanceFor() for ChatManager and AccountManager 2014-03-19 08:59:45 +01:00
Florian Schmaus 6197f6200f Move duplicate sendPacket() code into XMPPConnection 2014-03-17 19:52:52 +01:00
Florian Schmaus 64e7b8a868 Move getRoster() to XMPPConnection
Also remove the Exceptions from the signature of getRoster().

Extend ConnectionListener with connected() and authenticated()
callbacks, required by Roster to be notified so that the Roster can be
loaded *after* login.
2014-03-15 11:21:49 +01:00
Florian Schmaus 4b56446e40 Introduce SmackException
SmackException (and it's subclasses) is for all errors/exceptions not
defined by any XMPP specification. XMPPException is now an abstract
class for all errors defined by the XMPP specifications.

Methods that involve an IQ exchange now either return the result, which
is obtained by IQ response, or they throw an XMPPErrorException if an IQ
error was the result of the IQ set/get. If there was no response from
the server within the default packet timeout, a NoResponseException will
be thrown.

XMPP SASL errors are now also reported accordingly.

SMACK-426
2014-03-14 01:46:42 +01:00
Florian Schmaus 4b6f09f962 Move processPacket() method to XMPPConnection
This removes code duplication in BOSHConnection and TCPConnection's
PacketReader, by moving the common code to the superclass
XMPPConnection.
2014-03-14 00:25:22 +01:00
Florian Schmaus 489816c61f Renamed Connection to XMPPConnection 2014-03-10 09:45:50 +01:00
Florian Schmaus a7ec0338bc Don't set SASL authid parameter to username (SMACK-371)
RFC4616 states that if the authorization identity (authzid) parameter is
null, then it is derived from the authentication
identity (authcid). Smack currently sets both, authzid and authcid, to
the username, resulting in auth attempts of

userid\0userid\0password

instead of

userid\0password

Which are different users on most systems (e.g. Kerberos).

We now set only SASLMechanism.authenticationId to username. The
authenticate(String, CallbackHandler) method does now not longer receive
the username, as it's send by the CallbackHandler.
2014-03-09 14:59:45 +01:00
Florian Schmaus 93eea8ab8d Move gradle subproject configuration into the subproject 2014-03-09 14:59:45 +01:00
Florian Schmaus 790343867a Remove non-SASL authentication code (SMACK-446) 2014-03-01 14:31:29 +01:00
Florian Schmaus 24b637876f Substitute MXParser with a call to XmlPullParserFactory
This makes Smack more portable, as there are platforms that support the
XmlPullParser interface, but not MXParser (e.g. Android).

Also enable checkstyle check that MXParser is not used.
2014-02-20 13:48:36 +01:00
Florian Schmaus 1a94812660 Add BOSH subproject (SMACK-187) 2014-02-19 22:41:31 +01:00