29 int rule_number,
char *
filename,
int lineno,
30 HbaLine *hba,
const char *err_msg);
33 int map_number,
char *
filename,
int lineno,
46 #define MAX_HBA_OPTIONS 14
162 #define NUM_PG_HBA_FILE_RULES_ATTS 11
186 char buffer[NI_MAXHOST];
198 memset(nulls, 0,
sizeof(nulls));
203 nulls[
index++] =
true;
230 typestr =
"hostnossl";
233 typestr =
"hostgssenc";
236 typestr =
"hostnogssenc";
242 nulls[
index++] =
true;
266 nulls[
index++] =
true;
274 foreach(lc, hba->
roles)
283 nulls[
index++] =
true;
287 addrstr = maskstr = NULL;
304 buffer,
sizeof(buffer),
306 NI_NUMERICHOST) == 0)
313 buffer,
sizeof(buffer),
315 NI_NUMERICHOST) == 0)
325 addrstr =
"samehost";
334 nulls[
index++] =
true;
338 nulls[
index++] =
true;
348 nulls[
index++] =
true;
392 "hba parser context",
395 foreach(line, hba_lines)
447 #define NUM_PG_IDENT_FILE_MAPPINGS_ATTS 7
477 memset(nulls, 0,
sizeof(nulls));
482 nulls[
index++] =
true;
539 "ident parser context",
542 foreach(line, ident_lines)
ArrayType * construct_array_builtin(Datum *elems, int nelems, Oid elmtype)
static Datum values[MAXATTR]
#define CStringGetTextDatum(s)
void InitMaterializedSRF(FunctionCallInfo fcinfo, bits32 flags)
IdentLine * parse_ident_line(TokenizedAuthLine *tok_line, int elevel)
FILE * open_auth_file(const char *filename, int elevel, int depth, char **err_msg)
const char * hba_authname(UserAuth auth_method)
void free_auth_file(FILE *file, int depth)
HbaLine * parse_hba_line(TokenizedAuthLine *tok_line, int elevel)
void tokenize_auth_file(const char *filename, FILE *file, List **tok_lines, int elevel, int depth)
static void fill_ident_line(Tuplestorestate *tuple_store, TupleDesc tupdesc, int map_number, char *filename, int lineno, IdentLine *ident, const char *err_msg)
static void fill_hba_view(Tuplestorestate *tuple_store, TupleDesc tupdesc)
static void fill_ident_view(Tuplestorestate *tuple_store, TupleDesc tupdesc)
static void fill_hba_line(Tuplestorestate *tuple_store, TupleDesc tupdesc, int rule_number, char *filename, int lineno, HbaLine *hba, const char *err_msg)
#define NUM_PG_HBA_FILE_RULES_ATTS
static ArrayType * get_hba_options(HbaLine *hba)
Datum pg_ident_file_mappings(PG_FUNCTION_ARGS)
#define NUM_PG_IDENT_FILE_MAPPINGS_ATTS
Datum pg_hba_file_rules(PG_FUNCTION_ARGS)
HeapTuple heap_form_tuple(TupleDesc tupleDescriptor, const Datum *values, const bool *isnull)
int pg_getnameinfo_all(const struct sockaddr_storage *addr, int salen, char *node, int nodelen, char *service, int servicelen, int flags)
Assert(fmt[strlen(fmt) - 1] !='\n')
List * lappend(List *list, void *datum)
char * pstrdup(const char *in)
MemoryContext CurrentMemoryContext
void MemoryContextDelete(MemoryContext context)
#define AllocSetContextCreate
#define ALLOCSET_SMALL_SIZES
void clean_ipv6_addr(int addr_family, char *addr)
ArrayType * strlist_to_textarray(List *list)
static MemoryContext MemoryContextSwitchTo(MemoryContext context)
static Datum PointerGetDatum(const void *X)
static Datum Int32GetDatum(int32 X)
char * psprintf(const char *fmt,...)
struct sockaddr_storage mask
ClientCertMode clientcert
char * ldapsearchattribute
struct sockaddr_storage addr
IPCompareMethod ip_cmp_method
char * radiusidentifiers_s
Tuplestorestate * setResult
void tuplestore_puttuple(Tuplestorestate *state, HeapTuple tuple)