You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by ng...@apache.org on 2011/01/16 22:20:40 UTC
svn commit: r1059681 -
/mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/AbstractSessionContext.java
Author: ngn
Date: Sun Jan 16 21:20:37 2011
New Revision: 1059681
URL: http://svn.apache.org/viewvc?rev=1059681&view=rev
Log:
Only send unavailable stanza if the client fully completed the stream initiation
Modified:
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/AbstractSessionContext.java
Modified: mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/AbstractSessionContext.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/AbstractSessionContext.java?rev=1059681&r1=1059680&r2=1059681&view=diff
==============================================================================
--- mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/AbstractSessionContext.java (original)
+++ mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/AbstractSessionContext.java Sun Jan 16 21:20:37 2011
@@ -141,12 +141,14 @@ public abstract class AbstractSessionCon
if (terminationCause == SessionTerminationCause.CLIENT_BYEBYE
|| terminationCause == SessionTerminationCause.CONNECTION_ABORT) {
- Stanza unavailableStanza = StanzaBuilder.createUnavailablePresenceStanza(null, terminationCause);
- StanzaHandler handler = serverRuntimeContext.getHandler(unavailableStanza);
- try {
- handler.execute(unavailableStanza, serverRuntimeContext, true, this, sessionStateHolder);
- } catch (ProtocolException e) {
- logger.error("Failed to send unavailable stanza on connection close", e);
+ if(getState().equals(SessionState.AUTHENTICATED)) {
+ Stanza unavailableStanza = StanzaBuilder.createUnavailablePresenceStanza(null, terminationCause);
+ StanzaHandler handler = serverRuntimeContext.getHandler(unavailableStanza);
+ try {
+ handler.execute(unavailableStanza, serverRuntimeContext, true, this, sessionStateHolder);
+ } catch (ProtocolException e) {
+ logger.error("Failed to send unavailable stanza on connection close", e);
+ }
}
} else if (terminationCause == SessionTerminationCause.SERVER_SHUTDOWN) {
// do nothing