Commit 4f96cebc authored by Michał Kępień's avatar Michał Kępień

Replace getquad() with inet_pton()

getquad() was implemented back in 2001 to warn about IPv4 addresses in
non-dotted-quad form being used.  As change 4900 (GL #13) removed all
uses of inet_aton(), which allowed such forms, with inet_pton(), which
does not allow them, there is no point in keeping getquad() around as it
now only prints an extra warning when the parser comes across an IP
address in a form which is not acceptable anyway.  Replace all uses of
getquad() with inet_pton(AF_INET, ...).
parent 2a50fc32
......@@ -378,24 +378,6 @@ locator_pton(const char *src, unsigned char *dst) {
return (1);
}
static inline int
getquad(const void *src, struct in_addr *dst,
isc_lex_t *lexer, dns_rdatacallbacks_t *callbacks)
{
int result;
result = inet_pton(AF_INET, src, dst);
if (result != 1 && callbacks != NULL) {
const char *name = isc_lex_getsourcename(lexer);
if (name == NULL)
name = "UNKNOWN";
(*callbacks->warn)(callbacks, "%s:%lu: \"%s\" "
"is not a decimal dotted quad", name,
isc_lex_getsourceline(lexer), src);
}
return (result);
}
static inline isc_result_t
name_duporclone(const dns_name_t *source, isc_mem_t *mctx, dns_name_t *target) {
......
......@@ -77,7 +77,7 @@ fromtext_ipseckey(ARGS_FROMTEXT) {
break;
case 1:
if (getquad(DNS_AS_STR(token), &addr, lexer, callbacks) != 1)
if (inet_pton(AF_INET, DNS_AS_STR(token), &addr) != 1)
RETTOK(DNS_R_BADDOTTEDQUAD);
isc_buffer_availableregion(target, &region);
if (region.length < 4)
......
......@@ -41,7 +41,7 @@ fromtext_l32(ARGS_FROMTEXT) {
RETERR(isc_lex_getmastertoken(lexer, &token, isc_tokentype_string,
ISC_FALSE));
if (getquad(DNS_AS_STR(token), &addr, lexer, callbacks) != 1)
if (inet_pton(AF_INET, DNS_AS_STR(token), &addr) != 1)
RETTOK(DNS_R_BADDOTTEDQUAD);
isc_buffer_availableregion(target, &region);
if (region.length < 4)
......
......@@ -33,11 +33,12 @@ fromtext_hs_a(ARGS_FROMTEXT) {
UNUSED(origin);
UNUSED(options);
UNUSED(rdclass);
UNUSED(callbacks);
RETERR(isc_lex_getmastertoken(lexer, &token, isc_tokentype_string,
ISC_FALSE));
if (getquad(DNS_AS_STR(token), &addr, lexer, callbacks) != 1)
if (inet_pton(AF_INET, DNS_AS_STR(token), &addr) != 1)
RETTOK(DNS_R_BADDOTTEDQUAD);
isc_buffer_availableregion(target, &region);
if (region.length < 4)
......
......@@ -35,11 +35,12 @@ fromtext_in_a(ARGS_FROMTEXT) {
UNUSED(origin);
UNUSED(options);
UNUSED(rdclass);
UNUSED(callbacks);
RETERR(isc_lex_getmastertoken(lexer, &token, isc_tokentype_string,
ISC_FALSE));
if (getquad(DNS_AS_STR(token), &addr, lexer, callbacks) != 1)
if (inet_pton(AF_INET, DNS_AS_STR(token), &addr) != 1)
RETTOK(DNS_R_BADDOTTEDQUAD);
isc_buffer_availableregion(target, &region);
if (region.length < 4)
......
......@@ -93,6 +93,7 @@ fromtext_in_wks(ARGS_FROMTEXT) {
UNUSED(origin);
UNUSED(options);
UNUSED(rdclass);
UNUSED(callbacks);
RUNTIME_CHECK(isc_once_do(&once, init_lock) == ISC_R_SUCCESS);
......@@ -117,7 +118,7 @@ fromtext_in_wks(ARGS_FROMTEXT) {
ISC_FALSE));
isc_buffer_availableregion(target, &region);
if (getquad(DNS_AS_STR(token), &addr, lexer, callbacks) != 1)
if (inet_pton(AF_INET, DNS_AS_STR(token), &addr) != 1)
CHECKTOK(DNS_R_BADDOTTEDQUAD);
if (region.length < 4)
return (ISC_R_NOSPACE);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment