comparison src/http/ngx_http_upstream_round_robin.c @ 7320:696df3ac27ac

SSL: save sessions for upstream peers using a callback function. In TLSv1.3, NewSessionTicket messages arrive after the handshake and can come at any time. Therefore we use a callback to save the session when we know about it. This approach works for < TLSv1.3 as well. The callback function is set once per location on merge phase. Since SSL_get_session() in BoringSSL returns an unresumable session for TLSv1.3, peer save_session() methods have been updated as well to use a session supplied within the callback. To preserve API, the session is cached in c->ssl->session. It is preferably accessed in save_session() methods by ngx_ssl_get_session() and ngx_ssl_get0_session() wrappers.
author Sergey Kandaurov <pluknet@nginx.com>
date Tue, 17 Jul 2018 12:53:23 +0300
parents d1d0dd69a419
children b99cbafd51da
comparison
equal deleted inserted replaced
7319:dcab86115261 7320:696df3ac27ac
742 #if (NGX_HTTP_UPSTREAM_ZONE) 742 #if (NGX_HTTP_UPSTREAM_ZONE)
743 peers = rrp->peers; 743 peers = rrp->peers;
744 744
745 if (peers->shpool) { 745 if (peers->shpool) {
746 746
747 ssl_session = SSL_get0_session(pc->connection->ssl->connection); 747 ssl_session = ngx_ssl_get0_session(pc->connection);
748 748
749 if (ssl_session == NULL) { 749 if (ssl_session == NULL) {
750 return; 750 return;
751 } 751 }
752 752