diff --git a/pkg/vere/io/conn.c b/pkg/vere/io/conn.c index cd0cfc3c66..12ed601bdd 100644 --- a/pkg/vere/io/conn.c +++ b/pkg/vere/io/conn.c @@ -866,6 +866,10 @@ _conn_ef_handle(u3_conn* con_u, can_u->mor_u.bal_f(can_u, -4, "handle-unknown"); u3_king_bail(); } + + if ( !uv_is_readable((uv_stream_t*)&con_u->san_u->pyp_u) ) { + _conn_close_chan(con_u->san_u, can_u); + } } else { u3l_log("conn: handle-no-coq %" PRIx32 " %" PRIu32, diff --git a/pkg/vere/newt.c b/pkg/vere/newt.c index 40bfcff70e..43707f811b 100644 --- a/pkg/vere/newt.c +++ b/pkg/vere/newt.c @@ -179,9 +179,9 @@ _newt_read_cb(uv_stream_t* str_u, if ( UV_EOF != len_i ) { fprintf(stderr, "newt: read failed %s\r\n", uv_strerror(len_i)); + mot_u->bal_f(mot_u->ptr_v, len_i, uv_strerror(len_i)); } - mot_u->bal_f(mot_u->ptr_v, len_i, uv_strerror(len_i)); } // EAGAIN/EWOULDBLOCK //