Author: gsim
Date: Mon Nov  5 19:52:34 2012
New Revision: 1405928

URL: http://svn.apache.org/viewvc?rev=1405928&view=rev
Log:
PROTON-119: prevent possible premature switch from SASL output

Modified:
    
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/SaslImpl.java

Modified: 
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/SaslImpl.java
URL: 
http://svn.apache.org/viewvc/qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/SaslImpl.java?rev=1405928&r1=1405927&r2=1405928&view=diff
==============================================================================
--- 
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/SaslImpl.java
 (original)
+++ 
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/SaslImpl.java
 Mon Nov  5 19:52:34 2012
@@ -61,6 +61,7 @@ public class SaslImpl implements Sasl, S
     private SaslFrameParser _frameParser;
     private boolean _initReceived;
     private boolean _mechanismsSent;
+    private boolean _initSent;
 
 
     enum Role { CLIENT, SERVER };
@@ -429,6 +430,7 @@ public class SaslImpl implements Sasl, S
             init.setInitialResponse(getChallengeResponse());
             setChallengeResponse(null);
         }
+        _initSent = true;
         return writeFrame(buffer, init);
     }
 
@@ -491,7 +493,7 @@ public class SaslImpl implements Sasl, S
             @Override
             public int output(byte[] bytes, int offset, int size)
             {
-                if(_role == null || (_role == Role.CLIENT && !_done) || (_role 
== Role.SERVER && !_outputComplete))
+                if(_role == null || (_role == Role.CLIENT && (!_done || 
!_initSent)) || (_role == Role.SERVER && !_outputComplete))
                 {
                     int written = SaslImpl.this.output(bytes, offset, size);
                     if(_done && !_overflowBuffer.hasRemaining())



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to