send_data->uvbuf.base,
send_data->uvbuf.len, &len);
if (rv != 1 || len != send_data->uvbuf.len) {
- result = received_shutdown ? ISC_R_CANCELED
- : ISC_R_TLSERROR;
+ result = received_shutdown || sent_shutdown
+ ? ISC_R_CANCELED
+ : ISC_R_TLSERROR;
send_data->cb.send(send_data->handle, result,
send_data->cbarg);
send_data = NULL;
* connection and called isc_tls_send(). The
* socket will be detached there, in
* tls_senddone().*/
- if (sent_shutdown && received_shutdown) {
+ if (sent_shutdown || received_shutdown) {
return;
- } else if (!received_shutdown) {
+ } else {
isc__nmsocket_detach(&sock);
return;
}