Overview
Comment: | More work towards getting the state engine for waiting for a connection to come back together |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | tls-1-7 |
Files: | files | file ages | folders |
SHA1: |
5aea4802ca88a0b37bae4b6ebdec4ab8 |
User & Date: | rkeene on 2016-12-07 15:10:02 |
Other Links: | branch diff | manifest | tags |
Context
2016-12-07
| ||
15:12 | Added more debugging check-in: ed1ce834df user: rkeene tags: tls-1-7 | |
15:10 | More work towards getting the state engine for waiting for a connection to come back together check-in: 5aea4802ca user: rkeene tags: tls-1-7 | |
15:02 | Updated wording of debug messages to be correct check-in: 7c044da68e user: rkeene tags: tls-1-7 | |
Changes
Modified tlsIO.c
from [d0dab0f21b]
to [77155f526d].
︙ | ︙ | |||
352 353 354 355 356 357 358 359 360 361 362 363 364 365 | /* Soft EOF */ *errorCodePtr = 0; bytesRead = 0; } goto input; } } if (statePtr->flags & TLS_TCL_INIT) { statePtr->flags &= ~(TLS_TCL_INIT); } /* * We need to clear the SSL error stack now because we sometimes reach * this function with leftover errors in the stack. If BIO_read * returns -1 and intends EAGAIN, there is a leftover error, it will be | > | 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 | /* Soft EOF */ *errorCodePtr = 0; bytesRead = 0; } goto input; } } if (statePtr->flags & TLS_TCL_INIT) { statePtr->flags &= ~(TLS_TCL_INIT); } /* * We need to clear the SSL error stack now because we sometimes reach * this function with leftover errors in the stack. If BIO_read * returns -1 and intends EAGAIN, there is a leftover error, it will be |
︙ | ︙ | |||
434 435 436 437 438 439 440 441 442 443 444 445 446 447 | *errorCodePtr = EAGAIN; goto output; } if (!SSL_is_init_finished(statePtr->ssl)) { written = Tls_WaitForConnect(statePtr, errorCodePtr); if (written <= 0) { goto output; } } if (statePtr->flags & TLS_TCL_INIT) { statePtr->flags &= ~(TLS_TCL_INIT); } if (toWrite == 0) { | > > | 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 | *errorCodePtr = EAGAIN; goto output; } if (!SSL_is_init_finished(statePtr->ssl)) { written = Tls_WaitForConnect(statePtr, errorCodePtr); if (written <= 0) { dprintf("Tls_WaitForConnect returned %i (err = %i)", written, *errorCodePtr); goto output; } } if (statePtr->flags & TLS_TCL_INIT) { statePtr->flags &= ~(TLS_TCL_INIT); } if (toWrite == 0) { |
︙ | ︙ | |||
905 906 907 908 909 910 911 912 913 914 915 916 917 918 | *errorCodePtr = ECONNRESET; return -1; } for (;;) { /* Not initialized yet! */ if (statePtr->flags & TLS_TCL_SERVER) { err = SSL_accept(statePtr->ssl); } else { err = SSL_connect(statePtr->ssl); } /*SSL_write(statePtr->ssl, (char*)&err, 0); HACK!!! */ if (err > 0) { BIO_flush(statePtr->bio); | > > > > | > < | > > | 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 | *errorCodePtr = ECONNRESET; return -1; } for (;;) { /* Not initialized yet! */ if (statePtr->flags & TLS_TCL_SERVER) { dprintf("Calling SSL_accept()"); err = SSL_accept(statePtr->ssl); } else { dprintf("Calling SSL_connect()"); err = SSL_connect(statePtr->ssl); } /*SSL_write(statePtr->ssl, (char*)&err, 0); HACK!!! */ if (err > 0) { dprintf("That seems to have gone okay"); BIO_flush(statePtr->bio); } else { int rc = SSL_get_error(statePtr->ssl, err); dprintf("Got error: %i (rc = %i)", err, rc); if (rc == SSL_ERROR_SSL) { Tls_Error(statePtr, (char *)ERR_reason_error_string(ERR_get_error())); statePtr->flags |= TLS_TCL_HANDSHAKE_FAILED; *errorCodePtr = ECONNABORTED; return -1; } else if (BIO_should_retry(statePtr->bio)) { if (statePtr->flags & TLS_TCL_ASYNC) { dprintf("E! "); *errorCodePtr = EAGAIN; return -1; } else { continue; } } else if (err == 0) { if (Tcl_Eof(statePtr->self)) { dprintf("Error = 0 and EOF is set, returning with 0"); return 0; } dprintf("CR! "); *errorCodePtr = ECONNRESET; return -1; } if (statePtr->flags & TLS_TCL_SERVER) { |
︙ | ︙ |