Check-in [f2deea0396]
Bounty program for improvements to Tcl and certain Tcl packages.
Overview
Comment:Updated to support retrying TLS negotiations if we get an EAGAIN error
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | wip-fix-io-layer
Files: files | file ages | folders
SHA1: f2deea0396b53b47470ca90b30b4c2c262f09258
User & Date: rkeene on 2016-12-13 04:48:10
Other Links: branch diff | manifest | tags
Context
2016-12-13
04:48
Updated BIO handling to be more clear check-in: 2dbea6a68d user: rkeene tags: wip-fix-io-layer
04:48
Updated to support retrying TLS negotiations if we get an EAGAIN error check-in: f2deea0396 user: rkeene tags: wip-fix-io-layer
03:46
Made all unused variables self-assignments check-in: 7b169db8a3 user: rkeene tags: wip-fix-io-layer
Changes

Modified tlsIO.c from [b6a83cdb8f] to [b42f920022].

797
798
799
800
801
802
803


804
805
806
807
808
809
810
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812






+
+







		dprintf("Got error: %i (rc = %i)", err, rc);

		bioShouldRetry = 0;
		if (err <= 0) {
			if (rc == SSL_ERROR_WANT_CONNECT || rc == SSL_ERROR_WANT_ACCEPT || rc == SSL_ERROR_WANT_READ || rc == SSL_ERROR_WANT_WRITE) {
				bioShouldRetry = 1;
			} else if (BIO_should_retry(statePtr->bio)) {
				bioShouldRetry = 1;
			} else if (rc == SSL_ERROR_SYSCALL && Tcl_GetErrno() == EAGAIN) {
				bioShouldRetry = 1;
			}
		} else {
			if (!SSL_is_init_finished(statePtr->ssl)) {
				bioShouldRetry = 1;
			}
		}