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