Dmitry Timoshkov : wldap32: Implement ldap_search_abandon_page.

Alexandre Julliard julliard at winehq.org
Fri Apr 17 16:12:57 CDT 2020


Module: wine
Branch: master
Commit: 35b7856d50ad96cd21ae22e7473f3656ded3cede
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=35b7856d50ad96cd21ae22e7473f3656ded3cede

Author: Dmitry Timoshkov <dmitry at baikal.ru>
Date:   Fri Apr 17 17:11:57 2020 +0800

wldap32: Implement ldap_search_abandon_page.

Signed-off-by: Dmitry Timoshkov <dmitry at baikal.ru>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/wldap32/page.c | 25 +++++++++++++++++++++++--
 1 file changed, 23 insertions(+), 2 deletions(-)

diff --git a/dlls/wldap32/page.c b/dlls/wldap32/page.c
index d2d86e34af..09ca19c6c3 100644
--- a/dlls/wldap32/page.c
+++ b/dlls/wldap32/page.c
@@ -262,10 +262,31 @@ ULONG CDECL ldap_parse_page_controlW( WLDAP32_LDAP *ld, PLDAPControlW *ctrls,
 
 ULONG CDECL ldap_search_abandon_page( WLDAP32_LDAP *ld, PLDAPSearch search )
 {
-    FIXME( "(%p, %p)\n", ld, search );
+#ifdef HAVE_LDAP
+    LDAPControlW **ctrls;
+
+    TRACE( "(%p, %p)\n", ld, search );
+
+    if (!ld || !search) return ~0u;
+
+    strfreeW( search->dn );
+    strfreeW( search->filter );
+    strarrayfreeW( search->attrs );
+    ctrls = search->serverctrls;
+    controlfreeW( ctrls[0] ); /* page control */
+    ctrls++;
+    while (*ctrls) controlfreeW( *ctrls++ );
+    heap_free( search->serverctrls );
+    controlarrayfreeW( search->clientctrls );
+    if (search->cookie)
+        ber_bvfree( search->cookie );
+    heap_free( search );
 
-    if (!ld) return ~0u;
     return WLDAP32_LDAP_SUCCESS;
+
+#else
+    return WLDAP32_LDAP_NOT_SUPPORTED;
+#endif
 }
 
 PLDAPSearch CDECL ldap_search_init_pageA( WLDAP32_LDAP *ld, PCHAR dn, ULONG scope,




More information about the wine-cvs mailing list