diff --git a/bin/named/controlconf.c b/bin/named/controlconf.c index 3a276cdca2..2d7bcd8f60 100644 --- a/bin/named/controlconf.c +++ b/bin/named/controlconf.c @@ -231,7 +231,7 @@ control_senddone(isc_nmhandle_t *handle, isc_result_t result, void *arg) { } if (atomic_load_acquire(&listener->controls->shuttingdown) || - result == ISC_R_CANCELED) + result == ISC_R_SHUTTINGDOWN) { goto cleanup_sendhandle; } else if (result != ISC_R_SUCCESS) { @@ -414,7 +414,7 @@ control_recvmessage(isc_nmhandle_t *handle, isc_result_t result, void *arg) { } if (result != ISC_R_SUCCESS) { - if (result == ISC_R_SHUTTINGDOWN || result == ISC_R_CANCELED) { + if (result == ISC_R_SHUTTINGDOWN) { atomic_store_release(&listener->controls->shuttingdown, true); } else if (result != ISC_R_EOF) { @@ -630,7 +630,7 @@ control_newconn(isc_nmhandle_t *handle, isc_result_t result, void *arg) { isc_sockaddr_t peeraddr; if (result != ISC_R_SUCCESS) { - if (result == ISC_R_CANCELED) { + if (result == ISC_R_SHUTTINGDOWN) { shutdown_listener(listener); } return (result); diff --git a/lib/isccc/ccmsg.c b/lib/isccc/ccmsg.c index a2d4ad3d4c..9ee48ab9c0 100644 --- a/lib/isccc/ccmsg.c +++ b/lib/isccc/ccmsg.c @@ -51,17 +51,22 @@ recv_data(isc_nmhandle_t *handle, isc_result_t eresult, isc_region_t *region, INSIST(VALID_CCMSG(ccmsg)); - if (eresult == ISC_R_CANCELED || eresult == ISC_R_EOF) { + switch (eresult) { + case ISC_R_SHUTTINGDOWN: + case ISC_R_CANCELED: + case ISC_R_EOF: ccmsg->result = eresult; goto done; - } else if (region == NULL && eresult == ISC_R_SUCCESS) { - ccmsg->result = ISC_R_EOF; - goto done; - } else if (eresult != ISC_R_SUCCESS) { + case ISC_R_SUCCESS: + if (region == NULL) { + ccmsg->result = ISC_R_EOF; + goto done; + } + ccmsg->result = ISC_R_SUCCESS; + break; + default: ccmsg->result = eresult; goto done; - } else { - ccmsg->result = eresult; } if (!ccmsg->length_received) {