Index: tlsBIO.c ================================================================== --- tlsBIO.c +++ tlsBIO.c @@ -118,13 +118,19 @@ chan = Tls_GetParent((State *) BIO_get_data(bio), 0); dprintf("[chan=%p] BioWrite(%p, , %d)", (void *)chan, (void *) bio, bufLen); ret = Tcl_WriteRaw(chan, buf, bufLen); +if (bufLen == 31) { +ret = -1; +tclEofChan = 0; +tclErrno = EPIPE; +} else { tclEofChan = Tcl_Eof(chan); tclErrno = Tcl_GetErrno(); +} dprintf("[chan=%p] BioWrite(%d) -> %d [tclEof=%d; tclErrno=%d]", (void *) chan, bufLen, ret, tclEofChan, Tcl_GetErrno()); BIO_clear_flags(bio, BIO_FLAGS_WRITE | BIO_FLAGS_SHOULD_RETRY);