Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
009485b4
Commit
009485b4
authored
Aug 10, 2005
by
Hans Leidekker
Committed by
Alexandre Julliard
Aug 10, 2005
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add helpers for converting (arrays of) LDAPMod structures into
different encodings.
parent
6b1670c7
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
166 additions
and
0 deletions
+166
-0
winldap_private.h
dlls/wldap32/winldap_private.h
+38
-0
wldap32.h
dlls/wldap32/wldap32.h
+128
-0
No files found.
dlls/wldap32/winldap_private.h
View file @
009485b4
...
...
@@ -108,6 +108,24 @@ typedef struct ldap
ULONG
ld_options
;
}
WLDAP32_LDAP
,
*
WLDAP32_PLDAP
;
typedef
struct
ldapmodA
{
ULONG
mod_op
;
PCHAR
mod_type
;
union
{
PCHAR
*
modv_strvals
;
struct
berval
**
modv_bvals
;
}
mod_vals
;
}
LDAPModA
,
*
PLDAPModA
;
typedef
struct
ldapmodW
{
ULONG
mod_op
;
PWCHAR
mod_type
;
union
{
PWCHAR
*
modv_strvals
;
struct
berval
**
modv_bvals
;
}
mod_vals
;
}
LDAPModW
,
*
PLDAPModW
;
typedef
struct
l_timeval
{
LONG
tv_sec
;
...
...
@@ -134,6 +152,16 @@ typedef struct ldapmsg
BOOLEAN
ConnectionReferenced
;
}
WLDAP32_LDAPMessage
,
*
WLDAP32_PLDAPMessage
;
#define LAPI_MAJOR_VER1 1
#define LAPI_MINOR_VER1 1
typedef
struct
ldap_version_info
{
ULONG
lv_size
;
ULONG
lv_major
;
ULONG
lv_minor
;
}
LDAP_VERSION_INFO
,
*
PLDAP_VERSION_INFO
;
typedef
struct
WLDAP32_berval
{
ULONG
bv_len
;
...
...
@@ -154,6 +182,8 @@ typedef struct ldapcontrolW
BOOLEAN
ldctl_iscritical
;
}
LDAPControlW
,
*
PLDAPControlW
;
typedef
struct
ldapsearch
LDAPSearch
,
*
PLDAPSearch
;
typedef
struct
ldapsortkeyA
{
PCHAR
sk_attrtype
;
...
...
@@ -202,6 +232,14 @@ typedef struct ldap_apifeature_infoW
int
ldapaif_version
;
}
LDAPAPIFeatureInfoW
;
ULONG
ldap_addA
(
WLDAP32_LDAP
*
,
PCHAR
,
LDAPModA
*
[]);
ULONG
ldap_addW
(
WLDAP32_LDAP
*
,
PWCHAR
,
LDAPModW
*
[]);
ULONG
ldap_add_extA
(
WLDAP32_LDAP
*
,
PCHAR
,
LDAPModA
*
[],
PLDAPControlA
*
,
PLDAPControlA
*
,
ULONG
*
);
ULONG
ldap_add_extW
(
WLDAP32_LDAP
*
,
PWCHAR
,
LDAPModW
*
[],
PLDAPControlW
*
,
PLDAPControlW
*
,
ULONG
*
);
ULONG
ldap_add_ext_sA
(
WLDAP32_LDAP
*
,
PCHAR
,
LDAPModA
*
[],
PLDAPControlA
*
,
PLDAPControlA
*
);
ULONG
ldap_add_ext_sW
(
WLDAP32_LDAP
*
,
PWCHAR
,
LDAPModW
*
[],
PLDAPControlW
*
,
PLDAPControlW
*
);
ULONG
ldap_add_sA
(
WLDAP32_LDAP
*
,
PCHAR
,
LDAPModA
*
[]);
ULONG
ldap_add_sW
(
WLDAP32_LDAP
*
,
PWCHAR
,
LDAPModW
*
[]);
ULONG
ldap_bindA
(
WLDAP32_LDAP
*
,
PCHAR
,
PCHAR
,
ULONG
);
ULONG
ldap_bindW
(
WLDAP32_LDAP
*
,
PWCHAR
,
PWCHAR
,
ULONG
);
ULONG
ldap_bind_sA
(
WLDAP32_LDAP
*
,
PCHAR
,
PCHAR
,
ULONG
);
...
...
dlls/wldap32/wldap32.h
View file @
009485b4
...
...
@@ -226,6 +226,134 @@ static inline void strarrayfreeU( char **strarray )
#ifdef HAVE_LDAP
static
inline
LDAPModW
*
modAtoW
(
LDAPModA
*
mod
)
{
LDAPModW
*
modW
;
modW
=
HeapAlloc
(
GetProcessHeap
(),
0
,
sizeof
(
LDAPModW
)
);
if
(
modW
)
{
modW
->
mod_op
=
mod
->
mod_op
;
modW
->
mod_type
=
strAtoW
(
mod
->
mod_type
);
if
(
mod
->
mod_op
&
LDAP_MOD_BVALUES
)
modW
->
mod_vals
.
modv_bvals
=
mod
->
mod_vals
.
modv_bvals
;
else
modW
->
mod_vals
.
modv_strvals
=
strarrayAtoW
(
mod
->
mod_vals
.
modv_strvals
);
}
return
modW
;
}
static
inline
LDAPMod
*
modWtoU
(
LDAPModW
*
mod
)
{
LDAPMod
*
modU
;
modU
=
HeapAlloc
(
GetProcessHeap
(),
0
,
sizeof
(
LDAPMod
)
);
if
(
modU
)
{
modU
->
mod_op
=
mod
->
mod_op
;
modU
->
mod_type
=
strWtoU
(
mod
->
mod_type
);
if
(
mod
->
mod_op
&
LDAP_MOD_BVALUES
)
modU
->
mod_vals
.
modv_bvals
=
mod
->
mod_vals
.
modv_bvals
;
else
modU
->
mod_vals
.
modv_strvals
=
strarrayWtoU
(
mod
->
mod_vals
.
modv_strvals
);
}
return
modU
;
}
static
inline
void
modfreeW
(
LDAPModW
*
mod
)
{
if
(
!
(
mod
->
mod_op
&
LDAP_MOD_BVALUES
))
strarrayfreeW
(
mod
->
mod_vals
.
modv_strvals
);
HeapFree
(
GetProcessHeap
(),
0
,
mod
);
}
static
inline
void
modfreeU
(
LDAPMod
*
mod
)
{
if
(
!
(
mod
->
mod_op
&
LDAP_MOD_BVALUES
))
strarrayfreeU
(
mod
->
mod_vals
.
modv_strvals
);
HeapFree
(
GetProcessHeap
(),
0
,
mod
);
}
static
inline
DWORD
modarraylenA
(
LDAPModA
**
modarray
)
{
LDAPModA
**
p
=
modarray
;
while
(
*
p
)
p
++
;
return
p
-
modarray
;
}
static
inline
DWORD
modarraylenW
(
LDAPModW
**
modarray
)
{
LDAPModW
**
p
=
modarray
;
while
(
*
p
)
p
++
;
return
p
-
modarray
;
}
static
inline
LDAPModW
**
modarrayAtoW
(
LDAPModA
**
modarray
)
{
LDAPModW
**
modarrayW
=
NULL
;
DWORD
size
;
if
(
modarray
)
{
size
=
sizeof
(
LDAPModW
*
)
*
(
modarraylenA
(
modarray
)
+
1
);
modarrayW
=
HeapAlloc
(
GetProcessHeap
(),
0
,
size
);
if
(
modarrayW
)
{
LDAPModA
**
p
=
modarray
;
LDAPModW
**
q
=
modarrayW
;
while
(
*
p
)
*
q
++
=
modAtoW
(
*
p
++
);
*
q
=
NULL
;
}
}
return
modarrayW
;
}
static
inline
LDAPMod
**
modarrayWtoU
(
LDAPModW
**
modarray
)
{
LDAPMod
**
modarrayU
=
NULL
;
DWORD
size
;
if
(
modarray
)
{
size
=
sizeof
(
LDAPMod
*
)
*
(
modarraylenW
(
modarray
)
+
1
);
modarrayU
=
HeapAlloc
(
GetProcessHeap
(),
0
,
size
);
if
(
modarrayU
)
{
LDAPModW
**
p
=
modarray
;
LDAPMod
**
q
=
modarrayU
;
while
(
*
p
)
*
q
++
=
modWtoU
(
*
p
++
);
*
q
=
NULL
;
}
}
return
modarrayU
;
}
static
inline
void
modarrayfreeW
(
LDAPModW
**
modarray
)
{
if
(
modarray
)
{
LDAPModW
**
p
=
modarray
;
while
(
*
p
)
modfreeW
(
*
p
++
);
HeapFree
(
GetProcessHeap
(),
0
,
modarray
);
}
}
static
inline
void
modarrayfreeU
(
LDAPMod
**
modarray
)
{
if
(
modarray
)
{
LDAPMod
**
p
=
modarray
;
while
(
*
p
)
modfreeU
(
*
p
++
);
HeapFree
(
GetProcessHeap
(),
0
,
modarray
);
}
}
static
inline
LDAPControlW
*
controlAtoW
(
LDAPControlA
*
control
)
{
LDAPControlW
*
controlW
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment