Lines 1188-1195
parse_hba_line(TokenizedLine *tok_line, int elevel)
Link Here
|
1188 |
|
1188 |
|
1189 |
ret = pg_getaddrinfo_all(str, NULL, &hints, &gai_result); |
1189 |
ret = pg_getaddrinfo_all(str, NULL, &hints, &gai_result); |
1190 |
if (ret == 0 && gai_result) |
1190 |
if (ret == 0 && gai_result) |
|
|
1191 |
{ |
1191 |
memcpy(&parsedline->addr, gai_result->ai_addr, |
1192 |
memcpy(&parsedline->addr, gai_result->ai_addr, |
1192 |
gai_result->ai_addrlen); |
1193 |
gai_result->ai_addrlen); |
|
|
1194 |
parsedline->addrlen = gai_result->ai_addrlen; |
1195 |
} |
1193 |
else if (ret == EAI_NONAME) |
1196 |
else if (ret == EAI_NONAME) |
1194 |
parsedline->hostname = str; |
1197 |
parsedline->hostname = str; |
1195 |
else |
1198 |
else |
Lines 1238-1243
parse_hba_line(TokenizedLine *tok_line, int elevel)
Link Here
|
1238 |
token->string); |
1241 |
token->string); |
1239 |
return NULL; |
1242 |
return NULL; |
1240 |
} |
1243 |
} |
|
|
1244 |
parsedline->masklen = parsedline->addrlen; |
1241 |
pfree(str); |
1245 |
pfree(str); |
1242 |
} |
1246 |
} |
1243 |
else if (!parsedline->hostname) |
1247 |
else if (!parsedline->hostname) |
Lines 1288-1293
parse_hba_line(TokenizedLine *tok_line, int elevel)
Link Here
|
1288 |
|
1292 |
|
1289 |
memcpy(&parsedline->mask, gai_result->ai_addr, |
1293 |
memcpy(&parsedline->mask, gai_result->ai_addr, |
1290 |
gai_result->ai_addrlen); |
1294 |
gai_result->ai_addrlen); |
|
|
1295 |
parsedline->masklen = gai_result->ai_addrlen; |
1291 |
pg_freeaddrinfo_all(hints.ai_family, gai_result); |
1296 |
pg_freeaddrinfo_all(hints.ai_family, gai_result); |
1292 |
|
1297 |
|
1293 |
if (parsedline->addr.ss_family != parsedline->mask.ss_family) |
1298 |
if (parsedline->addr.ss_family != parsedline->mask.ss_family) |
Lines 2538-2557
fill_hba_line(Tuplestorestate *tuple_store, TupleDesc tupdesc,
Link Here
|
2538 |
} |
2543 |
} |
2539 |
else |
2544 |
else |
2540 |
{ |
2545 |
{ |
2541 |
if (pg_getnameinfo_all(&hba->addr, sizeof(hba->addr), |
2546 |
/* |
2542 |
buffer, sizeof(buffer), |
2547 |
* Note: if pg_getnameinfo_all fails, it'll set buffer to |
2543 |
NULL, 0, |
2548 |
* "???", which we want to return. |
2544 |
NI_NUMERICHOST) == 0) |
2549 |
*/ |
|
|
2550 |
if (hba->addrlen > 0) |
2545 |
{ |
2551 |
{ |
2546 |
clean_ipv6_addr(hba->addr.ss_family, buffer); |
2552 |
if (pg_getnameinfo_all(&hba->addr, hba->addrlen, |
|
|
2553 |
buffer, sizeof(buffer), |
2554 |
NULL, 0, |
2555 |
NI_NUMERICHOST) == 0) |
2556 |
clean_ipv6_addr(hba->addr.ss_family, buffer); |
2547 |
addrstr = pstrdup(buffer); |
2557 |
addrstr = pstrdup(buffer); |
2548 |
} |
2558 |
} |
2549 |
if (pg_getnameinfo_all(&hba->mask, sizeof(hba->mask), |
2559 |
if (hba->masklen > 0) |
2550 |
buffer, sizeof(buffer), |
|
|
2551 |
NULL, 0, |
2552 |
NI_NUMERICHOST) == 0) |
2553 |
{ |
2560 |
{ |
2554 |
clean_ipv6_addr(hba->mask.ss_family, buffer); |
2561 |
if (pg_getnameinfo_all(&hba->mask, hba->masklen, |
|
|
2562 |
buffer, sizeof(buffer), |
2563 |
NULL, 0, |
2564 |
NI_NUMERICHOST) == 0) |
2565 |
clean_ipv6_addr(hba->mask.ss_family, buffer); |
2555 |
maskstr = pstrdup(buffer); |
2566 |
maskstr = pstrdup(buffer); |
2556 |
} |
2567 |
} |
2557 |
} |
2568 |
} |