Push the SSL_CTX session_timeout zero logic up.
This special-case is almost unexposed (the timeout is initialized to the default) except if the caller calls SSL_CTX_set_timeout(0). Preserve that behavior by mapping 0 to SSL_DEFAULT_SESSION_TIMEOUT in SSL_CTX_set_timeout but simplify the internal state. Change-Id: Ice03a519c25284b925f1e0cf485f2d8c54dc5038 Reviewed-on: https://boringssl-review.googlesource.com/13502 Commit-Queue: David Benjamin <davidben@google.com> Reviewed-by: Adam Langley <agl@google.com>
This commit is contained in:
parent
0efa7592e3
commit
0b1bb12ce8
@ -3872,8 +3872,7 @@ struct ssl_ctx_st {
|
||||
* SSL_accept which cache SSL_SESSIONS. */
|
||||
int session_cache_mode;
|
||||
|
||||
/* If timeout is not 0, it is the default timeout value set when SSL_new() is
|
||||
* called. This has been put in to make life easier to set things up */
|
||||
/* session_timeout is the default lifetime for new sessions, in seconds. */
|
||||
long session_timeout;
|
||||
|
||||
/* If this callback is not null, it will be called each time a session id is
|
||||
|
@ -473,12 +473,7 @@ SSL *SSL_new(SSL_CTX *ctx) {
|
||||
ssl->ctx->signed_cert_timestamps_enabled;
|
||||
ssl->ocsp_stapling_enabled = ssl->ctx->ocsp_stapling_enabled;
|
||||
|
||||
ssl->session_timeout = SSL_DEFAULT_SESSION_TIMEOUT;
|
||||
|
||||
/* If the context has a default timeout, use it over the default. */
|
||||
if (ctx->session_timeout != 0) {
|
||||
ssl->session_timeout = ctx->session_timeout;
|
||||
}
|
||||
ssl->session_timeout = ctx->session_timeout;
|
||||
|
||||
/* If the context has an OCSP response, use it. */
|
||||
if (ctx->ocsp_response != NULL) {
|
||||
|
@ -934,6 +934,11 @@ long SSL_CTX_set_timeout(SSL_CTX *ctx, long timeout) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Historically, zero was treated as |SSL_DEFAULT_SESSION_TIMEOUT|. */
|
||||
if (timeout == 0) {
|
||||
timeout = SSL_DEFAULT_SESSION_TIMEOUT;
|
||||
}
|
||||
|
||||
long old_timeout = ctx->session_timeout;
|
||||
ctx->session_timeout = timeout;
|
||||
return old_timeout;
|
||||
|
Loading…
Reference in New Issue
Block a user