a942863ffe
so that APIs that need a fully connected but not yet authenticated connection (e.g. AccountManager) can use the connection after connect() returns. Also move "connected = true" after saslFeatureReceived check, as if the check would throw, the boolean would still be 'true' resulting in an inconsistent state. Otherwise this could result in D/SMACK﹕ SENT (12): <stream:stream xmlns='jabber:client' to='*server*' xmlns:stream='http://etherx.jabber.org/streams' version='1.0'> D/SMACK﹕ SENT (12): <iq id='miS03-37' to='*server*' type='get'><query xmlns='jabber:iq:register'></query></iq> D/SMACK﹕ RCV (12): <?xml version='1.0'?><stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' id='4280133582' from='*server*' version='1.0' xml:lang='en'><stream:features><starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/><mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'><mechanism>PLAIN</mechanism><mechanism >DIGEST-MD5</mechanism><mechanism>SCRAM-SHA-1</mechanism></mechanisms><c xmlns='http://jabber.org/protocol/caps' hash='sha-1' node='http://www.process-one.net/en/ejabberd/' ver='a4WL1hRFRX38OouQz3okC+ayK2o='/><register xmlns='http://jabber.org/features/iq-register'/></stream:features> D/SMACK﹕ SENT (12): <starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'></starttls> D/SMACK﹕ RCV (12): <iq from='*server*' id='miS03-37' type='result'><query xmlns='jabber:iq:register'><instructions>Choose a username and password to register with this server</instructions><username></username><password/></query></iq> D/SMACK﹕ SENT (12): <iq id='miS03-39' to='*server*' type='set'><query xmlns='jabber:iq:register'><password>s0r73pgojeopmssjaairu6kcmk3v4l</password>< username>nqcjloj4v6uk52bug16hrrhspfanlr</username></query></iq> D/SMACK﹕ RCV (12): <proceed xmlns='urn:ietf:params:xml:ns:xmpp-tls'/> W/AbstractXMPPConnection﹕ Connection closed with error javax.net.ssl.SSLException: Connection closed by peer at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method) at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.ja va:405) at com.android.org.conscrypt.OpenSSLSocketImpl$SSLInputStream.<init>(OpenSSLSocket Impl.java:661) at com.android.org.conscrypt.OpenSSLSocketImpl.getInputStream(OpenSSLSocketImpl.ja va:632) at org.jivesoftware.smack.tcp.XMPPTCPConnection.initReaderAndWriter(XMPPTCPConnect ion.java:661) at org.jivesoftware.smack.tcp.XMPPTCPConnection.proceedTLSReceived(XMPPTCPConnecti on.java:768) |
||
---|---|---|
config | ||
documentation | ||
resources | ||
smack-android | ||
smack-android-extensions | ||
smack-bosh | ||
smack-compression-jzlib | ||
smack-core | ||
smack-debug | ||
smack-debug-slf4j | ||
smack-experimental | ||
smack-extensions | ||
smack-java7 | ||
smack-jingle-old | ||
smack-legacy | ||
smack-resolver-dnsjava | ||
smack-resolver-javax | ||
smack-resolver-minidns | ||
smack-sasl-javax | ||
smack-sasl-provided | ||
smack-tcp | ||
.gitignore | ||
.travis.yml | ||
build.gradle | ||
README.md | ||
settings.gradle |
Smack
About
Smack is an Open Source, cross-platform, easy to use Java XMPP client library.
Smack is an Open Source XMPP (Jabber) client library for instant messaging and presence. A pure Java library, it can be embedded into your applications to create anything from a full XMPP client to simple XMPP integrations such as sending notification messages and presence-enabling devices.
Confused? Have a look at the Overview.
Smack - an Ignite Realtime community project.
Bug Reporting
Only a few usrs have acces for for filling bugs in the tracker. New users should:
- Create a forums account (only e-mail is a requirement, you can skip all the other fields).
- Login to the forum account
- Press New in your toolbar and choose Discussion
- Choose the Smack Developers Forum of Smack and add the tag 'bug_report' to your new post
Please search for your issues in the bug tracker before reporting.
Contact
The developeres hang around in #smack
(freenode, IRC) and open_chat@conference.igniterealtime.org
(XMPP MUC room).
Remember that it may take some time (~hours) to get a response.
You can also reach us via the Smack Users Forum if you have questions or need support, or the Smack Developers Forum if you want to discuss Smack development.
Resources
- Bug Tracker: http://issues.igniterealtime.org/browse/SMACK
- Nightly Builds: http://www.igniterealtime.org/downloads/nightly_smack.jsp
- Nightly Javadoc: http://www.igniterealtime.org/builds/smack/dailybuilds/javadoc/
- Nightly Documentation: http://www.igniterealtime.org/builds/smack/dailybuilds/documentation/
- User Forum: http://community.igniterealtime.org/community/support/smack_users
- Dev Forum: http://community.igniterealtime.org/community/developers/smack
- Maven Releases: https://oss.sonatype.org/content/repositories/releases/org/igniterealtime/smack/
- Maven Snapshots: https://oss.sonatype.org/content/repositories/snapshots/org/igniterealtime/smack/
Donate
If you find Smack useful and feel like donating, then you can use one of the following systems:
- Donate via Flattr
- Donate via Bitcoin: 1D4k11bsPxRB6rS51fxDty8QYfRVUt5JMB
Ignite Realtime
Ignite Realtime is an Open Source community composed of end-users and developers around the world who are interested in applying innovative, open-standards-based Real Time Collaboration to their businesses and organizations. We're aimed at disrupting proprietary, non-open standards-based systems and invite you to participate in what's already one of the biggest and most active Open Source communities.