Remove some stale fields from ns_client_t; make sendbuf allocated on heap

(cherry picked from commit 8c6c07286f)
This commit is contained in:
Witold Kręcicki
2020-01-31 22:56:32 +01:00
parent 1af2ca358e
commit 0edf2e290b
2 changed files with 9 additions and 22 deletions

View File

@@ -189,10 +189,6 @@ ns_client_settimeout(ns_client_t *client, unsigned int seconds) {
static void
ns_client_endrequest(ns_client_t *client) {
INSIST(client->naccepts == 0);
INSIST(client->nreads == 0);
INSIST(client->nsends == 0);
INSIST(client->nrecvs == 0);
INSIST(client->nupdates == 0);
INSIST(client->state == NS_CLIENTSTATE_WORKING ||
client->state == NS_CLIENTSTATE_RECURSING);
@@ -1622,7 +1618,7 @@ ns__client_put_cb(void *client0) {
clientmgr_detach(&client->manager);
}
isc_mem_put(client->mctx, client->recvbuf, NS_CLIENT_RECV_BUFFER_SIZE);
isc_mem_put(client->mctx, client->sendbuf, NS_CLIENT_SEND_BUFFER_SIZE);
if (client->opt != NULL) {
INSIST(dns_rdataset_isassociated(client->opt));
dns_rdataset_disassociate(client->opt);
@@ -1712,7 +1708,6 @@ ns__client_request(isc_nmhandle_t *handle, isc_region_t *region, void *arg) {
}
client->state = NS_CLIENTSTATE_READY;
client->dscp = ifp->dscp;
isc_task_pause(client->task);
if (client->handle == NULL) {
@@ -2316,8 +2311,8 @@ ns__client_setup(ns_client_t *client, ns_clientmgr_t *mgr, bool new) {
goto cleanup;
}
client->recvbuf = isc_mem_get(client->mctx,
NS_CLIENT_RECV_BUFFER_SIZE);
client->sendbuf = isc_mem_get(client->mctx,
NS_CLIENT_SEND_BUFFER_SIZE);
/*
* Set magic earlier than usual because ns_query_init()
* and the functions it calls will require it.
@@ -2331,7 +2326,7 @@ ns__client_setup(ns_client_t *client, ns_clientmgr_t *mgr, bool new) {
ns_clientmgr_t *oldmgr = client->manager;
ns_server_t *sctx = client->sctx;
isc_task_t *task = client->task;
unsigned char *recvbuf = client->recvbuf;
unsigned char *sendbuf = client->sendbuf;
dns_message_t *message = client->message;
isc_mem_t *oldmctx = client->mctx;
ns_query_t query = client->query;
@@ -2341,14 +2336,13 @@ ns__client_setup(ns_client_t *client, ns_clientmgr_t *mgr, bool new) {
.manager = oldmgr,
.sctx = sctx,
.task = task,
.recvbuf = recvbuf,
.sendbuf = sendbuf,
.message = message,
.query = query };
}
client->state = NS_CLIENTSTATE_INACTIVE;
client->udpsize = 512;
client->dscp = -1;
client->ednsversion = -1;
dns_name_init(&client->signername, NULL);
dns_ecs_init(&client->ecs);
@@ -2365,9 +2359,9 @@ ns__client_setup(ns_client_t *client, ns_clientmgr_t *mgr, bool new) {
return (ISC_R_SUCCESS);
cleanup:
if (client->recvbuf != NULL) {
isc_mem_put(client->mctx, client->recvbuf,
NS_CLIENT_RECV_BUFFER_SIZE);
if (client->sendbuf != NULL) {
isc_mem_put(client->mctx, client->sendbuf,
NS_CLIENT_SEND_BUFFER_SIZE);
}
if (client->message != NULL) {

View File

@@ -83,7 +83,6 @@
#define NS_CLIENT_TCP_BUFFER_SIZE (65535 + 2)
#define NS_CLIENT_SEND_BUFFER_SIZE 4096
#define NS_CLIENT_RECV_BUFFER_SIZE 4096
/*!
* Client object states. Ordering is significant: higher-numbered
@@ -178,12 +177,7 @@ struct ns_client {
ns_server_t * sctx;
ns_clientmgr_t * manager;
ns_clientstate_t state;
int naccepts;
int nreads;
int nsends;
int nrecvs;
int nupdates;
int nctls;
bool shuttingdown;
unsigned int attributes;
isc_task_t * task;
@@ -192,8 +186,7 @@ struct ns_client {
isc_nmhandle_t * handle;
unsigned char * tcpbuf;
dns_message_t * message;
unsigned char * recvbuf;
unsigned char sendbuf[NS_CLIENT_SEND_BUFFER_SIZE];
unsigned char * sendbuf;
dns_rdataset_t * opt;
uint16_t udpsize;
uint16_t extflags;