ext_ad_group_acl.cc File Reference
#include "squid.h"
#include "helper/protocol_defines.h"
#include "include/util.h"
#include <cassert>
#include <cctype>
#include <cstring>
#include <windows.h>
#include <objbase.h>
#include <initguid.h>
#include <adsiid.h>
#include <iads.h>
#include <adshlp.h>
#include <adserr.h>
#include <lm.h>
#include <dsrole.h>
#include <sddl.h>
Include dependency graph for ext_ad_group_acl.cc:

Go to the source code of this file.

Enumerations

enum  ADSI_PATH {
  LDAP_MODE,
  GC_MODE
}
 

Functions

wchar_t * My_NameTranslate (wchar_t *, int, int)
 
char * Get_WIN32_ErrorMessage (HRESULT)
 
void CloseCOM (void)
 
HRESULT GetLPBYTEtoOctetString (VARIANT *pVar, LPBYTE *ppByte)
 
wchar_t * Get_primaryGroup (IADs *pUser)
 
wchar_t * GetLDAPPath (wchar_t *Base_DN, int query_mode)
 
char * GetDomainName (void)
 
int add_User_Group (wchar_t *Group)
 
static int wccmparray (const wchar_t *str, const wchar_t **array)
 
static int wcstrcmparray (const wchar_t *str, const char **array)
 
HRESULT Recursive_Memberof (IADs *pObj)
 
static wchar_t ** build_groups_DN_array (const char **array, char *userdomain)
 
int Valid_Local_Groups (char *UserName, const char **Groups)
 
int Valid_Global_Groups (char *UserName, const char **Groups)
 
static void usage (const char *program)
 
void process_options (int argc, char *argv[])
 
int main (int argc, char *argv[])
 

Variables

enum ADSI_PATH ADSI_Path
 
int use_global = 0
 
char * program_name
 
pid_t mypid
 
char * machinedomain
 
int use_case_insensitive_compare = 0
 
char * DefaultDomain = NULL
 
const char NTV_VALID_DOMAIN_SEPARATOR [] = "\\/"
 
int numberofgroups = 0
 
int WIN32_COM_initialized = 0
 
char * WIN32_ErrorMessage = NULL
 
wchar_t ** User_Groups
 
int User_Groups_Count = 0
 

Enumeration Type Documentation

enum ADSI_PATH
Enumerator
LDAP_MODE 
GC_MODE 

Definition at line 95 of file ext_ad_group_acl.cc.

Function Documentation

int add_User_Group ( wchar_t *  Group)

Definition at line 347 of file ext_ad_group_acl.cc.

References NULL, User_Groups, User_Groups_Count, xmalloc, and xrealloc().

Referenced by Recursive_Memberof(), and Valid_Global_Groups().

static wchar_t** build_groups_DN_array ( const char **  array,
char *  userdomain 
)
static

Definition at line 481 of file ext_ad_group_acl.cc.

References debug, My_NameTranslate(), NULL, numberofgroups, safe_free, and xmalloc.

Referenced by Valid_Global_Groups().

void CloseCOM ( void  )

Definition at line 117 of file ext_ad_group_acl.cc.

References WIN32_COM_initialized.

Referenced by main().

wchar_t* Get_primaryGroup ( IADs *  pUser)
char * Get_WIN32_ErrorMessage ( HRESULT  hr)
char* GetDomainName ( void  )

Definition at line 297 of file ext_ad_group_acl.cc.

References debug, DWORD, Get_WIN32_ErrorMessage(), len, NULL, safe_free, and xmalloc.

Referenced by main().

wchar_t* GetLDAPPath ( wchar_t *  Base_DN,
int  query_mode 
)

Definition at line 281 of file ext_ad_group_acl.cc.

References LDAP_MODE, and xmalloc.

Referenced by Recursive_Memberof(), and Valid_Global_Groups().

HRESULT GetLPBYTEtoOctetString ( VARIANT *  pVar,
LPBYTE *  ppByte 
)

Definition at line 124 of file ext_ad_group_acl.cc.

Referenced by Get_primaryGroup().

wchar_t * My_NameTranslate ( wchar_t *  name,
int  in_format,
int  out_format 
)
void process_options ( int  argc,
char *  argv[] 
)
HRESULT Recursive_Memberof ( IADs *  pObj)
static void usage ( const char *  program)
static

Definition at line 722 of file ext_ad_group_acl.cc.

Referenced by process_options().

int Valid_Local_Groups ( char *  UserName,
const char **  Groups 
)

Definition at line 524 of file ext_ad_group_acl.cc.

References assert, debug, DWORD, Get_WIN32_ErrorMessage(), i, NULL, and wcstrcmparray().

Referenced by main().

static int wccmparray ( const wchar_t *  str,
const wchar_t **  array 
)
static

Definition at line 373 of file ext_ad_group_acl.cc.

References debug.

Referenced by Valid_Global_Groups().

static int wcstrcmparray ( const wchar_t *  str,
const char **  array 
)
static

Definition at line 386 of file ext_ad_group_acl.cc.

References debug, and use_case_insensitive_compare.

Referenced by Valid_Local_Groups().

Variable Documentation

enum ADSI_PATH ADSI_Path
char* DefaultDomain = NULL

Definition at line 105 of file ext_ad_group_acl.cc.

Referenced by main(), process_options(), and Valid_Global_Groups().

char* machinedomain

Definition at line 103 of file ext_ad_group_acl.cc.

Referenced by main().

pid_t mypid

Definition at line 102 of file ext_ad_group_acl.cc.

Referenced by main().

const char NTV_VALID_DOMAIN_SEPARATOR[] = "\\/"

Definition at line 106 of file ext_ad_group_acl.cc.

Referenced by Valid_Global_Groups().

int numberofgroups = 0

Definition at line 107 of file ext_ad_group_acl.cc.

Referenced by build_groups_DN_array(), and main().

char* program_name

Definition at line 101 of file ext_ad_group_acl.cc.

Referenced by main(), and process_options().

int use_case_insensitive_compare = 0

Definition at line 104 of file ext_ad_group_acl.cc.

Referenced by main(), process_options(), and wcstrcmparray().

int use_global = 0

Definition at line 100 of file ext_ad_group_acl.cc.

Referenced by main(), and process_options().

wchar_t** User_Groups

Definition at line 110 of file ext_ad_group_acl.cc.

Referenced by add_User_Group(), and Valid_Global_Groups().

int User_Groups_Count = 0

Definition at line 111 of file ext_ad_group_acl.cc.

Referenced by add_User_Group(), and Valid_Global_Groups().

int WIN32_COM_initialized = 0

Definition at line 108 of file ext_ad_group_acl.cc.

Referenced by CloseCOM(), and My_NameTranslate().

char* WIN32_ErrorMessage = NULL

Definition at line 109 of file ext_ad_group_acl.cc.

Referenced by Get_WIN32_ErrorMessage().

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors