Changes On Branch 7793b78e70ee2048
Bounty program for improvements to Tcl and certain Tcl packages.

Changes In Branch bug-eof-loop-6dd5588df6-2 Excluding Merge-Ins

This is equivalent to a diff from 12bf5e37e0 to 7793b78e70

2017-12-21
20:25
Merged in changes to address [f798e2ea12]. The code to manipulate the channel options may not be needed at all, we will review it to see if there are any issues with removing it altogether check-in: a811816bd3 user: rkeene tags: trunk
05:34
Added experiment patch for [f798e2ea12] to preserve channel state when importing a channel Closed-Leaf check-in: 60f37290f3 user: rkeene tags: bug-f798e2ea12
2017-11-08
15:00
TclTLS 1.7.14 check-in: 70cbcd6815 user: rkeene tags: tls-1-7, tls-1-7-14
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
2017-09-01
00:16
Try harder to ensure the right SSL libraries are used check-in: 6704c33e48 user: rkeene tags: trunk

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