mirror of https://github.com/getdnsapi/getdns.git
More code review changes
This commit is contained in:
parent
b20e4f2606
commit
7c30f3710a
|
@ -676,7 +676,7 @@ getdns_return_t
|
||||||
getdns_context_set_namespaces(struct getdns_context *context,
|
getdns_context_set_namespaces(struct getdns_context *context,
|
||||||
size_t namespace_count, getdns_namespace_t *namespaces)
|
size_t namespace_count, getdns_namespace_t *namespaces)
|
||||||
{
|
{
|
||||||
int i;
|
size_t i;
|
||||||
|
|
||||||
RETURN_IF_NULL(context, GETDNS_RETURN_INVALID_PARAMETER);
|
RETURN_IF_NULL(context, GETDNS_RETURN_INVALID_PARAMETER);
|
||||||
if (namespace_count == 0 || namespaces == NULL) {
|
if (namespace_count == 0 || namespaces == NULL) {
|
||||||
|
|
|
@ -185,7 +185,6 @@ getdns_display_ip_address(const struct getdns_bindata
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *getdns_get_errorstr_by_id(uint16_t err);
|
|
||||||
getdns_return_t
|
getdns_return_t
|
||||||
getdns_strerror(getdns_return_t err, char *buf, size_t buflen)
|
getdns_strerror(getdns_return_t err, char *buf, size_t buflen)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* getdns list management functions, note that the internal storage is
|
* getdns dict management functions, note that the internal storage is
|
||||||
* accomplished via the libc binary search tree implementation so your
|
* accomplished via an ldns_rbtree_t
|
||||||
* pointer foo needs to be keen to digest some of the internal semantics
|
|
||||||
*
|
*
|
||||||
* Interfaces originally taken from the getdns API description pseudo implementation.
|
* Interfaces originally taken from the getdns API description pseudo implementation.
|
||||||
*
|
*
|
||||||
|
@ -68,7 +67,7 @@ getdns_dict_find_and_add(struct getdns_dict *dict, const char *key)
|
||||||
ldns_rbtree_search(&(dict->root), key);
|
ldns_rbtree_search(&(dict->root), key);
|
||||||
|
|
||||||
if (!item) {
|
if (!item) {
|
||||||
/* tsearch will add a node automatically for us */
|
/* add a node */
|
||||||
item = GETDNS_MALLOC(dict->mf, struct getdns_dict_item);
|
item = GETDNS_MALLOC(dict->mf, struct getdns_dict_item);
|
||||||
item->node.key = getdns_strdup(&dict->mf, key);
|
item->node.key = getdns_strdup(&dict->mf, key);
|
||||||
item->data.n = 0;
|
item->data.n = 0;
|
||||||
|
@ -500,7 +499,7 @@ priv_getdns_bindata_is_dname(struct getdns_bindata *bindata)
|
||||||
{
|
{
|
||||||
size_t i = 0, n_labels = 0;
|
size_t i = 0, n_labels = 0;
|
||||||
while (i < bindata->size) {
|
while (i < bindata->size) {
|
||||||
i += bindata->data[i] + 1;
|
i += ((size_t)bindata->data[i]) + 1;
|
||||||
n_labels++;
|
n_labels++;
|
||||||
}
|
}
|
||||||
return i == bindata->size && n_labels > 1 &&
|
return i == bindata->size && n_labels > 1 &&
|
||||||
|
|
|
@ -101,7 +101,7 @@ ub_local_resolve_timeout(void *arg)
|
||||||
ub_resolve_callback(cb_data->netreq, cb_data->err, cb_data->ub_res);
|
ub_resolve_callback(cb_data->netreq, cb_data->err, cb_data->ub_res);
|
||||||
|
|
||||||
/* cleanup the state */
|
/* cleanup the state */
|
||||||
free(cb_data);
|
GETDNS_FREE(dnsreq->my_mf, cb_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
void priv_getdns_call_user_callback(getdns_dns_req *dns_req,
|
void priv_getdns_call_user_callback(getdns_dns_req *dns_req,
|
||||||
|
@ -174,8 +174,7 @@ ub_resolve_callback(void* arg, int err, struct ub_result* ub_res)
|
||||||
* netreqs need to be issued and some resolve immediately vs. not.
|
* netreqs need to be issued and some resolve immediately vs. not.
|
||||||
*/
|
*/
|
||||||
getdns_dns_req *dnsreq = netreq->owner;
|
getdns_dns_req *dnsreq = netreq->owner;
|
||||||
netreq_cb_data *cb_data =
|
netreq_cb_data *cb_data = GETDNS_MALLOC(dnsreq->my_mf, netreq_cb_data);
|
||||||
(netreq_cb_data *) malloc(sizeof(netreq_cb_data));
|
|
||||||
cb_data->netreq = netreq;
|
cb_data->netreq = netreq;
|
||||||
cb_data->err = err;
|
cb_data->err = err;
|
||||||
cb_data->ub_res = ub_res;
|
cb_data->ub_res = ub_res;
|
||||||
|
|
|
@ -43,11 +43,10 @@ network_req_free(getdns_network_req * net_req)
|
||||||
if (!net_req) {
|
if (!net_req) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
struct getdns_context *context = net_req->owner->context;
|
|
||||||
if (net_req->result) {
|
if (net_req->result) {
|
||||||
ldns_pkt_free(net_req->result);
|
ldns_pkt_free(net_req->result);
|
||||||
}
|
}
|
||||||
GETDNS_FREE(context->mf, net_req);
|
GETDNS_FREE(net_req->owner->my_mf, net_req);
|
||||||
}
|
}
|
||||||
|
|
||||||
getdns_network_req *
|
getdns_network_req *
|
||||||
|
@ -56,8 +55,7 @@ network_req_new(getdns_dns_req * owner,
|
||||||
uint16_t request_class, struct getdns_dict *extensions)
|
uint16_t request_class, struct getdns_dict *extensions)
|
||||||
{
|
{
|
||||||
|
|
||||||
struct getdns_context *context = owner->context;
|
getdns_network_req *net_req = GETDNS_MALLOC( owner->my_mf
|
||||||
getdns_network_req *net_req = GETDNS_MALLOC( context->mf
|
|
||||||
, getdns_network_req);
|
, getdns_network_req);
|
||||||
if (!net_req) {
|
if (!net_req) {
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -103,9 +101,9 @@ dns_req_free(getdns_dns_req * req)
|
||||||
getdns_context_clear_timeout(context, req->trans_id);
|
getdns_context_clear_timeout(context, req->trans_id);
|
||||||
|
|
||||||
/* free strduped name */
|
/* free strduped name */
|
||||||
free(req->name);
|
GETDNS_FREE(req->my_mf, req->name);
|
||||||
|
|
||||||
GETDNS_FREE(context->mf, req);
|
GETDNS_FREE(req->my_mf, req);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* create a new dns req to be submitted */
|
/* create a new dns req to be submitted */
|
||||||
|
@ -121,8 +119,8 @@ dns_req_new(struct getdns_context *context,
|
||||||
if (result == NULL) {
|
if (result == NULL) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
result->my_mf = context->mf;
|
||||||
result->name = strdup(name);
|
result->name = getdns_strdup(&(result->my_mf), name);
|
||||||
result->context = context;
|
result->context = context;
|
||||||
result->canceled = 0;
|
result->canceled = 0;
|
||||||
result->current_req = NULL;
|
result->current_req = NULL;
|
||||||
|
|
|
@ -101,6 +101,28 @@ struct getdns_context;
|
||||||
struct getdns_dns_req;
|
struct getdns_dns_req;
|
||||||
struct getdns_network_req;
|
struct getdns_network_req;
|
||||||
|
|
||||||
|
|
||||||
|
#define MF_PLAIN ((void *)&plain_mem_funcs_user_arg)
|
||||||
|
extern void *plain_mem_funcs_user_arg;
|
||||||
|
|
||||||
|
typedef union {
|
||||||
|
struct {
|
||||||
|
void *(*malloc)(size_t);
|
||||||
|
void *(*realloc)(void *, size_t);
|
||||||
|
void (*free)(void *);
|
||||||
|
} pln;
|
||||||
|
struct {
|
||||||
|
void *(*malloc)(void *userarg, size_t);
|
||||||
|
void *(*realloc)(void *userarg, void *, size_t);
|
||||||
|
void (*free)(void *userarg, void *);
|
||||||
|
} ext;
|
||||||
|
} mf_union;
|
||||||
|
|
||||||
|
struct mem_funcs {
|
||||||
|
void *mf_arg;
|
||||||
|
mf_union mf;
|
||||||
|
};
|
||||||
|
|
||||||
typedef enum network_req_state_enum
|
typedef enum network_req_state_enum
|
||||||
{
|
{
|
||||||
NET_REQ_NOT_SENT,
|
NET_REQ_NOT_SENT,
|
||||||
|
@ -183,29 +205,11 @@ typedef struct getdns_dns_req
|
||||||
/* dnssec status */
|
/* dnssec status */
|
||||||
int return_dnssec_status;
|
int return_dnssec_status;
|
||||||
|
|
||||||
|
/* mem funcs */
|
||||||
|
struct mem_funcs my_mf;
|
||||||
|
|
||||||
} getdns_dns_req;
|
} getdns_dns_req;
|
||||||
|
|
||||||
#define MF_PLAIN ((void *)&plain_mem_funcs_user_arg)
|
|
||||||
extern void *plain_mem_funcs_user_arg;
|
|
||||||
|
|
||||||
typedef union {
|
|
||||||
struct {
|
|
||||||
void *(*malloc)(size_t);
|
|
||||||
void *(*realloc)(void *, size_t);
|
|
||||||
void (*free)(void *);
|
|
||||||
} pln;
|
|
||||||
struct {
|
|
||||||
void *(*malloc)(void *userarg, size_t);
|
|
||||||
void *(*realloc)(void *userarg, void *, size_t);
|
|
||||||
void (*free)(void *userarg, void *);
|
|
||||||
} ext;
|
|
||||||
} mf_union;
|
|
||||||
|
|
||||||
struct mem_funcs {
|
|
||||||
void *mf_arg;
|
|
||||||
mf_union mf;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define GETDNS_XMALLOC(obj, type, count) \
|
#define GETDNS_XMALLOC(obj, type, count) \
|
||||||
((obj).mf_arg == MF_PLAIN \
|
((obj).mf_arg == MF_PLAIN \
|
||||||
? ((type *)(*(obj).mf.pln.malloc)( (count)*sizeof(type))) \
|
? ((type *)(*(obj).mf.pln.malloc)( (count)*sizeof(type))) \
|
||||||
|
|
Loading…
Reference in New Issue