Remove functions that set ports in dispatchmanager object
This commit is contained in:
+1
-63
@@ -7946,12 +7946,10 @@ load_configuration(const char *filename, named_server_t *server,
|
||||
dns_view_t *view_next = NULL;
|
||||
dns_viewlist_t tmpviewlist;
|
||||
dns_viewlist_t viewlist, builtin_viewlist;
|
||||
in_port_t listen_port, udpport_low, udpport_high;
|
||||
in_port_t listen_port;
|
||||
int i, backlog;
|
||||
isc_interval_t interval;
|
||||
isc_logconfig_t *logc = NULL;
|
||||
isc_portset_t *v4portset = NULL;
|
||||
isc_portset_t *v6portset = NULL;
|
||||
isc_result_t result;
|
||||
uint32_t interface_interval;
|
||||
uint32_t udpsize;
|
||||
@@ -8346,62 +8344,6 @@ load_configuration(const char *filename, named_server_t *server,
|
||||
|
||||
#undef CAP_IF_NOT_ZERO
|
||||
|
||||
/*
|
||||
* Configure sets of UDP query source ports.
|
||||
*/
|
||||
result = isc_portset_create(named_g_mctx, &v4portset);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
isc_log_write(NAMED_LOGCATEGORY_GENERAL, NAMED_LOGMODULE_SERVER,
|
||||
ISC_LOG_ERROR, "creating UDP/IPv4 port set: %s",
|
||||
isc_result_totext(result));
|
||||
goto cleanup_bindkeys_parser;
|
||||
}
|
||||
result = isc_portset_create(named_g_mctx, &v6portset);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
isc_log_write(NAMED_LOGCATEGORY_GENERAL, NAMED_LOGMODULE_SERVER,
|
||||
ISC_LOG_ERROR, "creating UDP/IPv6 port set: %s",
|
||||
isc_result_totext(result));
|
||||
goto cleanup_v4portset;
|
||||
}
|
||||
|
||||
result = isc_net_getudpportrange(AF_INET, &udpport_low, &udpport_high);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
isc_log_write(NAMED_LOGCATEGORY_GENERAL, NAMED_LOGMODULE_SERVER,
|
||||
ISC_LOG_ERROR,
|
||||
"get the default UDP/IPv4 port range: %s",
|
||||
isc_result_totext(result));
|
||||
goto cleanup_v6portset;
|
||||
}
|
||||
|
||||
isc_portset_addrange(v4portset, udpport_low, udpport_high);
|
||||
if (!ns_server_getoption(server->sctx, NS_SERVER_DISABLE4)) {
|
||||
isc_log_write(NAMED_LOGCATEGORY_GENERAL, NAMED_LOGMODULE_SERVER,
|
||||
ISC_LOG_INFO,
|
||||
"using default UDP/IPv4 port range: "
|
||||
"[%d, %d]",
|
||||
udpport_low, udpport_high);
|
||||
}
|
||||
|
||||
result = isc_net_getudpportrange(AF_INET6, &udpport_low, &udpport_high);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
isc_log_write(NAMED_LOGCATEGORY_GENERAL, NAMED_LOGMODULE_SERVER,
|
||||
ISC_LOG_ERROR,
|
||||
"get the default UDP/IPv6 port range: %s",
|
||||
isc_result_totext(result));
|
||||
goto cleanup_v6portset;
|
||||
}
|
||||
isc_portset_addrange(v6portset, udpport_low, udpport_high);
|
||||
if (!ns_server_getoption(server->sctx, NS_SERVER_DISABLE6)) {
|
||||
isc_log_write(NAMED_LOGCATEGORY_GENERAL, NAMED_LOGMODULE_SERVER,
|
||||
ISC_LOG_INFO,
|
||||
"using default UDP/IPv6 port range: "
|
||||
"[%d, %d]",
|
||||
udpport_low, udpport_high);
|
||||
}
|
||||
|
||||
dns_dispatchmgr_setavailports(named_g_dispatchmgr, v4portset,
|
||||
v6portset);
|
||||
|
||||
/*
|
||||
* Set the EDNS UDP size when we don't match a view.
|
||||
*/
|
||||
@@ -9402,11 +9344,7 @@ cleanup_keystorelist:
|
||||
}
|
||||
|
||||
cleanup_v6portset:
|
||||
isc_portset_destroy(named_g_mctx, &v6portset);
|
||||
|
||||
cleanup_v4portset:
|
||||
isc_portset_destroy(named_g_mctx, &v4portset);
|
||||
|
||||
cleanup_bindkeys_parser:
|
||||
|
||||
if (bindkeys_parser != NULL) {
|
||||
|
||||
@@ -757,34 +757,6 @@ shutdown_program(void *arg) {
|
||||
maybeshutdown();
|
||||
}
|
||||
|
||||
/*
|
||||
* Try honoring the operating system's preferred ephemeral port range.
|
||||
*/
|
||||
static void
|
||||
set_source_ports(dns_dispatchmgr_t *manager) {
|
||||
isc_portset_t *v4portset = NULL, *v6portset = NULL;
|
||||
in_port_t udpport_low, udpport_high;
|
||||
isc_result_t result;
|
||||
|
||||
result = isc_portset_create(gmctx, &v4portset);
|
||||
check_result(result, "isc_portset_create (v4)");
|
||||
result = isc_net_getudpportrange(AF_INET, &udpport_low, &udpport_high);
|
||||
check_result(result, "isc_net_getudpportrange (v4)");
|
||||
isc_portset_addrange(v4portset, udpport_low, udpport_high);
|
||||
|
||||
result = isc_portset_create(gmctx, &v6portset);
|
||||
check_result(result, "isc_portset_create (v6)");
|
||||
result = isc_net_getudpportrange(AF_INET6, &udpport_low, &udpport_high);
|
||||
check_result(result, "isc_net_getudpportrange (v6)");
|
||||
isc_portset_addrange(v6portset, udpport_low, udpport_high);
|
||||
|
||||
result = dns_dispatchmgr_setavailports(manager, v4portset, v6portset);
|
||||
check_result(result, "dns_dispatchmgr_setavailports");
|
||||
|
||||
isc_portset_destroy(gmctx, &v4portset);
|
||||
isc_portset_destroy(gmctx, &v6portset);
|
||||
}
|
||||
|
||||
static isc_result_t
|
||||
create_name(const char *str, char *namedata, size_t len, dns_name_t *name) {
|
||||
isc_buffer_t namesrc, namebuf;
|
||||
@@ -920,8 +892,6 @@ setup_system(void *arg ISC_ATTR_UNUSED) {
|
||||
result = dns_dispatchmgr_create(gmctx, loopmgr, netmgr, &dispatchmgr);
|
||||
check_result(result, "dns_dispatchmgr_create");
|
||||
|
||||
set_source_ports(dispatchmgr);
|
||||
|
||||
if (have_ipv6) {
|
||||
isc_sockaddr_any6(&bind_any6);
|
||||
result = dns_dispatch_createudp(dispatchmgr, &bind_any6,
|
||||
|
||||
@@ -2035,47 +2035,6 @@ parse_args(bool is_batchfile, int argc, char **argv) {
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Try honoring the operating system's preferred ephemeral port range.
|
||||
*/
|
||||
static void
|
||||
set_source_ports(dns_dispatchmgr_t *manager) {
|
||||
isc_portset_t *v4portset = NULL, *v6portset = NULL;
|
||||
in_port_t udpport_low, udpport_high;
|
||||
isc_result_t result;
|
||||
|
||||
result = isc_portset_create(mctx, &v4portset);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
fatal("isc_portset_create (v4) failed");
|
||||
}
|
||||
|
||||
result = isc_net_getudpportrange(AF_INET, &udpport_low, &udpport_high);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
fatal("isc_net_getudpportrange (v4) failed");
|
||||
}
|
||||
|
||||
isc_portset_addrange(v4portset, udpport_low, udpport_high);
|
||||
|
||||
result = isc_portset_create(mctx, &v6portset);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
fatal("isc_portset_create (v6) failed");
|
||||
}
|
||||
result = isc_net_getudpportrange(AF_INET6, &udpport_low, &udpport_high);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
fatal("isc_net_getudpportrange (v6) failed");
|
||||
}
|
||||
|
||||
isc_portset_addrange(v6portset, udpport_low, udpport_high);
|
||||
|
||||
result = dns_dispatchmgr_setavailports(manager, v4portset, v6portset);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
fatal("dns_dispatchmgr_setavailports failed");
|
||||
}
|
||||
|
||||
isc_portset_destroy(mctx, &v4portset);
|
||||
isc_portset_destroy(mctx, &v6portset);
|
||||
}
|
||||
|
||||
static void
|
||||
teardown(void *arg ISC_ATTR_UNUSED) {
|
||||
dns_view_detach(&view);
|
||||
@@ -2089,8 +2048,6 @@ static void
|
||||
setup(void *arg ISC_ATTR_UNUSED) {
|
||||
RUNCHECK(dns_dispatchmgr_create(mctx, loopmgr, netmgr, &dispatchmgr));
|
||||
|
||||
set_source_ports(dispatchmgr);
|
||||
|
||||
if (have_ipv4) {
|
||||
isc_sockaddr_any(&bind_any);
|
||||
} else {
|
||||
|
||||
@@ -135,48 +135,6 @@ client_resfind(resctx_t *rctx, dns_fetchresponse_t *event);
|
||||
static void
|
||||
destroyrestrans(dns_clientrestrans_t **transp);
|
||||
|
||||
/*
|
||||
* Try honoring the operating system's preferred ephemeral port range.
|
||||
*/
|
||||
static isc_result_t
|
||||
setsourceports(isc_mem_t *mctx, dns_dispatchmgr_t *manager) {
|
||||
isc_portset_t *v4portset = NULL, *v6portset = NULL;
|
||||
in_port_t udpport_low, udpport_high;
|
||||
isc_result_t result;
|
||||
|
||||
result = isc_portset_create(mctx, &v4portset);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
goto cleanup;
|
||||
}
|
||||
result = isc_net_getudpportrange(AF_INET, &udpport_low, &udpport_high);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
goto cleanup;
|
||||
}
|
||||
isc_portset_addrange(v4portset, udpport_low, udpport_high);
|
||||
|
||||
result = isc_portset_create(mctx, &v6portset);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
goto cleanup;
|
||||
}
|
||||
result = isc_net_getudpportrange(AF_INET6, &udpport_low, &udpport_high);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
goto cleanup;
|
||||
}
|
||||
isc_portset_addrange(v6portset, udpport_low, udpport_high);
|
||||
|
||||
result = dns_dispatchmgr_setavailports(manager, v4portset, v6portset);
|
||||
|
||||
cleanup:
|
||||
if (v4portset != NULL) {
|
||||
isc_portset_destroy(mctx, &v4portset);
|
||||
}
|
||||
if (v6portset != NULL) {
|
||||
isc_portset_destroy(mctx, &v6portset);
|
||||
}
|
||||
|
||||
return (result);
|
||||
}
|
||||
|
||||
static isc_result_t
|
||||
getudpdispatch(int family, dns_dispatchmgr_t *dispatchmgr,
|
||||
dns_dispatch_t **dispp, const isc_sockaddr_t *localaddr) {
|
||||
@@ -258,8 +216,6 @@ dns_client_create(isc_mem_t *mctx, isc_loopmgr_t *loopmgr, isc_nm_t *nm,
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
goto cleanup_client;
|
||||
}
|
||||
(void)setsourceports(mctx, client->dispatchmgr);
|
||||
|
||||
/*
|
||||
* If only one address family is specified, use it.
|
||||
* If neither family is specified, or if both are, use both.
|
||||
|
||||
+9
-74
@@ -872,69 +872,6 @@ tcp_recv(isc_nmhandle_t *handle, isc_result_t result, isc_region_t *region,
|
||||
dns_dispatch_detach(&disp); /* DISPATCH002 */
|
||||
}
|
||||
|
||||
/*%
|
||||
* Create a temporary port list to set the initial default set of dispatch
|
||||
* ephemeral ports. This is almost meaningless as the application will
|
||||
* normally set the ports explicitly, but is provided to fill some minor corner
|
||||
* cases.
|
||||
*/
|
||||
static void
|
||||
create_default_portset(isc_mem_t *mctx, int family, isc_portset_t **portsetp) {
|
||||
in_port_t low, high;
|
||||
|
||||
isc_net_getudpportrange(family, &low, &high);
|
||||
|
||||
isc_portset_create(mctx, portsetp);
|
||||
isc_portset_addrange(*portsetp, low, high);
|
||||
}
|
||||
|
||||
static isc_result_t
|
||||
setavailports(dns_dispatchmgr_t *mgr, isc_portset_t *v4portset,
|
||||
isc_portset_t *v6portset) {
|
||||
in_port_t *v4ports, *v6ports, p = 0;
|
||||
unsigned int nv4ports, nv6ports, i4 = 0, i6 = 0;
|
||||
|
||||
nv4ports = isc_portset_nports(v4portset);
|
||||
nv6ports = isc_portset_nports(v6portset);
|
||||
|
||||
v4ports = NULL;
|
||||
if (nv4ports != 0) {
|
||||
v4ports = isc_mem_cget(mgr->mctx, nv4ports, sizeof(in_port_t));
|
||||
}
|
||||
v6ports = NULL;
|
||||
if (nv6ports != 0) {
|
||||
v6ports = isc_mem_cget(mgr->mctx, nv6ports, sizeof(in_port_t));
|
||||
}
|
||||
|
||||
do {
|
||||
if (isc_portset_isset(v4portset, p)) {
|
||||
INSIST(i4 < nv4ports);
|
||||
v4ports[i4++] = p;
|
||||
}
|
||||
if (isc_portset_isset(v6portset, p)) {
|
||||
INSIST(i6 < nv6ports);
|
||||
v6ports[i6++] = p;
|
||||
}
|
||||
} while (p++ < 65535);
|
||||
INSIST(i4 == nv4ports && i6 == nv6ports);
|
||||
|
||||
if (mgr->v4ports != NULL) {
|
||||
isc_mem_cput(mgr->mctx, mgr->v4ports, mgr->nv4ports,
|
||||
sizeof(in_port_t));
|
||||
}
|
||||
mgr->v4ports = v4ports;
|
||||
mgr->nv4ports = nv4ports;
|
||||
|
||||
if (mgr->v6ports != NULL) {
|
||||
isc_mem_cput(mgr->mctx, mgr->v6ports, mgr->nv6ports,
|
||||
sizeof(in_port_t));
|
||||
}
|
||||
mgr->v6ports = v6ports;
|
||||
mgr->nv6ports = nv6ports;
|
||||
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
/*
|
||||
* Publics.
|
||||
*/
|
||||
@@ -943,9 +880,6 @@ isc_result_t
|
||||
dns_dispatchmgr_create(isc_mem_t *mctx, isc_loopmgr_t *loopmgr, isc_nm_t *nm,
|
||||
dns_dispatchmgr_t **mgrp) {
|
||||
dns_dispatchmgr_t *mgr = NULL;
|
||||
isc_portset_t *v4portset = NULL;
|
||||
isc_portset_t *v6portset = NULL;
|
||||
|
||||
REQUIRE(mctx != NULL);
|
||||
REQUIRE(mgrp != NULL && *mgrp == NULL);
|
||||
|
||||
@@ -971,13 +905,13 @@ dns_dispatchmgr_create(isc_mem_t *mctx, isc_loopmgr_t *loopmgr, isc_nm_t *nm,
|
||||
NULL);
|
||||
}
|
||||
|
||||
create_default_portset(mgr->mctx, AF_INET, &v4portset);
|
||||
create_default_portset(mgr->mctx, AF_INET6, &v6portset);
|
||||
|
||||
setavailports(mgr, v4portset, v6portset);
|
||||
|
||||
isc_portset_destroy(mgr->mctx, &v4portset);
|
||||
isc_portset_destroy(mgr->mctx, &v6portset);
|
||||
// create_default_portset(mgr->mctx, AF_INET, &v4portset);
|
||||
// create_default_portset(mgr->mctx, AF_INET6, &v6portset);
|
||||
//
|
||||
// setavailports(mgr, v4portset, v6portset);
|
||||
//
|
||||
// isc_portset_destroy(mgr->mctx, &v4portset);
|
||||
// isc_portset_destroy(mgr->mctx, &v6portset);
|
||||
|
||||
mgr->qids = cds_lfht_new(QIDS_INIT_SIZE, QIDS_MIN_SIZE, 0,
|
||||
CDS_LFHT_AUTO_RESIZE | CDS_LFHT_ACCOUNTING,
|
||||
@@ -1014,7 +948,8 @@ isc_result_t
|
||||
dns_dispatchmgr_setavailports(dns_dispatchmgr_t *mgr, isc_portset_t *v4portset,
|
||||
isc_portset_t *v6portset) {
|
||||
REQUIRE(VALID_DISPATCHMGR(mgr));
|
||||
return (setavailports(mgr, v4portset, v6portset));
|
||||
// return (setavailports(mgr, v4portset, v6portset));
|
||||
return ISC_R_SUCCESS;
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
Reference in New Issue
Block a user