mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-31 22:45:39 +00:00
Refactor isc_radix_create to return void
The isc_radix_create() can't fail, so change it to return void.
This commit is contained in:
committed by
Ondřej Surý
parent
b54498abf6
commit
d46d51be78
@@ -28,7 +28,6 @@ destroy_iptable(dns_iptable_t *dtab);
|
|||||||
*/
|
*/
|
||||||
isc_result_t
|
isc_result_t
|
||||||
dns_iptable_create(isc_mem_t *mctx, dns_iptable_t **target) {
|
dns_iptable_create(isc_mem_t *mctx, dns_iptable_t **target) {
|
||||||
isc_result_t result;
|
|
||||||
dns_iptable_t *tab;
|
dns_iptable_t *tab;
|
||||||
|
|
||||||
tab = isc_mem_get(mctx, sizeof(*tab));
|
tab = isc_mem_get(mctx, sizeof(*tab));
|
||||||
@@ -38,17 +37,10 @@ dns_iptable_create(isc_mem_t *mctx, dns_iptable_t **target) {
|
|||||||
tab->radix = NULL;
|
tab->radix = NULL;
|
||||||
tab->magic = DNS_IPTABLE_MAGIC;
|
tab->magic = DNS_IPTABLE_MAGIC;
|
||||||
|
|
||||||
result = isc_radix_create(mctx, &tab->radix, RADIX_MAXBITS);
|
isc_radix_create(mctx, &tab->radix, RADIX_MAXBITS);
|
||||||
if (result != ISC_R_SUCCESS) {
|
|
||||||
goto cleanup;
|
|
||||||
}
|
|
||||||
|
|
||||||
*target = tab;
|
*target = tab;
|
||||||
return (ISC_R_SUCCESS);
|
return (ISC_R_SUCCESS);
|
||||||
|
|
||||||
cleanup:
|
|
||||||
dns_iptable_detach(&tab);
|
|
||||||
return (result);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool dns_iptable_neg = false;
|
static bool dns_iptable_neg = false;
|
||||||
|
@@ -100,8 +100,8 @@ typedef struct isc_radix_node {
|
|||||||
* nodes */
|
* nodes */
|
||||||
} isc_radix_node_t;
|
} isc_radix_node_t;
|
||||||
|
|
||||||
#define RADIX_TREE_MAGIC ISC_MAGIC('R', 'd', 'x', 'T');
|
#define RADIX_TREE_MAGIC ISC_MAGIC('R', 'd', 'x', 'T')
|
||||||
#define RADIX_TREE_VALID(a) ISC_MAGIC_VALID(a, RADIX_TREE_MAGIC);
|
#define RADIX_TREE_VALID(a) ISC_MAGIC_VALID(a, RADIX_TREE_MAGIC)
|
||||||
|
|
||||||
typedef struct isc_radix_tree {
|
typedef struct isc_radix_tree {
|
||||||
unsigned int magic;
|
unsigned int magic;
|
||||||
@@ -157,7 +157,7 @@ isc_radix_remove(isc_radix_tree_t *radix, isc_radix_node_t *node);
|
|||||||
* \li 'node' to be valid.
|
* \li 'node' to be valid.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
isc_result_t
|
void
|
||||||
isc_radix_create(isc_mem_t *mctx, isc_radix_tree_t **target, int maxbits);
|
isc_radix_create(isc_mem_t *mctx, isc_radix_tree_t **target, int maxbits);
|
||||||
/*%<
|
/*%<
|
||||||
* Create a radix tree with a maximum depth of 'maxbits';
|
* Create a radix tree with a maximum depth of 'maxbits';
|
||||||
|
@@ -131,24 +131,18 @@ _comp_with_mask(void *addr, void *dest, u_int mask) {
|
|||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
isc_result_t
|
void
|
||||||
isc_radix_create(isc_mem_t *mctx, isc_radix_tree_t **target, int maxbits) {
|
isc_radix_create(isc_mem_t *mctx, isc_radix_tree_t **target, int maxbits) {
|
||||||
isc_radix_tree_t *radix;
|
|
||||||
|
|
||||||
REQUIRE(target != NULL && *target == NULL);
|
REQUIRE(target != NULL && *target == NULL);
|
||||||
|
RUNTIME_CHECK(maxbits <= RADIX_MAXBITS);
|
||||||
|
|
||||||
radix = isc_mem_get(mctx, sizeof(isc_radix_tree_t));
|
isc_radix_tree_t *radix = isc_mem_get(mctx, sizeof(isc_radix_tree_t));
|
||||||
|
*radix = (isc_radix_tree_t){
|
||||||
radix->mctx = NULL;
|
.maxbits = maxbits,
|
||||||
|
.magic = RADIX_TREE_MAGIC,
|
||||||
|
};
|
||||||
isc_mem_attach(mctx, &radix->mctx);
|
isc_mem_attach(mctx, &radix->mctx);
|
||||||
radix->maxbits = maxbits;
|
|
||||||
radix->head = NULL;
|
|
||||||
radix->num_active_node = 0;
|
|
||||||
radix->num_added_node = 0;
|
|
||||||
RUNTIME_CHECK(maxbits <= RADIX_MAXBITS); /* XXX */
|
|
||||||
radix->magic = RADIX_TREE_MAGIC;
|
|
||||||
*target = radix;
|
*target = radix;
|
||||||
return (ISC_R_SUCCESS);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@@ -41,8 +41,7 @@ ISC_RUN_TEST_IMPL(isc_radix_remove) {
|
|||||||
|
|
||||||
UNUSED(state);
|
UNUSED(state);
|
||||||
|
|
||||||
result = isc_radix_create(mctx, &radix, 32);
|
isc_radix_create(mctx, &radix, 32);
|
||||||
assert_int_equal(result, ISC_R_SUCCESS);
|
|
||||||
|
|
||||||
in_addr.s_addr = inet_addr("1.1.1.1");
|
in_addr.s_addr = inet_addr("1.1.1.1");
|
||||||
isc_netaddr_fromin(&netaddr, &in_addr);
|
isc_netaddr_fromin(&netaddr, &in_addr);
|
||||||
@@ -90,8 +89,7 @@ ISC_RUN_TEST_IMPL(isc_radix_search) {
|
|||||||
|
|
||||||
UNUSED(state);
|
UNUSED(state);
|
||||||
|
|
||||||
result = isc_radix_create(mctx, &radix, 32);
|
isc_radix_create(mctx, &radix, 32);
|
||||||
assert_int_equal(result, ISC_R_SUCCESS);
|
|
||||||
|
|
||||||
in_addr.s_addr = inet_addr("3.3.3.0");
|
in_addr.s_addr = inet_addr("3.3.3.0");
|
||||||
isc_netaddr_fromin(&netaddr, &in_addr);
|
isc_netaddr_fromin(&netaddr, &in_addr);
|
||||||
|
Reference in New Issue
Block a user