diff --git a/mread.c b/mread.c index bfbb6b6..4b473f0 100644 --- a/mread.c +++ b/mread.c @@ -50,6 +50,8 @@ static int sock_read( Word terr; rrBuff rr; + if (e->_SHUT_RD) + return 0; if (e->_TYPE == SOCK_DGRAM) { diff --git a/mwrite.c b/mwrite.c index b4e9bf0..aab92a6 100644 --- a/mwrite.c +++ b/mwrite.c @@ -25,6 +25,7 @@ int mwrite(Entry *e, void *p1, void *p2, void *p3, void *p4, void *p5) *outbytes = 0; + if (Debug > 0) { s16_debug_printf("write nbytes = %ld", nbytes); @@ -39,6 +40,8 @@ int mwrite(Entry *e, void *p1, void *p2, void *p3, void *p4, void *p5) s16_debug_puts(""); s16_debug_dump(buffer, (Word)nbytes); } + + if (e->_SHUT_WR) return EPIPE; if (e->_TYPE == SOCK_DGRAM) {