@@ -84,35 +84,38 @@ int bufLen; { Tcl_Channel chan = Tls_GetParent((State*)bio->ptr); int ret = 0; - dprintf("BioRead(%p, , %d) [%p]", - (void *) bio, bufLen, (void *) chan); + dprintf("BioRead(%p, , %d) [%p]", (void *) bio, bufLen, (void *) chan); if (buf == NULL) return 0; if (channelTypeVersion == TLS_CHANNEL_VERSION_2) { ret = Tcl_ReadRaw(chan, buf, bufLen); } else { ret = Tcl_Read(chan, buf, bufLen); } - dprintf("[%p] BioRead(%d) -> %d [%d.%d]", + dprintf("[%p] BioRead(%d) -> %d [tclEof=%d; tclErrno=%d]", (void *) chan, bufLen, ret, Tcl_Eof(chan), Tcl_GetErrno()); BIO_clear_flags(bio, BIO_FLAGS_READ|BIO_FLAGS_SHOULD_RETRY); if (ret == 0) { if (!Tcl_Eof(chan)) { + dprintf("Got 0 from Tcl_Read or Tcl_ReadRaw, and EOF is set -- ret == -1 now"); BIO_set_retry_read(bio); ret = -1; } } if (BIO_should_write(bio)) { BIO_set_retry_write(bio); } + + dprintf("BioRead(%p, , %d) [%p] returning %i", (void *) bio, bufLen, (void *) chan, ret); + return ret; } static int BioPuts (bio, str)