wldap32: Added a wrapper for ber_printf.
This commit is contained in:
parent
e048a204c1
commit
7a1fb2ecb4
|
@ -24,6 +24,9 @@
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
#include "winldap.h"
|
#include "winldap.h"
|
||||||
|
#include "wine/debug.h"
|
||||||
|
|
||||||
|
WINE_DEFAULT_DEBUG_CHANNEL(wldap32);
|
||||||
|
|
||||||
#ifndef LBER_ERROR
|
#ifndef LBER_ERROR
|
||||||
# define LBER_ERROR (~0U)
|
# define LBER_ERROR (~0U)
|
||||||
|
@ -166,13 +169,87 @@ ULONG WLDAP32_ber_skip_tag( BerElement *berelement, ULONG *len )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifndef HAVE_LDAP
|
/***********************************************************************
|
||||||
|
* ber_printf (WLDAP32.@)
|
||||||
INT ber_printf( BerElement *berelement, PCHAR fmt, ... )
|
*/
|
||||||
|
INT WLDAP32_ber_printf( BerElement *berelement, PCHAR fmt, ... )
|
||||||
{
|
{
|
||||||
|
#ifdef HAVE_LDAP
|
||||||
|
va_list list;
|
||||||
|
int ret = 0;
|
||||||
|
char new_fmt[2];
|
||||||
|
|
||||||
|
new_fmt[1] = 0;
|
||||||
|
va_start( list, fmt );
|
||||||
|
while (*fmt)
|
||||||
|
{
|
||||||
|
new_fmt[0] = *fmt++;
|
||||||
|
switch(new_fmt[0])
|
||||||
|
{
|
||||||
|
case 'b':
|
||||||
|
case 'e':
|
||||||
|
case 'i':
|
||||||
|
{
|
||||||
|
int i = va_arg( list, int );
|
||||||
|
ret = ber_printf( berelement, new_fmt, i );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'o':
|
||||||
|
case 's':
|
||||||
|
{
|
||||||
|
char *str = va_arg( list, char * );
|
||||||
|
ret = ber_printf( berelement, new_fmt, str );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 't':
|
||||||
|
{
|
||||||
|
unsigned int tag = va_arg( list, unsigned int );
|
||||||
|
ret = ber_printf( berelement, new_fmt, tag );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'v':
|
||||||
|
{
|
||||||
|
char **array = va_arg( list, char ** );
|
||||||
|
ret = ber_printf( berelement, new_fmt, array );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'V':
|
||||||
|
{
|
||||||
|
struct berval **array = va_arg( list, struct berval ** );
|
||||||
|
ret = ber_printf( berelement, new_fmt, array );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'X':
|
||||||
|
{
|
||||||
|
char *str = va_arg( list, char * );
|
||||||
|
int len = va_arg( list, int );
|
||||||
|
ret = ber_printf( berelement, "B" /* 'X' is deprecated */, str, len );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'n':
|
||||||
|
case '{':
|
||||||
|
case '}':
|
||||||
|
case '[':
|
||||||
|
case ']':
|
||||||
|
ret = ber_printf( berelement, new_fmt );
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
FIXME( "Unknown format '%c'\n", new_fmt[0] );
|
||||||
|
ret = -1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (ret == -1) break;
|
||||||
|
}
|
||||||
|
va_end( list );
|
||||||
|
return ret;
|
||||||
|
#else
|
||||||
return LBER_ERROR;
|
return LBER_ERROR;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef HAVE_LDAP
|
||||||
|
|
||||||
INT ber_scanf( BerElement *berelement, PCHAR fmt, ... )
|
INT ber_scanf( BerElement *berelement, PCHAR fmt, ... )
|
||||||
{
|
{
|
||||||
return LBER_ERROR;
|
return LBER_ERROR;
|
||||||
|
|
|
@ -225,7 +225,7 @@
|
||||||
307 cdecl ber_first_element(ptr ptr ptr) WLDAP32_ber_first_element
|
307 cdecl ber_first_element(ptr ptr ptr) WLDAP32_ber_first_element
|
||||||
308 cdecl ber_next_element(ptr ptr ptr) WLDAP32_ber_next_element
|
308 cdecl ber_next_element(ptr ptr ptr) WLDAP32_ber_next_element
|
||||||
309 cdecl ber_flatten(ptr ptr) WLDAP32_ber_flatten
|
309 cdecl ber_flatten(ptr ptr) WLDAP32_ber_flatten
|
||||||
310 varargs ber_printf(ptr str)
|
310 varargs ber_printf(ptr str) WLDAP32_ber_printf
|
||||||
311 varargs ber_scanf(ptr str)
|
311 varargs ber_scanf(ptr str)
|
||||||
312 cdecl ldap_conn_from_msg(ptr ptr)
|
312 cdecl ldap_conn_from_msg(ptr ptr)
|
||||||
313 cdecl ldap_sasl_bindW(ptr wstr wstr ptr ptr ptr ptr)
|
313 cdecl ldap_sasl_bindW(ptr wstr wstr ptr ptr ptr ptr)
|
||||||
|
|
Loading…
Reference in New Issue