ReactOS 0.4.16-dev-297-gc569aee
misc.c File Reference
#include "config.h"
#include "wine/port.h"
#include <stdarg.h>
#include <stdio.h>
#include "windef.h"
#include "winbase.h"
#include "winnls.h"
#include "winldap_private.h"
#include "wldap32.h"
#include "wine/debug.h"
Include dependency graph for misc.c:

Go to the source code of this file.

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (wldap32)
 
ULONG CDECL WLDAP32_ldap_abandon (WLDAP32_LDAP *ld, ULONG msgid)
 
ULONG CDECL ldap_check_filterA (WLDAP32_LDAP *ld, PCHAR filter)
 
ULONG CDECL ldap_check_filterW (WLDAP32_LDAP *ld, PWCHAR filter)
 
ULONG CDECL ldap_cleanup (HANDLE instance)
 
WLDAP32_LDAP *CDECL ldap_conn_from_msg (WLDAP32_LDAP *ld, WLDAP32_LDAPMessage *res)
 
ULONG CDECL WLDAP32_ldap_count_entries (WLDAP32_LDAP *ld, WLDAP32_LDAPMessage *res)
 
ULONG CDECL WLDAP32_ldap_count_references (WLDAP32_LDAP *ld, WLDAP32_LDAPMessage *res)
 
static ULONG get_escape_size (PCHAR src, ULONG srclen)
 
static void escape_filter_element (PCHAR src, ULONG srclen, PCHAR dst)
 
ULONG CDECL ldap_escape_filter_elementA (PCHAR src, ULONG srclen, PCHAR dst, ULONG dstlen)
 
ULONG CDECL ldap_escape_filter_elementW (PCHAR src, ULONG srclen, PWCHAR dst, ULONG dstlen)
 
PCHAR CDECL ldap_first_attributeA (WLDAP32_LDAP *ld, WLDAP32_LDAPMessage *entry, WLDAP32_BerElement **ptr)
 
PWCHAR CDECL ldap_first_attributeW (WLDAP32_LDAP *ld, WLDAP32_LDAPMessage *entry, WLDAP32_BerElement **ptr)
 
WLDAP32_LDAPMessage *CDECL WLDAP32_ldap_first_entry (WLDAP32_LDAP *ld, WLDAP32_LDAPMessage *res)
 
WLDAP32_LDAPMessage *CDECL WLDAP32_ldap_first_reference (WLDAP32_LDAP *ld, WLDAP32_LDAPMessage *res)
 
void CDECL ldap_memfreeA (PCHAR block)
 
void CDECL ldap_memfreeW (PWCHAR block)
 
ULONG CDECL WLDAP32_ldap_msgfree (WLDAP32_LDAPMessage *res)
 
PCHAR CDECL ldap_next_attributeA (WLDAP32_LDAP *ld, WLDAP32_LDAPMessage *entry, WLDAP32_BerElement *ptr)
 
PWCHAR CDECL ldap_next_attributeW (WLDAP32_LDAP *ld, WLDAP32_LDAPMessage *entry, WLDAP32_BerElement *ptr)
 
WLDAP32_LDAPMessage *CDECL WLDAP32_ldap_next_entry (WLDAP32_LDAP *ld, WLDAP32_LDAPMessage *entry)
 
WLDAP32_LDAPMessage *CDECL WLDAP32_ldap_next_reference (WLDAP32_LDAP *ld, WLDAP32_LDAPMessage *entry)
 
ULONG CDECL WLDAP32_ldap_result (WLDAP32_LDAP *ld, ULONG msgid, ULONG all, struct l_timeval *timeout, WLDAP32_LDAPMessage **res)
 
int CDECL LdapUnicodeToUTF8 (LPCWSTR src, int srclen, LPSTR dst, int dstlen)
 
int CDECL LdapUTF8ToUnicode (LPCSTR src, int srclen, LPWSTR dst, int dstlen)
 

Function Documentation

◆ escape_filter_element()

static void escape_filter_element ( PCHAR  src,
ULONG  srclen,
PCHAR  dst 
)
static

Definition at line 216 of file misc.c.

217{
218 ULONG i;
219 static const char fmt[] = "\\%02X";
220 char *d = dst;
221
222 for (i = 0; i < srclen; i++)
223 {
224 if ((src[i] >= '0' && src[i] <= '9') ||
225 (src[i] >= 'A' && src[i] <= 'Z') ||
226 (src[i] >= 'a' && src[i] <= 'z'))
227 *d++ = src[i];
228 else
229 d += sprintf( d, fmt, (unsigned char)src[i] );
230 }
231 *++d = 0;
232}
GLenum src
Definition: glext.h:6340
GLenum GLenum dst
Definition: glext.h:6340
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define d
Definition: ke_i.h:81
#define sprintf(buf, format,...)
Definition: sprintf.c:55
static DWORD LPDWORD LPCSTR DWORD srclen
Definition: directory.c:52
Definition: dsound.c:943
uint32_t ULONG
Definition: typedefs.h:59

Referenced by ldap_escape_filter_elementA().

◆ get_escape_size()

static ULONG get_escape_size ( PCHAR  src,
ULONG  srclen 
)
static

Definition at line 197 of file misc.c.

198{
199 ULONG i, size = 0;
200
201 if (src)
202 {
203 for (i = 0; i < srclen; i++)
204 {
205 if ((src[i] >= '0' && src[i] <= '9') ||
206 (src[i] >= 'A' && src[i] <= 'Z') ||
207 (src[i] >= 'a' && src[i] <= 'z'))
208 size++;
209 else
210 size += 3;
211 }
212 }
213 return size + 1;
214}
GLsizeiptr size
Definition: glext.h:5919

Referenced by ldap_escape_filter_elementA(), and ldap_escape_filter_elementW().

◆ ldap_check_filterA()

ULONG CDECL ldap_check_filterA ( WLDAP32_LDAP ld,
PCHAR  filter 
)

Definition at line 72 of file misc.c.

73{
74 ULONG ret;
75 WCHAR *filterW = NULL;
76
77 TRACE( "(%p, %s)\n", ld, debugstr_a(filter) );
78
79 if (!ld) return WLDAP32_LDAP_PARAM_ERROR;
80
81 if (filter) {
82 filterW = strAtoW( filter );
83 if (!filterW) return WLDAP32_LDAP_NO_MEMORY;
84 }
85
86 ret = ldap_check_filterW( ld, filterW );
87
88 strfreeW( filterW );
89 return ret;
90}
#define NULL
Definition: types.h:112
ULONG CDECL ldap_check_filterW(WLDAP32_LDAP *ld, PWCHAR filter)
Definition: misc.c:105
GLint GLint GLint GLint GLint GLint GLint GLbitfield GLenum filter
Definition: glext.h:7005
static LPWSTR strAtoW(const char *str)
#define debugstr_a
Definition: kernel32.h:31
#define TRACE(s)
Definition: solgame.cpp:4
int ret
@ WLDAP32_LDAP_PARAM_ERROR
@ WLDAP32_LDAP_NO_MEMORY
static void strfreeW(LPWSTR str)
Definition: wldap32.h:103
__wchar_t WCHAR
Definition: xmlstorage.h:180

◆ ldap_check_filterW()

ULONG CDECL ldap_check_filterW ( WLDAP32_LDAP ld,
PWCHAR  filter 
)

Definition at line 105 of file misc.c.

106{
107 TRACE( "(%p, %s)\n", ld, debugstr_w(filter) );
108
109 if (!ld) return WLDAP32_LDAP_PARAM_ERROR;
110 return WLDAP32_LDAP_SUCCESS; /* FIXME: do some checks */
111}
#define debugstr_w
Definition: kernel32.h:32
@ WLDAP32_LDAP_SUCCESS

Referenced by ldap_check_filterA().

◆ ldap_cleanup()

ULONG CDECL ldap_cleanup ( HANDLE  instance)

Definition at line 116 of file misc.c.

117{
118 TRACE( "(%p)\n", instance );
120}
static HINSTANCE instance
Definition: main.c:40

◆ ldap_conn_from_msg()

WLDAP32_LDAP *CDECL ldap_conn_from_msg ( WLDAP32_LDAP ld,
WLDAP32_LDAPMessage res 
)

Definition at line 135 of file misc.c.

136{
137 TRACE( "(%p, %p)\n", ld, res );
138
139 if (!ld || !res) return NULL;
140 return ld; /* FIXME: not always correct */
141}
GLuint res
Definition: glext.h:9613

◆ ldap_escape_filter_elementA()

ULONG CDECL ldap_escape_filter_elementA ( PCHAR  src,
ULONG  srclen,
PCHAR  dst,
ULONG  dstlen 
)

Definition at line 239 of file misc.c.

240{
241 ULONG len;
242
243 TRACE( "(%p, 0x%08x, %p, 0x%08x)\n", src, srclen, dst, dstlen );
244
246 if (!dst) return len;
247
248 if (!src || dstlen < len)
250 else
251 {
254 }
255}
static ULONG get_escape_size(PCHAR src, ULONG srclen)
Definition: misc.c:197
static void escape_filter_element(PCHAR src, ULONG srclen, PCHAR dst)
Definition: misc.c:216
GLenum GLsizei len
Definition: glext.h:6722
static DWORD dstlen
Definition: directory.c:51

◆ ldap_escape_filter_elementW()

ULONG CDECL ldap_escape_filter_elementW ( PCHAR  src,
ULONG  srclen,
PWCHAR  dst,
ULONG  dstlen 
)

Definition at line 272 of file misc.c.

273{
274 ULONG len;
275
276 TRACE( "(%p, 0x%08x, %p, 0x%08x)\n", src, srclen, dst, dstlen );
277
279 if (!dst) return len;
280
281 /* no matter what you throw at it, this is what native returns */
283}

◆ ldap_first_attributeA()

PCHAR CDECL ldap_first_attributeA ( WLDAP32_LDAP ld,
WLDAP32_LDAPMessage entry,
WLDAP32_BerElement **  ptr 
)

Definition at line 290 of file misc.c.

292{
293 PCHAR ret = NULL;
294#ifdef HAVE_LDAP
295 WCHAR *retW;
296
297 TRACE( "(%p, %p, %p)\n", ld, entry, ptr );
298
299 if (!ld || !entry) return NULL;
300 retW = ldap_first_attributeW( ld, entry, ptr );
301
302 ret = strWtoA( retW );
303 ldap_memfreeW( retW );
304
305#endif
306 return ret;
307}
PWCHAR CDECL ldap_first_attributeW(WLDAP32_LDAP *ld, WLDAP32_LDAPMessage *entry, WLDAP32_BerElement **ptr)
Definition: misc.c:326
void CDECL ldap_memfreeW(PWCHAR block)
Definition: misc.c:421
uint32_t entry
Definition: isohybrid.c:63
static PVOID ptr
Definition: dispmode.c:27
char * PCHAR
Definition: typedefs.h:51
static LPSTR strWtoA(LPCWSTR str)
Definition: wldap32.h:62

◆ ldap_first_attributeW()

PWCHAR CDECL ldap_first_attributeW ( WLDAP32_LDAP ld,
WLDAP32_LDAPMessage entry,
WLDAP32_BerElement **  ptr 
)

Definition at line 326 of file misc.c.

328{
329 PWCHAR ret = NULL;
330#ifdef HAVE_LDAP
331 char *retU;
332
333 TRACE( "(%p, %p, %p)\n", ld, entry, ptr );
334
335 if (!ld || !entry) return NULL;
336 retU = ldap_first_attribute( ld, entry, ptr );
337
338 ret = strUtoW( retU );
339 ldap_memfree( retU );
340
341#endif
342 return ret;
343}
uint16_t * PWCHAR
Definition: typedefs.h:56
#define ldap_first_attribute
Definition: winldap.h:668
#define ldap_memfree
Definition: winldap.h:688
static LPWSTR strUtoW(char *str)
Definition: wldap32.h:86

Referenced by ldap_first_attributeA().

◆ ldap_memfreeA()

void CDECL ldap_memfreeA ( PCHAR  block)

Definition at line 407 of file misc.c.

408{
409 TRACE( "(%p)\n", block );
410 strfreeA( block );
411}
static void strfreeA(LPSTR str)
Definition: wldap32.h:98
static unsigned int block
Definition: xmlmemory.c:101

◆ ldap_memfreeW()

◆ ldap_next_attributeA()

PCHAR CDECL ldap_next_attributeA ( WLDAP32_LDAP ld,
WLDAP32_LDAPMessage entry,
WLDAP32_BerElement ptr 
)

Definition at line 452 of file misc.c.

454{
455 PCHAR ret = NULL;
456#ifdef HAVE_LDAP
457 WCHAR *retW;
458
459 TRACE( "(%p, %p, %p)\n", ld, entry, ptr );
460
461 if (!ld || !entry || !ptr) return NULL;
462 retW = ldap_next_attributeW( ld, entry, ptr );
463
464 ret = strWtoA( retW );
465 ldap_memfreeW( retW );
466
467#endif
468 return ret;
469}
PWCHAR CDECL ldap_next_attributeW(WLDAP32_LDAP *ld, WLDAP32_LDAPMessage *entry, WLDAP32_BerElement *ptr)
Definition: misc.c:489

◆ ldap_next_attributeW()

PWCHAR CDECL ldap_next_attributeW ( WLDAP32_LDAP ld,
WLDAP32_LDAPMessage entry,
WLDAP32_BerElement ptr 
)

Definition at line 489 of file misc.c.

491{
492 PWCHAR ret = NULL;
493#ifdef HAVE_LDAP
494 char *retU;
495
496 TRACE( "(%p, %p, %p)\n", ld, entry, ptr );
497
498 if (!ld || !entry || !ptr) return NULL;
499 retU = ldap_next_attribute( ld, entry, ptr );
500
501 ret = strUtoW( retU );
502 ldap_memfree( retU );
503
504#endif
505 return ret;
506}
#define ldap_next_attribute
Definition: winldap.h:669

Referenced by ldap_next_attributeA().

◆ LdapUnicodeToUTF8()

int CDECL LdapUnicodeToUTF8 ( LPCWSTR  src,
int  srclen,
LPSTR  dst,
int  dstlen 
)

Definition at line 636 of file misc.c.

637{
639}
#define WideCharToMultiByte
Definition: compat.h:111
#define CP_UTF8
Definition: nls.h:20

◆ LdapUTF8ToUnicode()

int CDECL LdapUTF8ToUnicode ( LPCSTR  src,
int  srclen,
LPWSTR  dst,
int  dstlen 
)

Definition at line 658 of file misc.c.

659{
661}
#define MultiByteToWideChar
Definition: compat.h:110

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( wldap32  )

◆ WLDAP32_ldap_abandon()

ULONG CDECL WLDAP32_ldap_abandon ( WLDAP32_LDAP ld,
ULONG  msgid 
)

Definition at line 53 of file misc.c.

54{
56#ifdef HAVE_LDAP
57
58 TRACE( "(%p, 0x%08x)\n", ld, msgid );
59
60 if (!ld) return ~0u;
61 ret = map_error( ldap_abandon_ext( ld, msgid, NULL, NULL ));
62
63#endif
64 return ret;
65}
static UINT map_error(DWORD error)
Definition: service.c:35
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
Definition: glfuncs.h:240
@ WLDAP32_LDAP_NOT_SUPPORTED

◆ WLDAP32_ldap_count_entries()

ULONG CDECL WLDAP32_ldap_count_entries ( WLDAP32_LDAP ld,
WLDAP32_LDAPMessage res 
)

Definition at line 156 of file misc.c.

157{
159#ifdef HAVE_LDAP
160
161 TRACE( "(%p, %p)\n", ld, res );
162
163 if (!ld) return ~0u;
164 ret = ldap_count_entries( ld, res );
165
166#endif
167 return ret;
168}
WINLDAPAPI ULONG ldap_count_entries(LDAP *, LDAPMessage *)

◆ WLDAP32_ldap_count_references()

ULONG CDECL WLDAP32_ldap_count_references ( WLDAP32_LDAP ld,
WLDAP32_LDAPMessage res 
)

Definition at line 183 of file misc.c.

184{
186#ifdef HAVE_LDAP_COUNT_REFERENCES
187
188 TRACE( "(%p, %p)\n", ld, res );
189
190 if (!ld) return 0;
192
193#endif
194 return ret;
195}
WINLDAPAPI ULONG ldap_count_references(LDAP *, LDAPMessage *)

◆ WLDAP32_ldap_first_entry()

WLDAP32_LDAPMessage *CDECL WLDAP32_ldap_first_entry ( WLDAP32_LDAP ld,
WLDAP32_LDAPMessage res 
)

Definition at line 361 of file misc.c.

362{
363#ifdef HAVE_LDAP
364
365 TRACE( "(%p, %p)\n", ld, res );
366
367 if (!ld || !res) return NULL;
368 return ldap_first_entry( ld, res );
369
370#else
371 return NULL;
372#endif
373}
WINLDAPAPI PLDAPMessage ldap_first_entry(LDAP *, LDAPMessage *)

◆ WLDAP32_ldap_first_reference()

WLDAP32_LDAPMessage *CDECL WLDAP32_ldap_first_reference ( WLDAP32_LDAP ld,
WLDAP32_LDAPMessage res 
)

Definition at line 388 of file misc.c.

389{
390#ifdef HAVE_LDAP_FIRST_REFERENCE
391
392 TRACE( "(%p, %p)\n", ld, res );
393
394 if (!ld) return NULL;
395 return ldap_first_reference( ld, res );
396
397#else
398 return NULL;
399#endif
400}
WINLDAPAPI PLDAPMessage ldap_first_reference(LDAP *, LDAPMessage *)

◆ WLDAP32_ldap_msgfree()

ULONG CDECL WLDAP32_ldap_msgfree ( WLDAP32_LDAPMessage res)

Definition at line 435 of file misc.c.

436{
438#ifdef HAVE_LDAP
439
440 TRACE( "(%p)\n", res );
441 ldap_msgfree( res );
442
443#endif
444 return ret;
445}
WINLDAPAPI ULONG ldap_msgfree(LDAPMessage *)

◆ WLDAP32_ldap_next_entry()

WLDAP32_LDAPMessage *CDECL WLDAP32_ldap_next_entry ( WLDAP32_LDAP ld,
WLDAP32_LDAPMessage entry 
)

Definition at line 524 of file misc.c.

525{
526#ifdef HAVE_LDAP
527
528 TRACE( "(%p, %p)\n", ld, entry );
529
530 if (!ld || !entry) return NULL;
531 return ldap_next_entry( ld, entry );
532
533#else
534 return NULL;
535#endif
536}
WINLDAPAPI PLDAPMessage ldap_next_entry(LDAP *, LDAPMessage *)

◆ WLDAP32_ldap_next_reference()

WLDAP32_LDAPMessage *CDECL WLDAP32_ldap_next_reference ( WLDAP32_LDAP ld,
WLDAP32_LDAPMessage entry 
)

Definition at line 554 of file misc.c.

555{
556#ifdef HAVE_LDAP_NEXT_REFERENCE
557
558 TRACE( "(%p, %p)\n", ld, entry );
559
560 if (!ld || !entry) return NULL;
561 return ldap_next_reference( ld, entry );
562
563#else
564 return NULL;
565#endif
566}
WINLDAPAPI PLDAPMessage ldap_next_reference(LDAP *, LDAPMessage *)

◆ WLDAP32_ldap_result()

ULONG CDECL WLDAP32_ldap_result ( WLDAP32_LDAP ld,
ULONG  msgid,
ULONG  all,
struct l_timeval timeout,
WLDAP32_LDAPMessage **  res 
)

Definition at line 604 of file misc.c.

606{
608#ifdef HAVE_LDAP
609
610 TRACE( "(%p, 0x%08x, 0x%08x, %p, %p)\n", ld, msgid, all, timeout, res );
611
612 if (!ld || !res || msgid == ~0u) return ~0u;
613 ret = ldap_result( ld, msgid, all, (struct timeval *)timeout, res );
614
615#endif
616 return ret;
617}
Definition: dhcpd.h:245
WINLDAPAPI ULONG ldap_result(LDAP *, ULONG, ULONG, struct l_timeval *, LDAPMessage **)