Check-in [7793b78e70]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

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 2017-11-08 14:59:25
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
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to tlsBIO.c.

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