[PATCH v3 2/7] wldap32: Implement ldap_search_abandon_page.

Dmitry Timoshkov dmitry at baikal.ru
Fri Apr 17 04:11:57 CDT 2020


Signed-off-by: Dmitry Timoshkov <dmitry at baikal.ru>
---
 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,
-- 
2.25.2




More information about the wine-devel mailing list