Check-in [7793b78e70]
Overview
Comment:Still looking into this
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | bug-eof-loop-6dd5588df6-2
Files: files | file ages | folders
SHA1: 7793b78e70ee20482bc2e2d343c47e27ad85007c
User & Date: rkeene on 2017-11-08 14:59:25
Other Links: branch diff | manifest | tags
Context
2017-11-08
14:59
Still looking into this Leaf check-in: 7793b78e70 user: rkeene tags: bug-eof-loop-6dd5588df6-2
2017-10-17
03:57
Updated to use a more commonly accepted regexp when replacing the OpenSSL function name (addresses [6c9bf49455]) check-in: 12bf5e37e0 user: rkeene tags: trunk
Changes
Modified tlsBIO.c from [c3e8b987ad] to [91c2172d0d].
116
117
118
119
120
121
122





123
124
125

126
127
128
129
130
131
132
	int tclEofChan, tclErrno;

	chan = Tls_GetParent((State *) BIO_get_data(bio), 0);

	dprintf("[chan=%p] BioWrite(%p, <buf>, %d)", (void *)chan, (void *) bio, bufLen);

	ret = Tcl_WriteRaw(chan, buf, bufLen);






	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);

	if (tclEofChan && ret <= 0) {
		dprintf("Got EOF while reading, returning a Connection Reset error which maps to Soft EOF");







>
>
>
>
>



>







116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
	int tclEofChan, tclErrno;

	chan = Tls_GetParent((State *) BIO_get_data(bio), 0);

	dprintf("[chan=%p] BioWrite(%p, <buf>, %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);

	if (tclEofChan && ret <= 0) {
		dprintf("Got EOF while reading, returning a Connection Reset error which maps to Soft EOF");