You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by se...@apache.org on 2019/04/22 11:20:33 UTC

[directory-ldap-api] branch master updated: Fix extended response handling for responses without value, like StartTLS (OpenLDAP doesnt't add the responseName/OID so StartTLS wasn't working).

This is an automated email from the ASF dual-hosted git repository.

seelmann pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/directory-ldap-api.git


The following commit(s) were added to refs/heads/master by this push:
     new 2f74af7  Fix extended response handling for responses without value, like StartTLS (OpenLDAP doesnt't add the responseName/OID so StartTLS wasn't working).
2f74af7 is described below

commit 2f74af7cb06317f5818106cf58b1521cfbccc830
Author: Stefan Seelmann <ma...@stefan-seelmann.de>
AuthorDate: Mon Apr 22 13:20:20 2019 +0200

    Fix extended response handling for responses without value, like StartTLS (OpenLDAP doesnt't add the responseName/OID so StartTLS wasn't working).
---
 .../directory/ldap/client/api/LdapNetworkConnection.java | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapNetworkConnection.java b/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapNetworkConnection.java
index 02e361b..6267cc1 100644
--- a/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapNetworkConnection.java
+++ b/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapNetworkConnection.java
@@ -2929,9 +2929,19 @@ public class LdapNetworkConnection extends AbstractLdapConnection implements Lda
         {
             ExtendedOperationFactory factory = codec.getExtendedResponseFactories().
                 get( extendedFuture.getExtendedRequest().getRequestName() );
-            
-            ExtendedResponse response = factory.newResponse( ( ( OpaqueExtendedResponse ) extendedResponse ).getResponseValue() );
-            
+
+            byte[] responseValue = ( ( OpaqueExtendedResponse ) extendedResponse ).getResponseValue();
+
+            ExtendedResponse response;
+            if ( responseValue != null )
+            {
+                response = factory.newResponse( responseValue );
+            }
+            else
+            {
+                response = factory.newResponse();
+            }
+
             // Copy the controls
             for ( Control control : extendedResponse.getControls().values() )
             {