wine/dlls/wldap32 wldap32.spec winldap_private ...

Alexandre Julliard julliard at wine.codeweavers.com
Mon Nov 21 07:33:37 CST 2005


ChangeSet ID:	21366
CVSROOT:	/opt/cvs-commit
Module name:	wine
Changes by:	julliard at winehq.org	2005/11/21 07:33:37

Modified files:
	dlls/wldap32   : wldap32.spec winldap_private.h control.c 

Log message:
	Hans Leidekker <hans at it.vu.nl>
	Implement ldap_create_vlv_control{A,W},
	ldap_encode_sort_control{A,W}.
	Add a stub for ldap_create_page_control{A,W}.

Patch: http://cvs.winehq.org/patch.py?id=21366

Old revision  New revision  Changes     Path
 1.29          1.30          +7 -7       wine/dlls/wldap32/wldap32.spec
 1.30          1.31          +16 -0      wine/dlls/wldap32/winldap_private.h
 1.2           1.3           +68 -0      wine/dlls/wldap32/control.c

Index: wine/dlls/wldap32/wldap32.spec
diff -u -p wine/dlls/wldap32/wldap32.spec:1.29 wine/dlls/wldap32/wldap32.spec:1.30
--- wine/dlls/wldap32/wldap32.spec:1.29	21 Nov 2005 13:33:37 -0000
+++ wine/dlls/wldap32/wldap32.spec	21 Nov 2005 13:33:37 -0000
@@ -85,9 +85,9 @@
  95 cdecl ldap_count_references(ptr ptr) WLDAP32_ldap_count_references
  96 cdecl ldap_count_valuesA(ptr)
  97 cdecl ldap_count_valuesW(ptr)
- 98 stub ldap_create_page_control
- 99 stub ldap_create_page_controlA
-100 stub ldap_create_page_controlW
+ 98 cdecl ldap_create_page_control(ptr long ptr long ptr) ldap_create_page_controlA
+ 99 cdecl ldap_create_page_controlA(ptr long ptr long ptr)
+100 cdecl ldap_create_page_controlW(ptr long ptr long ptr)
 101 cdecl ldap_create_sort_control(ptr ptr long ptr) ldap_create_sort_controlA
 102 cdecl ldap_create_sort_controlA(ptr ptr long ptr)
 103 cdecl ldap_create_sort_controlW(ptr ptr long ptr)
@@ -102,8 +102,8 @@
 112 cdecl ldap_delete_sA(ptr str)
 113 cdecl ldap_delete_sW(ptr wstr)
 114 cdecl ldap_dn2ufnW(wstr)
-115 stub ldap_encode_sort_controlA
-116 stub ldap_encode_sort_controlW
+115 cdecl ldap_encode_sort_controlA(ptr ptr ptr long)
+116 cdecl ldap_encode_sort_controlW(ptr ptr ptr long)
 117 cdecl ldap_err2stringA(long)
 118 cdecl ldap_err2stringW(long)
 119 cdecl ldap_escape_filter_elementA(str long ptr long)
@@ -234,8 +234,8 @@
 316 cdecl ldap_sasl_bind_sA(ptr str str ptr ptr ptr ptr)
 317 stub ldap_parse_extended_resultW
 318 stub ldap_parse_extended_resultA
-319 stub ldap_create_vlv_controlW
-320 stub ldap_create_vlv_controlA
+319 cdecl ldap_create_vlv_controlW(ptr ptr long ptr)
+320 cdecl ldap_create_vlv_controlA(ptr ptr long ptr)
 321 stub ldap_parse_vlv_controlW
 322 stub ldap_parse_vlv_controlA
 329 cdecl ldap_start_tls_sW(ptr ptr ptr ptr ptr)
Index: wine/dlls/wldap32/winldap_private.h
diff -u -p wine/dlls/wldap32/winldap_private.h:1.30 wine/dlls/wldap32/winldap_private.h:1.31
--- wine/dlls/wldap32/winldap_private.h:1.30	21 Nov 2005 13:33:37 -0000
+++ wine/dlls/wldap32/winldap_private.h	21 Nov 2005 13:33:37 -0000
@@ -187,6 +187,18 @@ typedef struct ldapcontrolW
     BOOLEAN ldctl_iscritical;
 } LDAPControlW, *PLDAPControlW;
 
+typedef struct WLDAP32_ldapvlvinfo
+{
+    int ldvlv_version;
+    ULONG ldvlv_before_count;
+    ULONG ldvlv_after_count;
+    ULONG ldvlv_offset;
+    ULONG ldvlv_count;
+    PBERVAL ldvlv_attrvalue;
+    PBERVAL ldvlv_context;
+    VOID *ldvlv_extradata;
+} WLDAP32_LDAPVLVInfo, *WLDAP32_PLDAPVLVInfo;
+
 typedef struct ldapsearch LDAPSearch, *PLDAPSearch;
 
 typedef struct ldapsortkeyA
@@ -275,8 +287,12 @@ ULONG WLDAP32_ldap_count_references(WLDA
 ULONG ldap_count_valuesA(PCHAR*);
 ULONG ldap_count_valuesW(PWCHAR*);
 ULONG WLDAP32_ldap_count_values_len(PBERVAL*);
+ULONG ldap_create_page_controlA(WLDAP32_PLDAP,ULONG,struct WLDAP32_berval*,UCHAR,PLDAPControlA*);
+ULONG ldap_create_page_controlW(WLDAP32_PLDAP,ULONG,struct WLDAP32_berval*,UCHAR,PLDAPControlW*);
 ULONG ldap_create_sort_controlA(WLDAP32_PLDAP,PLDAPSortKeyA*,UCHAR,PLDAPControlA*);
 ULONG ldap_create_sort_controlW(WLDAP32_PLDAP,PLDAPSortKeyW*,UCHAR,PLDAPControlW*);
+INT ldap_create_vlv_controlA(WLDAP32_LDAP*,WLDAP32_LDAPVLVInfo*,char,LDAPControlA**);
+INT ldap_create_vlv_controlW(WLDAP32_LDAP*,WLDAP32_LDAPVLVInfo*,char,LDAPControlW**);
 ULONG ldap_deleteA(WLDAP32_LDAP*,PCHAR);
 ULONG ldap_deleteW(WLDAP32_LDAP*,PWCHAR);
 ULONG ldap_delete_extA(WLDAP32_LDAP*,PCHAR,PLDAPControlA*,PLDAPControlA*,ULONG*);
Index: wine/dlls/wldap32/control.c
diff -u -p wine/dlls/wldap32/control.c:1.2 wine/dlls/wldap32/control.c:1.3
--- wine/dlls/wldap32/control.c:1.2	21 Nov 2005 13:33:37 -0000
+++ wine/dlls/wldap32/control.c	21 Nov 2005 13:33:37 -0000
@@ -89,6 +89,22 @@ ULONG ldap_controls_freeW( LDAPControlW 
     return ret;
 }
 
+ULONG ldap_create_page_controlA( WLDAP32_LDAP *ld, ULONG pagesize,
+    struct WLDAP32_berval *cookie, UCHAR critical, PLDAPControlA *control )
+{
+    FIXME( "(%p, 0x%08lx, %p, 0x%02x, %p)\n", ld, pagesize, cookie,
+           critical, control );
+    return LDAP_NOT_SUPPORTED;
+}
+
+ULONG ldap_create_page_controlW( WLDAP32_LDAP *ld, ULONG pagesize,
+    struct WLDAP32_berval *cookie, UCHAR critical, PLDAPControlW *control )
+{
+    FIXME( "(%p, 0x%08lx, %p, 0x%02x, %p)\n", ld, pagesize, cookie,
+           critical, control );
+    return LDAP_NOT_SUPPORTED;
+}
+
 ULONG ldap_create_sort_controlA( WLDAP32_LDAP *ld, PLDAPSortKeyA *sortkey,
     UCHAR critical, PLDAPControlA *control )
 {
@@ -145,6 +161,58 @@ ULONG ldap_create_sort_controlW( WLDAP32
     return ret;
 }
 
+INT ldap_create_vlv_controlA( WLDAP32_LDAP *ld, WLDAP32_LDAPVLVInfo *info,
+    char critical, LDAPControlA **control )
+{
+    INT ret = LDAP_NOT_SUPPORTED;
+#ifdef HAVE_LDAP
+    LDAPControlW **controlW = NULL;
+
+    TRACE( "(%p, %p, 0x%02x, %p)\n", ld, info, critical, control );
+
+    if (!ld) return ~0UL;
+
+    ret = ldap_create_vlv_controlW( ld, info, critical, controlW );
+
+    *control = controlWtoA( *controlW );
+    ldap_control_freeW( *controlW );
+
+#endif
+    return ret;
+}
+
+INT ldap_create_vlv_controlW( WLDAP32_LDAP *ld, WLDAP32_LDAPVLVInfo *info,
+    char critical, LDAPControlW **control )
+{
+    INT ret = LDAP_NOT_SUPPORTED;
+#ifdef HAVE_LDAP
+    LDAPControl **controlU = NULL;
+
+    TRACE( "(%p, %p, 0x%02x, %p)\n", ld, info, critical, control );
+
+    if (!ld) return ~0UL;
+
+    ret = ldap_create_vlv_control( ld, (LDAPVLVInfo *)info, controlU );
+
+    *control = controlUtoW( *controlU );
+    ldap_control_free( *controlU );
+
+#endif
+    return ret;
+}
+
+ULONG ldap_encode_sort_controlA( WLDAP32_LDAP *ld, PLDAPSortKeyA *sortkeys,
+    PLDAPControlA control, BOOLEAN critical )
+{
+    return ldap_create_sort_controlA( ld, sortkeys, critical, &control );
+}
+
+ULONG ldap_encode_sort_controlW( WLDAP32_LDAP *ld, PLDAPSortKeyW *sortkeys,
+    PLDAPControlW control, BOOLEAN critical )
+{
+    return ldap_create_sort_controlW( ld, sortkeys, critical, &control );
+}
+
 ULONG ldap_free_controlsA( LDAPControlA **controls )
 {
     return ldap_controls_freeA( controls );



More information about the wine-cvs mailing list