mirror of https://github.com/getdnsapi/getdns.git
parent
4445a5f9cc
commit
39639a86c4
|
@ -184,10 +184,10 @@ getdns_general_ns(getdns_context *context, getdns_eventloop *loop,
|
|||
if (!context || !name || (!callbackfn && !internal_cb))
|
||||
return GETDNS_RETURN_INVALID_PARAMETER;
|
||||
|
||||
if ((r = validate_dname(name)))
|
||||
if ((r = priv_getdns_validate_dname(name)))
|
||||
return r;
|
||||
|
||||
if (extensions && (r = validate_extensions(extensions)))
|
||||
if (extensions && (r = priv_getdns_validate_extensions(extensions)))
|
||||
return r;
|
||||
|
||||
/* Set up the context assuming we won't use the specified namespaces.
|
||||
|
|
19
src/stub.c
19
src/stub.c
|
@ -265,21 +265,6 @@ create_starttls_request(getdns_dns_req *dnsreq, getdns_upstream *upstream,
|
|||
return 1;
|
||||
}
|
||||
|
||||
static int
|
||||
dname_equal(uint8_t *s1, uint8_t *s2)
|
||||
{
|
||||
uint8_t i;
|
||||
for (;;) {
|
||||
if (*s1 != *s2)
|
||||
return 0;
|
||||
else if (!*s1)
|
||||
return 1;
|
||||
for (i = *s1++, s2++; i > 0; i--, s1++, s2++)
|
||||
if ((*s1 & 0xDF) != (*s2 & 0xDF))
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
static int
|
||||
is_starttls_response(getdns_network_req *netreq)
|
||||
{
|
||||
|
@ -315,7 +300,7 @@ is_starttls_response(getdns_network_req *netreq)
|
|||
|
||||
owner_name = priv_getdns_owner_if_or_as_decompressed(
|
||||
rr_iter, owner_name_space, &owner_name_len);
|
||||
if (!dname_equal(starttls_name, owner_name))
|
||||
if (!priv_getdns_dname_equal(starttls_name, owner_name))
|
||||
continue;
|
||||
|
||||
if (!(rdf_iter = priv_getdns_rdf_iter_init(
|
||||
|
@ -324,7 +309,7 @@ is_starttls_response(getdns_network_req *netreq)
|
|||
/* re-use the starttls_name for the response dname*/
|
||||
starttls_name = priv_getdns_rdf_if_or_as_decompressed(
|
||||
rdf_iter,starttls_name_space,&starttls_name_len);
|
||||
if (dname_equal(starttls_name, owner_name))
|
||||
if (priv_getdns_dname_equal(starttls_name, owner_name))
|
||||
return 1;
|
||||
else
|
||||
return 0;
|
||||
|
|
|
@ -423,8 +423,8 @@ error:
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static int
|
||||
dname_equal(uint8_t *s1, uint8_t *s2)
|
||||
int
|
||||
priv_getdns_dname_equal(uint8_t *s1, uint8_t *s2)
|
||||
{
|
||||
uint8_t i;
|
||||
for (;;) {
|
||||
|
@ -581,7 +581,7 @@ priv_getdns_create_reply_dict(getdns_context *context, getdns_network_req *req,
|
|||
|
||||
owner_name = priv_getdns_owner_if_or_as_decompressed(
|
||||
rr_iter, owner_name_space, &owner_name_len);
|
||||
if (!dname_equal(canonical_name, owner_name))
|
||||
if (!priv_getdns_dname_equal(canonical_name, owner_name))
|
||||
continue;
|
||||
|
||||
if (!(rdf_iter = priv_getdns_rdf_iter_init(
|
||||
|
@ -654,7 +654,7 @@ priv_getdns_create_reply_dict(getdns_context *context, getdns_network_req *req,
|
|||
|
||||
owner_name = priv_getdns_owner_if_or_as_decompressed(
|
||||
rr_iter, owner_name_space, &owner_name_len);
|
||||
if (!dname_equal(canonical_name, owner_name))
|
||||
if (!priv_getdns_dname_equal(canonical_name, owner_name))
|
||||
continue;
|
||||
|
||||
if (!(rdf_iter = priv_getdns_rdf_iter_init(
|
||||
|
@ -831,7 +831,7 @@ extformatcmp(const void *a, const void *b)
|
|||
|
||||
/*---------------------------------------- validate_extensions */
|
||||
getdns_return_t
|
||||
validate_extensions(struct getdns_dict * extensions)
|
||||
priv_getdns_validate_extensions(struct getdns_dict * extensions)
|
||||
{
|
||||
struct getdns_dict_item *item;
|
||||
getdns_extension_format *extformat;
|
||||
|
@ -853,7 +853,7 @@ validate_extensions(struct getdns_dict * extensions)
|
|||
return GETDNS_RETURN_EXTENSION_MISFORMAT;
|
||||
}
|
||||
return GETDNS_RETURN_GOOD;
|
||||
} /* validate_extensions */
|
||||
} /* priv_getdns_validate_extensions */
|
||||
|
||||
getdns_return_t
|
||||
getdns_apply_network_result(getdns_network_req* netreq,
|
||||
|
@ -918,7 +918,7 @@ getdns_apply_network_result(getdns_network_req* netreq,
|
|||
|
||||
|
||||
getdns_return_t
|
||||
validate_dname(const char* dname) {
|
||||
priv_getdns_validate_dname(const char* dname) {
|
||||
int len;
|
||||
int label_len;
|
||||
const char* s;
|
||||
|
@ -981,7 +981,7 @@ validate_dname(const char* dname) {
|
|||
return GETDNS_RETURN_BAD_DOMAIN_NAME;
|
||||
}
|
||||
return GETDNS_RETURN_GOOD;
|
||||
} /* validate_dname */
|
||||
} /* priv_getdns_validate_dname */
|
||||
|
||||
|
||||
/* util-internal.c */
|
||||
|
|
|
@ -130,7 +130,11 @@ struct getdns_dict *create_getdns_response(struct getdns_dns_req *completed_requ
|
|||
getdns_dict *priv_getdns_create_reply_dict(getdns_context *context,
|
||||
getdns_network_req *req, getdns_list *just_addrs, int *rrsigs_in_answer);
|
||||
|
||||
getdns_return_t validate_dname(const char* dname);
|
||||
getdns_return_t priv_getdns_validate_dname(const char* dname);
|
||||
|
||||
int priv_getdns_dname_equal(uint8_t *s1, uint8_t *s2);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* detect unrecognized extension strings or invalid extension formats
|
||||
|
@ -140,7 +144,7 @@ getdns_return_t validate_dname(const char* dname);
|
|||
* @return GETDNS_RETURN_NO_SUCH_EXTENSION A name in the extensions dict is not a valid extension.
|
||||
* @return GETDNS_RETURN_EXTENSION_MISFORMAT One or more of the extensions has a bad format.
|
||||
*/
|
||||
getdns_return_t validate_extensions(struct getdns_dict * extensions);
|
||||
getdns_return_t priv_getdns_validate_extensions(struct getdns_dict * extensions);
|
||||
|
||||
#define DEBUG_ON(...) do { \
|
||||
struct timeval tv; \
|
||||
|
|
Loading…
Reference in New Issue