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 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

static wchar_t * My_NameTranslate (wchar_t *, int, int)
 
static char * Get_WIN32_ErrorMessage (HRESULT)
 
static void CloseCOM (void)
 
static HRESULT GetLPBYTEtoOctetString (VARIANT *pVar, LPBYTE *ppByte)
 
static wchar_t * Get_primaryGroup (IADs *pUser)
 
static wchar_t * GetLDAPPath (wchar_t *Base_DN, int query_mode)
 
static char * GetDomainName (void)
 
static 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)
 
static HRESULT Recursive_Memberof (IADs *pObj)
 
static wchar_t ** build_groups_DN_array (const char **array, char *userdomain)
 
static int Valid_Local_Groups (char *UserName, const char **Groups)
 
static int Valid_Global_Groups (char *UserName, const char **Groups)
 
static void usage (const char *program)
 
static 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 = nullptr
 
const char NTV_VALID_DOMAIN_SEPARATOR [] = "\\/"
 
int numberofgroups = 0
 
int WIN32_COM_initialized = 0
 
char * WIN32_ErrorMessage = nullptr
 
wchar_t ** User_Groups
 
int User_Groups_Count = 0
 

Enumeration Type Documentation

◆ ADSI_PATH

enum ADSI_PATH
Enumerator
LDAP_MODE 
GC_MODE 

Definition at line 113 of file ext_ad_group_acl.cc.

Function Documentation

◆ add_User_Group()

static int add_User_Group ( wchar_t *  Group)
static

Definition at line 365 of file ext_ad_group_acl.cc.

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

Referenced by Recursive_Memberof(), and Valid_Global_Groups().

◆ build_groups_DN_array()

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

Definition at line 499 of file ext_ad_group_acl.cc.

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

Referenced by Valid_Global_Groups().

◆ CloseCOM()

static void CloseCOM ( void  )
static

Definition at line 135 of file ext_ad_group_acl.cc.

References WIN32_COM_initialized.

Referenced by main().

◆ Get_primaryGroup()

static wchar_t* Get_primaryGroup ( IADs *  pUser)
static

◆ Get_WIN32_ErrorMessage()

static char * Get_WIN32_ErrorMessage ( HRESULT  hr)
static

◆ GetDomainName()

static char* GetDomainName ( void  )
static

Definition at line 315 of file ext_ad_group_acl.cc.

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

Referenced by main().

◆ GetLDAPPath()

static wchar_t* GetLDAPPath ( wchar_t *  Base_DN,
int  query_mode 
)
static

Definition at line 299 of file ext_ad_group_acl.cc.

References LDAP_MODE, and xmalloc.

Referenced by Recursive_Memberof(), and Valid_Global_Groups().

◆ GetLPBYTEtoOctetString()

static HRESULT GetLPBYTEtoOctetString ( VARIANT *  pVar,
LPBYTE *  ppByte 
)
static

Definition at line 142 of file ext_ad_group_acl.cc.

Referenced by Get_primaryGroup().

◆ main()

◆ My_NameTranslate()

static wchar_t * My_NameTranslate ( wchar_t *  name,
int  in_format,
int  out_format 
)
static

◆ process_options()

static void process_options ( int  argc,
char *  argv[] 
)
static

◆ Recursive_Memberof()

static HRESULT Recursive_Memberof ( IADs *  pObj)
static

◆ usage()

static void usage ( const char *  program)
static

Definition at line 740 of file ext_ad_group_acl.cc.

Referenced by process_options().

◆ Valid_Global_Groups()

◆ Valid_Local_Groups()

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

Definition at line 542 of file ext_ad_group_acl.cc.

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

Referenced by main().

◆ wccmparray()

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

Definition at line 391 of file ext_ad_group_acl.cc.

References debug().

Referenced by Valid_Global_Groups().

◆ wcstrcmparray()

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

Definition at line 404 of file ext_ad_group_acl.cc.

References debug(), and use_case_insensitive_compare.

Referenced by Valid_Local_Groups().

Variable Documentation

◆ ADSI_Path

enum ADSI_PATH ADSI_Path

◆ DefaultDomain

char* DefaultDomain = nullptr

Definition at line 123 of file ext_ad_group_acl.cc.

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

◆ machinedomain

char* machinedomain

Definition at line 121 of file ext_ad_group_acl.cc.

Referenced by main().

◆ mypid

pid_t mypid

Definition at line 120 of file ext_ad_group_acl.cc.

Referenced by main().

◆ NTV_VALID_DOMAIN_SEPARATOR

const char NTV_VALID_DOMAIN_SEPARATOR[] = "\\/"

Definition at line 124 of file ext_ad_group_acl.cc.

Referenced by Valid_Global_Groups().

◆ numberofgroups

int numberofgroups = 0

Definition at line 125 of file ext_ad_group_acl.cc.

Referenced by build_groups_DN_array(), and main().

◆ program_name

char* program_name

Definition at line 119 of file ext_ad_group_acl.cc.

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

◆ use_case_insensitive_compare

int use_case_insensitive_compare = 0

Definition at line 122 of file ext_ad_group_acl.cc.

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

◆ use_global

int use_global = 0

Definition at line 118 of file ext_ad_group_acl.cc.

Referenced by main(), and process_options().

◆ User_Groups

wchar_t** User_Groups

Definition at line 128 of file ext_ad_group_acl.cc.

Referenced by add_User_Group(), and Valid_Global_Groups().

◆ User_Groups_Count

int User_Groups_Count = 0

Definition at line 129 of file ext_ad_group_acl.cc.

Referenced by add_User_Group(), and Valid_Global_Groups().

◆ WIN32_COM_initialized

int WIN32_COM_initialized = 0

Definition at line 126 of file ext_ad_group_acl.cc.

Referenced by CloseCOM(), and My_NameTranslate().

◆ WIN32_ErrorMessage

char* WIN32_ErrorMessage = nullptr

Definition at line 127 of file ext_ad_group_acl.cc.

Referenced by Get_WIN32_ErrorMessage().

 

Introduction

Documentation

Support

Miscellaneous