From 907be53beb1d6cf696d936d95d95d6526becccdd Mon Sep 17 00:00:00 2001 From: Hans Leidekker Date: Thu, 8 Sep 2005 11:01:08 +0000 Subject: [PATCH] Implement ldap_control_free*, ldap_controls_free* and ldap_free_controls*. --- dlls/wldap32/Makefile.in | 1 + dlls/wldap32/control.c | 100 +++++++++++++++++++++++++++++++++++++++++ dlls/wldap32/winldap_private.h | 6 +++ dlls/wldap32/wldap32.spec | 18 ++++---- 4 files changed, 116 insertions(+), 9 deletions(-) create mode 100644 dlls/wldap32/control.c diff --git a/dlls/wldap32/Makefile.in b/dlls/wldap32/Makefile.in index d52725f1012..4fa13b688a1 100644 --- a/dlls/wldap32/Makefile.in +++ b/dlls/wldap32/Makefile.in @@ -12,6 +12,7 @@ C_SRCS = \ ber.c \ bind.c \ compare.c \ + control.c \ delete.c \ dn.c \ error.c \ diff --git a/dlls/wldap32/control.c b/dlls/wldap32/control.c new file mode 100644 index 00000000000..e85f8bf2121 --- /dev/null +++ b/dlls/wldap32/control.c @@ -0,0 +1,100 @@ +/* + * WLDAP32 - LDAP support for Wine + * + * Copyright 2005 Hans Leidekker + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include "config.h" + +#include "wine/port.h" +#include "wine/debug.h" + +#include + +#include "windef.h" +#include "winbase.h" +#include "winnls.h" + +#ifdef HAVE_LDAP_H +#include +#else +#define LDAP_SUCCESS 0x00 +#define LDAP_NOT_SUPPORTED 0x5c +#endif + +#include "winldap_private.h" +#include "wldap32.h" + +WINE_DEFAULT_DEBUG_CHANNEL(wldap32); + +ULONG ldap_control_freeA( LDAPControlA *control ) +{ + ULONG ret = LDAP_SUCCESS; +#ifdef HAVE_LDAP + + TRACE( "(%p)\n", control ); + controlfreeA( control ); + +#endif + return ret; +} + +ULONG ldap_control_freeW( LDAPControlW *control ) +{ + ULONG ret = LDAP_SUCCESS; +#ifdef HAVE_LDAP + + TRACE( "(%p)\n", control ); + controlfreeW( control ); + +#endif + return ret; +} + +ULONG ldap_controls_freeA( LDAPControlA **controls ) +{ + ULONG ret = LDAP_SUCCESS; +#ifdef HAVE_LDAP + + TRACE( "(%p)\n", controls ); + controlarrayfreeA( controls ); + +#endif + return ret; +} + +ULONG ldap_controls_freeW( LDAPControlW **controls ) +{ + ULONG ret = LDAP_SUCCESS; +#ifdef HAVE_LDAP + + TRACE( "(%p)\n", controls ); + controlarrayfreeW( controls ); + +#endif + return ret; +} + +ULONG ldap_free_controlsA( LDAPControlA **controls ) +{ + return ldap_controls_freeA( controls ); +} + +ULONG ldap_free_controlsW( LDAPControlW **controls ) +{ + return ldap_controls_freeW( controls ); +} diff --git a/dlls/wldap32/winldap_private.h b/dlls/wldap32/winldap_private.h index 02c9247ec1e..e0bd1637bd5 100644 --- a/dlls/wldap32/winldap_private.h +++ b/dlls/wldap32/winldap_private.h @@ -266,6 +266,10 @@ ULONG ldap_compare_sA(WLDAP32_LDAP*,PCHAR,PCHAR,PCHAR); ULONG ldap_compare_sW(WLDAP32_LDAP*,PWCHAR,PWCHAR,PWCHAR); ULONG ldap_connect(WLDAP32_LDAP*,LDAP_TIMEVAL*); WLDAP32_LDAP *ldap_conn_from_msg(WLDAP32_LDAP*,WLDAP32_LDAPMessage*); +ULONG ldap_control_freeA(LDAPControlA*); +ULONG ldap_control_freeW(LDAPControlW*); +ULONG ldap_controls_freeA(LDAPControlA**); +ULONG ldap_controls_freeW(LDAPControlW**); ULONG WLDAP32_ldap_count_entries(WLDAP32_LDAP*,WLDAP32_LDAPMessage*); ULONG WLDAP32_ldap_count_references(WLDAP32_LDAP*,WLDAP32_LDAPMessage*); ULONG ldap_count_valuesA(PCHAR*); @@ -297,6 +301,8 @@ PCHAR ldap_first_attributeA(WLDAP32_LDAP*,WLDAP32_LDAPMessage*,WLDAP32_BerElemen PWCHAR ldap_first_attributeW(WLDAP32_LDAP*,WLDAP32_LDAPMessage*,WLDAP32_BerElement**); WLDAP32_LDAPMessage *WLDAP32_ldap_first_entry(WLDAP32_LDAP*,WLDAP32_LDAPMessage*); WLDAP32_LDAPMessage *WLDAP32_ldap_first_reference(WLDAP32_LDAP*,WLDAP32_LDAPMessage*); +ULONG ldap_free_controlsA(LDAPControlA**); +ULONG ldap_free_controlsW(LDAPControlW**); PCHAR ldap_get_dnA(WLDAP32_LDAP*,WLDAP32_LDAPMessage*); PWCHAR ldap_get_dnW(WLDAP32_LDAP*,WLDAP32_LDAPMessage*); ULONG ldap_get_optionA(WLDAP32_LDAP*,int,void*); diff --git a/dlls/wldap32/wldap32.spec b/dlls/wldap32/wldap32.spec index 0969ec94ab9..3e72358274d 100644 --- a/dlls/wldap32/wldap32.spec +++ b/dlls/wldap32/wldap32.spec @@ -55,12 +55,12 @@ @ cdecl ldap_compare_sW(ptr wstr wstr wstr) @ cdecl ldap_conn_from_msg(ptr ptr) @ cdecl ldap_connect(ptr ptr) -@ stub ldap_control_free -@ stub ldap_control_freeA -@ stub ldap_control_freeW -@ stub ldap_controls_free -@ stub ldap_controls_freeA -@ stub ldap_controls_freeW +@ cdecl ldap_control_free(ptr) ldap_control_freeA +@ cdecl ldap_control_freeA(ptr) +@ cdecl ldap_control_freeW(ptr) +@ cdecl ldap_controls_free(ptr) ldap_controls_freeA +@ cdecl ldap_controls_freeA(ptr) +@ cdecl ldap_controls_freeW(ptr) @ cdecl ldap_count_entries(ptr ptr) WLDAP32_ldap_count_entries @ cdecl ldap_count_references(ptr ptr) WLDAP32_ldap_count_references @ cdecl ldap_count_values(ptr) ldap_count_valuesA @@ -111,9 +111,9 @@ @ cdecl ldap_first_attributeW(ptr ptr ptr) @ cdecl ldap_first_entry(ptr ptr) WLDAP32_ldap_first_entry @ cdecl ldap_first_reference(ptr ptr) WLDAP32_ldap_first_reference -@ stub ldap_free_controls -@ stub ldap_free_controlsA -@ stub ldap_free_controlsW +@ cdecl ldap_free_controls(ptr) ldap_free_controlsA +@ cdecl ldap_free_controlsA(ptr) +@ cdecl ldap_free_controlsW(ptr) @ cdecl ldap_get_dn(ptr ptr) ldap_get_dnA @ cdecl ldap_get_dnA(ptr ptr) @ cdecl ldap_get_dnW(ptr ptr) -- 2.11.4.GIT