Hanno Becker 2fddd3765e Check same-port-reconnect from client outside of record hdr parsing
Previously, `ssl_handle_possible_reconnect()` was part of
`ssl_parse_record_header()`, which was required to return a non-zero error
code to indicate a record which should not be further processed because it
was invalid, unexpected, duplicate, .... In this case, some error codes
would lead to some actions to be taken, e.g. `MBEDTLS_ERR_SSL_EARLY_MESSAGE`
to potential buffering of the record, but eventually, the record would be
dropped regardless of the precise value of the error code. The error code
`MBEDTLS_ERR_SSL_HELLO_VERIFY_REQUIRED` returned from
`ssl_handle_possible_reconnect()` did not receive any special treatment and
lead to silent dopping of the record - in particular, it was never returned
to the user.

In the new logic this commit introduces, `ssl_handle_possible_reconnect()` is
part of `ssl_check_client_reconnect()` which is triggered _after_
`ssl_parse_record_header()` found an unexpected record, which is already in
the code-path eventually dropping the record; we want to leave this code-path
only if a valid cookie has been found and we want to reset, but do nothing
otherwise. That's why `ssl_handle_possible_reconnect()` now returns `0` unless
a valid cookie has been found or a fatal error occurred.
2019-08-14 14:41:06 +01:00
..
2019-02-19 17:59:00 +00:00
2019-04-02 10:07:28 -07:00
2019-04-02 10:07:28 -07:00
2019-06-25 13:33:51 +01:00
2019-02-19 17:59:00 +00:00
2019-02-19 17:59:00 +00:00
2019-02-19 17:59:00 +00:00
2019-07-02 20:05:16 +02:00
2019-02-05 05:09:05 -05:00
2019-02-19 17:59:00 +00:00
2019-02-19 17:59:00 +00:00
2019-06-20 10:51:21 +01:00
2019-08-06 11:25:45 +03:00