Hans Leidekker : wldap32: Create version 3 contexts by default.

Alexandre Julliard julliard at winehq.org
Thu Oct 5 14:59:34 CDT 2017


Module: wine
Branch: master
Commit: accdabadba740af6455ece7809bf9644d71124fa
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=accdabadba740af6455ece7809bf9644d71124fa

Author: Hans Leidekker <hans at codeweavers.com>
Date:   Thu Oct  5 10:05:33 2017 +0200

wldap32: Create version 3 contexts by default.

Signed-off-by: Hans Leidekker <hans at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/wldap32/init.c        | 17 ++++++++++++++---
 dlls/wldap32/tests/parse.c | 10 ++++++++++
 2 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/dlls/wldap32/init.c b/dlls/wldap32/init.c
index 46a078a..6b413f8 100644
--- a/dlls/wldap32/init.c
+++ b/dlls/wldap32/init.c
@@ -206,6 +206,17 @@ static char *urlify_hostnames( const char *scheme, char *hostnames, ULONG port )
 
 WINE_DEFAULT_DEBUG_CHANNEL(wldap32);
 
+#ifdef HAVE_LDAP
+static LDAP *create_context( const char *url )
+{
+    LDAP *ld;
+    int version = LDAP_VERSION3;
+    if (ldap_initialize( &ld, url ) != LDAP_SUCCESS) return NULL;
+    ldap_set_option( ld, LDAP_OPT_PROTOCOL_VERSION, &version );
+    return ld;
+}
+#endif
+
 /***********************************************************************
  *      cldap_openA     (WLDAP32.@)
  *
@@ -276,7 +287,7 @@ WLDAP32_LDAP * CDECL cldap_openW( PWCHAR hostname, ULONG portnumber )
     url = urlify_hostnames( "cldap://", hostnameU, portnumber );
     if (!url) goto exit;
 
-    ldap_initialize( &ld, url );
+    ld = create_context( url );
 
 exit:
     strfreeU( hostnameU );
@@ -385,7 +396,7 @@ WLDAP32_LDAP * CDECL ldap_initW( const PWCHAR hostname, ULONG portnumber )
     url = urlify_hostnames( "ldap://", hostnameU, portnumber );
     if (!url) goto exit;
 
-    ldap_initialize( &ld, url );
+    ld = create_context( url );
 
 exit:
     strfreeU( hostnameU );
@@ -467,7 +478,7 @@ WLDAP32_LDAP * CDECL ldap_openW( PWCHAR hostname, ULONG portnumber )
     url = urlify_hostnames( "ldap://", hostnameU, portnumber );
     if (!url) goto exit;
 
-    ldap_initialize( &ld, url );
+    ld = create_context( url );
 
 exit:
     strfreeU( hostnameU );
diff --git a/dlls/wldap32/tests/parse.c b/dlls/wldap32/tests/parse.c
index 5c84929..c4c97e1 100644
--- a/dlls/wldap32/tests/parse.c
+++ b/dlls/wldap32/tests/parse.c
@@ -123,6 +123,15 @@ static void test_ldap_set_optionW( LDAP *ld )
     ok( !ret, "ldap_set_optionW failed 0x%08x\n", ret );
 }
 
+static void test_ldap_get_optionW( LDAP *ld )
+{
+    ULONG ret, version;
+
+    ret = ldap_get_optionW( ld, LDAP_OPT_PROTOCOL_VERSION, &version );
+    ok( !ret, "ldap_get_optionW failed 0x%08x\n", ret );
+    ok( version == LDAP_VERSION3, "got %u\n", version );
+}
+
 START_TEST (parse)
 {
     LDAP *ld;
@@ -132,6 +141,7 @@ START_TEST (parse)
 
     test_ldap_parse_sort_control( ld );
     test_ldap_search_extW( ld );
+    test_ldap_get_optionW( ld );
     test_ldap_set_optionW( ld );
     ldap_unbind( ld );
 }




More information about the wine-cvs mailing list