2 * WLDAP32 - LDAP support for Wine
4 * Copyright 2005 Hans Leidekker
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23 #include "wine/port.h"
24 #include "wine/debug.h"
35 #define LDAP_SUCCESS 0x00
36 #define LDAP_NOT_SUPPORTED 0x5c
39 #include "winldap_private.h"
42 WINE_DEFAULT_DEBUG_CHANNEL(wldap32);
44 ULONG WLDAP32_ldap_abandon( WLDAP32_LDAP *ld, ULONG msgid )
46 ULONG ret = LDAP_NOT_SUPPORTED;
49 TRACE( "(%p, 0x%08lx)\n", ld, msgid );
52 ret = ldap_abandon( ld, msgid );
58 ULONG ldap_check_filterA( WLDAP32_LDAP *ld, PCHAR filter )
61 WCHAR *filterW = NULL;
63 TRACE( "(%p, %s)\n", ld, debugstr_a(filter) );
65 if (!ld) return WLDAP32_LDAP_PARAM_ERROR;
68 filterW = strAtoW( filter );
69 if (!filterW) return WLDAP32_LDAP_NO_MEMORY;
72 ret = ldap_check_filterW( ld, filterW );
78 ULONG ldap_check_filterW( WLDAP32_LDAP *ld, PWCHAR filter )
80 TRACE( "(%p, %s)\n", ld, debugstr_w(filter) );
82 if (!ld) return WLDAP32_LDAP_PARAM_ERROR;
86 ULONG ldap_cleanup( HANDLE instance )
88 TRACE( "(%p)\n", instance );
92 WLDAP32_LDAP *ldap_conn_from_msg( WLDAP32_LDAP *ld, WLDAP32_LDAPMessage *res )
94 TRACE( "(%p, %p)\n", ld, res );
96 if (!ld || !res) return NULL;
97 return ld; /* FIXME: not always correct */
100 void ldap_memfreeA( PCHAR block )
102 TRACE( "(%p)\n", block );
106 void ldap_memfreeW( PWCHAR block )
108 TRACE( "(%p)\n", block );
112 ULONG WLDAP32_ldap_result( WLDAP32_LDAP *ld, ULONG msgid, ULONG all,
113 struct l_timeval *timeout, WLDAP32_LDAPMessage **res )
115 ULONG ret = WLDAP32_LDAP_NOT_SUPPORTED;
118 TRACE( "(%p, 0x%08lx, 0x%08lx, %p, %p)\n", ld, msgid, all, timeout, res );
120 if (!ld || !res) return ~0UL;
121 ret = ldap_result( ld, msgid, all, (struct timeval *)timeout, res );
127 ULONG ldap_value_freeA( PCHAR *vals )
129 TRACE( "(%p)\n", vals );
131 strarrayfreeA( vals );
135 ULONG ldap_value_freeW( PWCHAR *vals )
137 TRACE( "(%p)\n", vals );
139 strarrayfreeW( vals );
143 int LdapUnicodeToUTF8( LPCWSTR src, int srclen, LPSTR dst, int dstlen )
145 return WideCharToMultiByte( CP_UTF8, 0, src, srclen, dst, dstlen, NULL, NULL );
148 int LdapUTF8ToUnicode( LPCSTR src, int srclen, LPWSTR dst, int dstlen )
150 return MultiByteToWideChar( CP_UTF8, 0, src, srclen, dst, dstlen );