158 lines
4.1 KiB
C
158 lines
4.1 KiB
C
/*++
|
|
|
|
Copyright (c) 2001 Microsoft Corporation
|
|
|
|
Module Name:
|
|
frssup.h
|
|
|
|
Abstract:
|
|
Collection of functions used by ntfrsapi and other frs tools.
|
|
An attempt to reduce duplication of code.
|
|
|
|
|
|
Author:
|
|
Sudarshan Chitre 20-Mar-2001
|
|
|
|
Environment
|
|
User mode winnt
|
|
|
|
--*/
|
|
|
|
typedef struct _FRS_LDAP_SEARCH_CONTEXT {
|
|
|
|
ULONG EntriesInPage; // Number of entries in the current page.
|
|
ULONG CurrentEntry; // Location of the pointer into the page.
|
|
LDAPMessage * LdapMsg; // Returned from ldap_search_ext_s()
|
|
LDAPMessage * CurrentLdapMsg; // Current entry from current page.
|
|
PWCHAR Filter; // Filter to add to the DS query.
|
|
PWCHAR BaseDn; // Dn to start the query from.
|
|
DWORD Scope; // Scope of the search.
|
|
PWCHAR * Attrs; // Attributes requested by the search.
|
|
|
|
} FRS_LDAP_SEARCH_CONTEXT, *PFRS_LDAP_SEARCH_CONTEXT;
|
|
|
|
#define MK_ATTRS_1(_attr_, _a1) \
|
|
_attr_[0] = _a1; _attr_[1] = NULL;
|
|
|
|
#define MK_ATTRS_2(_attr_, _a1, _a2) \
|
|
_attr_[0] = _a1; _attr_[1] = _a2; _attr_[2] = NULL;
|
|
|
|
#define MK_ATTRS_3(_attr_, _a1, _a2, _a3) \
|
|
_attr_[0] = _a1; _attr_[1] = _a2; _attr_[2] = _a3; _attr_[3] = NULL;
|
|
|
|
#define MK_ATTRS_4(_attr_, _a1, _a2, _a3, _a4) \
|
|
_attr_[0] = _a1; _attr_[1] = _a2; _attr_[2] = _a3; _attr_[3] = _a4; \
|
|
_attr_[4] = NULL;
|
|
|
|
#define MK_ATTRS_5(_attr_, _a1, _a2, _a3, _a4, _a5) \
|
|
_attr_[0] = _a1; _attr_[1] = _a2; _attr_[2] = _a3; _attr_[3] = _a4; \
|
|
_attr_[4] = _a5; _attr_[5] = NULL;
|
|
|
|
#define MK_ATTRS_6(_attr_, _a1, _a2, _a3, _a4, _a5, _a6) \
|
|
_attr_[0] = _a1; _attr_[1] = _a2; _attr_[2] = _a3; _attr_[3] = _a4; \
|
|
_attr_[4] = _a5; _attr_[5] = _a6; _attr_[6] = NULL;
|
|
|
|
#define MK_ATTRS_7(_attr_, _a1, _a2, _a3, _a4, _a5, _a6, _a7) \
|
|
_attr_[0] = _a1; _attr_[1] = _a2; _attr_[2] = _a3; _attr_[3] = _a4; \
|
|
_attr_[4] = _a5; _attr_[5] = _a6; _attr_[6] = _a7; _attr_[7] = NULL;
|
|
|
|
#define MK_ATTRS_8(_attr_, _a1, _a2, _a3, _a4, _a5, _a6, _a7, _a8) \
|
|
_attr_[0] = _a1; _attr_[1] = _a2; _attr_[2] = _a3; _attr_[3] = _a4; \
|
|
_attr_[4] = _a5; _attr_[5] = _a6; _attr_[6] = _a7; _attr_[7] = _a8; \
|
|
_attr_[8] = NULL;
|
|
|
|
#define FRS_SUP_FREE(_x_) { if (_x_) { free(_x_); (_x_) = NULL; } }
|
|
|
|
|
|
DWORD
|
|
FrsSupBindToDC (
|
|
IN PWCHAR pszDC,
|
|
IN PSEC_WINNT_AUTH_IDENTITY_W pCreds,
|
|
OUT PLDAP *ppLDAP
|
|
);
|
|
|
|
PVOID *
|
|
FrsSupFindValues(
|
|
IN PLDAP Ldap,
|
|
IN PLDAPMessage Entry,
|
|
IN PWCHAR DesiredAttr,
|
|
IN BOOL DoBerVals
|
|
);
|
|
|
|
PWCHAR
|
|
FrsSupWcsDup(
|
|
PWCHAR OldStr
|
|
);
|
|
|
|
PWCHAR
|
|
FrsSupFindValue(
|
|
IN PLDAP Ldap,
|
|
IN PLDAPMessage Entry,
|
|
IN PWCHAR DesiredAttr
|
|
);
|
|
|
|
BOOL
|
|
FrsSupLdapSearch(
|
|
IN PLDAP Ldap,
|
|
IN PWCHAR Base,
|
|
IN ULONG Scope,
|
|
IN PWCHAR Filter,
|
|
IN PWCHAR Attrs[],
|
|
IN ULONG AttrsOnly,
|
|
IN LDAPMessage **Msg
|
|
);
|
|
|
|
PWCHAR *
|
|
FrsSupGetValues(
|
|
IN PLDAP Ldap,
|
|
IN PWCHAR Base,
|
|
IN PWCHAR DesiredAttr
|
|
);
|
|
|
|
PWCHAR
|
|
FrsSupExtendDn(
|
|
IN PWCHAR Dn,
|
|
IN PWCHAR Cn
|
|
);
|
|
|
|
PWCHAR
|
|
FrsSupGetRootDn(
|
|
PLDAP Ldap,
|
|
PWCHAR NamingContext
|
|
);
|
|
|
|
BOOL
|
|
FrsSupLdapSearchInit(
|
|
PLDAP ldap,
|
|
PWCHAR Base,
|
|
ULONG Scope,
|
|
PWCHAR Filter,
|
|
PWCHAR Attrs[],
|
|
ULONG AttrsOnly,
|
|
PFRS_LDAP_SEARCH_CONTEXT FrsSearchContext
|
|
);
|
|
|
|
PLDAPMessage
|
|
FrsSupLdapSearchGetNextEntry(
|
|
PLDAP ldap,
|
|
PFRS_LDAP_SEARCH_CONTEXT FrsSearchContext
|
|
);
|
|
|
|
DWORD
|
|
FrsSupLdapSearchGetNextPage(
|
|
PLDAP ldap,
|
|
PFRS_LDAP_SEARCH_CONTEXT FrsSearchContext
|
|
);
|
|
|
|
PLDAPMessage
|
|
FrsSupLdapSearchNext(
|
|
PLDAP ldap,
|
|
PFRS_LDAP_SEARCH_CONTEXT FrsSearchContext
|
|
);
|
|
|
|
VOID
|
|
FrsSupLdapSearchClose(
|
|
PFRS_LDAP_SEARCH_CONTEXT FrsSearchContext
|
|
);
|
|
|