28 int rule_number,
char *
filename,
int lineno,
29 HbaLine *hba,
const char *err_msg);
32 int map_number,
char *
filename,
int lineno,
45 #define MAX_HBA_OPTIONS 14
161 #define NUM_PG_HBA_FILE_RULES_ATTS 11
185 char buffer[NI_MAXHOST];
197 memset(nulls, 0,
sizeof(nulls));
202 nulls[
index++] =
true;
229 typestr =
"hostnossl";
232 typestr =
"hostgssenc";
235 typestr =
"hostnogssenc";
241 nulls[
index++] =
true;
265 nulls[
index++] =
true;
273 foreach(lc, hba->
roles)
282 nulls[
index++] =
true;
286 addrstr = maskstr = NULL;
303 buffer,
sizeof(buffer),
305 NI_NUMERICHOST) == 0)
312 buffer,
sizeof(buffer),
314 NI_NUMERICHOST) == 0)
324 addrstr =
"samehost";
333 nulls[
index++] =
true;
337 nulls[
index++] =
true;
347 nulls[
index++] =
true;
391 "hba parser context",
394 foreach(line, hba_lines)
446 #define NUM_PG_IDENT_FILE_MAPPINGS_ATTS 7
476 memset(nulls, 0,
sizeof(nulls));
481 nulls[
index++] =
true;
538 "ident parser context",
541 foreach(line, ident_lines)
ArrayType * construct_array_builtin(Datum *elems, int nelems, Oid elmtype)
static Datum values[MAXATTR]
#define CStringGetTextDatum(s)
#define Assert(condition)
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)
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 Datum PointerGetDatum(const void *X)
static Datum Int32GetDatum(int32 X)
char * psprintf(const char *fmt,...)
MemoryContextSwitchTo(old_ctx)
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)