diff --git a/CHANGES b/CHANGES index eb8e76cb40..113b30dd3f 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,9 @@ + 272. [bug] The sending of large TCP responses was canceled + in mid-transmission due to a race condition + caused by the failure to set the client object's + "newstate" variable correctly when transitioning + to the "working" state. + 271. [func] Attempt to probe the number of cpus in named if unspecified rather than defaulting to 1. diff --git a/bin/named/client.c b/bin/named/client.c index 4b6dd57318..4e9763b9a2 100644 --- a/bin/named/client.c +++ b/bin/named/client.c @@ -867,7 +867,7 @@ client_request(isc_task_t *task, isc_event_t *event) { if (exit_check(client)) goto cleanup_serverlock; - client->state = NS_CLIENTSTATE_WORKING; + client->state = client->newstate = NS_CLIENTSTATE_WORKING; isc_stdtime_get(&client->requesttime); client->now = client->requesttime;