Check-in [7793b78e70]
Bounty program for improvements to Tcl and certain Tcl packages.
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
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");