REQUIRE(VALID_UVREQ(uvreq));
REQUIRE(VALID_NMHANDLE(uvreq->handle));
- if (eresult == ISC_R_SUCCESS) {
+ if (eresult == ISC_R_SUCCESS || eresult == ISC_R_TIMEDOUT) {
isc__netievent_readcb_t ievent = { .sock = sock,
.req = uvreq,
.result = eresult };
destroy:
isc__nmsocket_prep_destroy(sock);
- /* We need to detach from quota after the read callback function had a
- * chance to be executed. */
- if (sock->quota) {
+ /*
+ * We need to detach from quota after the read callback function had a
+ * chance to be executed.
+ */
+ if (sock->quota != NULL) {
isc_quota_detach(&sock->quota);
}
}
destroy:
isc__nmsocket_prep_destroy(sock);
- /* We need to detach from quota after the read callback function had a
- * chance to be executed. */
- if (sock->quota) {
+ /*
+ * We need to detach from quota after the read callback function had a
+ * chance to be executed.
+ */
+ if (sock->quota != NULL) {
isc_quota_detach(&sock->quota);
}
}
destroy:
isc__nmsocket_prep_destroy(sock);
- /* We need to detach from quota after the read callback function
- * had a chance to be executed. */
- if (sock->quota) {
+ /*
+ * We need to detach from quota after the read callback function
+ * had a chance to be executed.
+ */
+ if (sock->quota != NULL) {
isc_quota_detach(&sock->quota);
}
}
REQUIRE(result != ISC_R_SUCCESS);
if (atomic_load(&sock->client)) {
+ isc__nmsocket_timer_stop(sock);
isc__nm_stop_reading(sock);
if (!sock->recv_read) {