diff options
author | jsing <> | 2017-01-23 00:12:55 +0000 |
---|---|---|
committer | jsing <> | 2017-01-23 00:12:55 +0000 |
commit | ebf810ecb3df5037cf52818180e9d1f9b811019d (patch) | |
tree | dbb00e45128efea271755d0b8b656130a43435f6 /src/lib | |
parent | fcfe199cc99431d4e250ada852b3989b210b67ca (diff) | |
download | openbsd-ebf810ecb3df5037cf52818180e9d1f9b811019d.tar.gz openbsd-ebf810ecb3df5037cf52818180e9d1f9b811019d.tar.bz2 openbsd-ebf810ecb3df5037cf52818180e9d1f9b811019d.zip |
Move the stats struct from SSL_CTX to internal.
ok beck@
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/libssl/d1_clnt.c | 10 | ||||
-rw-r--r-- | src/lib/libssl/d1_srvr.c | 8 | ||||
-rw-r--r-- | src/lib/libssl/s23_clnt.c | 4 | ||||
-rw-r--r-- | src/lib/libssl/s23_srvr.c | 4 | ||||
-rw-r--r-- | src/lib/libssl/s3_clnt.c | 10 | ||||
-rw-r--r-- | src/lib/libssl/s3_srvr.c | 8 | ||||
-rw-r--r-- | src/lib/libssl/ssl.h | 21 | ||||
-rw-r--r-- | src/lib/libssl/ssl_lib.c | 30 | ||||
-rw-r--r-- | src/lib/libssl/ssl_locl.h | 22 | ||||
-rw-r--r-- | src/lib/libssl/ssl_sess.c | 12 |
10 files changed, 64 insertions, 65 deletions
diff --git a/src/lib/libssl/d1_clnt.c b/src/lib/libssl/d1_clnt.c index af3196ff17..71cd845ac6 100644 --- a/src/lib/libssl/d1_clnt.c +++ b/src/lib/libssl/d1_clnt.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: d1_clnt.c,v 1.62 2017/01/22 09:02:07 jsing Exp $ */ | 1 | /* $OpenBSD: d1_clnt.c,v 1.63 2017/01/23 00:12:54 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * DTLS implementation written by Nagendra Modadugu | 3 | * DTLS implementation written by Nagendra Modadugu |
4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. | 4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. |
@@ -205,7 +205,7 @@ dtls1_connect(SSL *s) | |||
205 | case SSL_ST_RENEGOTIATE: | 205 | case SSL_ST_RENEGOTIATE: |
206 | s->renegotiate = 1; | 206 | s->renegotiate = 1; |
207 | s->state = SSL_ST_CONNECT; | 207 | s->state = SSL_ST_CONNECT; |
208 | s->ctx->stats.sess_connect_renegotiate++; | 208 | s->ctx->internal->stats.sess_connect_renegotiate++; |
209 | /* break */ | 209 | /* break */ |
210 | case SSL_ST_BEFORE: | 210 | case SSL_ST_BEFORE: |
211 | case SSL_ST_CONNECT: | 211 | case SSL_ST_CONNECT: |
@@ -242,7 +242,7 @@ dtls1_connect(SSL *s) | |||
242 | /* don't push the buffering BIO quite yet */ | 242 | /* don't push the buffering BIO quite yet */ |
243 | 243 | ||
244 | s->state = SSL3_ST_CW_CLNT_HELLO_A; | 244 | s->state = SSL3_ST_CW_CLNT_HELLO_A; |
245 | s->ctx->stats.sess_connect++; | 245 | s->ctx->internal->stats.sess_connect++; |
246 | s->init_num = 0; | 246 | s->init_num = 0; |
247 | /* mark client_random uninitialized */ | 247 | /* mark client_random uninitialized */ |
248 | memset(s->s3->client_random, 0, | 248 | memset(s->s3->client_random, 0, |
@@ -555,12 +555,12 @@ dtls1_connect(SSL *s) | |||
555 | 555 | ||
556 | ssl_update_cache(s, SSL_SESS_CACHE_CLIENT); | 556 | ssl_update_cache(s, SSL_SESS_CACHE_CLIENT); |
557 | if (s->hit) | 557 | if (s->hit) |
558 | s->ctx->stats.sess_hit++; | 558 | s->ctx->internal->stats.sess_hit++; |
559 | 559 | ||
560 | ret = 1; | 560 | ret = 1; |
561 | /* s->server=0; */ | 561 | /* s->server=0; */ |
562 | s->handshake_func = dtls1_connect; | 562 | s->handshake_func = dtls1_connect; |
563 | s->ctx->stats.sess_connect_good++; | 563 | s->ctx->internal->stats.sess_connect_good++; |
564 | 564 | ||
565 | if (cb != NULL) | 565 | if (cb != NULL) |
566 | cb(s, SSL_CB_HANDSHAKE_DONE, 1); | 566 | cb(s, SSL_CB_HANDSHAKE_DONE, 1); |
diff --git a/src/lib/libssl/d1_srvr.c b/src/lib/libssl/d1_srvr.c index 8722c1690d..7cb1fdf3de 100644 --- a/src/lib/libssl/d1_srvr.c +++ b/src/lib/libssl/d1_srvr.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: d1_srvr.c,v 1.72 2017/01/22 09:02:07 jsing Exp $ */ | 1 | /* $OpenBSD: d1_srvr.c,v 1.73 2017/01/23 00:12:54 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * DTLS implementation written by Nagendra Modadugu | 3 | * DTLS implementation written by Nagendra Modadugu |
4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. | 4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. |
@@ -259,11 +259,11 @@ dtls1_accept(SSL *s) | |||
259 | } | 259 | } |
260 | 260 | ||
261 | s->state = SSL3_ST_SR_CLNT_HELLO_A; | 261 | s->state = SSL3_ST_SR_CLNT_HELLO_A; |
262 | s->ctx->stats.sess_accept++; | 262 | s->ctx->internal->stats.sess_accept++; |
263 | } else { | 263 | } else { |
264 | /* s->state == SSL_ST_RENEGOTIATE, | 264 | /* s->state == SSL_ST_RENEGOTIATE, |
265 | * we will just send a HelloRequest */ | 265 | * we will just send a HelloRequest */ |
266 | s->ctx->stats.sess_accept_renegotiate++; | 266 | s->ctx->internal->stats.sess_accept_renegotiate++; |
267 | s->state = SSL3_ST_SW_HELLO_REQ_A; | 267 | s->state = SSL3_ST_SW_HELLO_REQ_A; |
268 | } | 268 | } |
269 | 269 | ||
@@ -641,7 +641,7 @@ dtls1_accept(SSL *s) | |||
641 | 641 | ||
642 | ssl_update_cache(s, SSL_SESS_CACHE_SERVER); | 642 | ssl_update_cache(s, SSL_SESS_CACHE_SERVER); |
643 | 643 | ||
644 | s->ctx->stats.sess_accept_good++; | 644 | s->ctx->internal->stats.sess_accept_good++; |
645 | /* s->server=1; */ | 645 | /* s->server=1; */ |
646 | s->handshake_func = dtls1_accept; | 646 | s->handshake_func = dtls1_accept; |
647 | 647 | ||
diff --git a/src/lib/libssl/s23_clnt.c b/src/lib/libssl/s23_clnt.c index c4fad5b011..a7ad53fd98 100644 --- a/src/lib/libssl/s23_clnt.c +++ b/src/lib/libssl/s23_clnt.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: s23_clnt.c,v 1.49 2017/01/03 16:57:15 jsing Exp $ */ | 1 | /* $OpenBSD: s23_clnt.c,v 1.50 2017/01/23 00:12:54 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -174,7 +174,7 @@ ssl23_connect(SSL *s) | |||
174 | } | 174 | } |
175 | 175 | ||
176 | s->state = SSL23_ST_CW_CLNT_HELLO_A; | 176 | s->state = SSL23_ST_CW_CLNT_HELLO_A; |
177 | s->ctx->stats.sess_connect++; | 177 | s->ctx->internal->stats.sess_connect++; |
178 | s->init_num = 0; | 178 | s->init_num = 0; |
179 | break; | 179 | break; |
180 | 180 | ||
diff --git a/src/lib/libssl/s23_srvr.c b/src/lib/libssl/s23_srvr.c index a80d196290..e4cb633d06 100644 --- a/src/lib/libssl/s23_srvr.c +++ b/src/lib/libssl/s23_srvr.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: s23_srvr.c,v 1.50 2017/01/22 09:02:07 jsing Exp $ */ | 1 | /* $OpenBSD: s23_srvr.c,v 1.51 2017/01/23 00:12:54 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -164,7 +164,7 @@ ssl23_accept(SSL *s) | |||
164 | } | 164 | } |
165 | 165 | ||
166 | s->state = SSL23_ST_SR_CLNT_HELLO_A; | 166 | s->state = SSL23_ST_SR_CLNT_HELLO_A; |
167 | s->ctx->stats.sess_accept++; | 167 | s->ctx->internal->stats.sess_accept++; |
168 | s->init_num = 0; | 168 | s->init_num = 0; |
169 | break; | 169 | break; |
170 | 170 | ||
diff --git a/src/lib/libssl/s3_clnt.c b/src/lib/libssl/s3_clnt.c index 0d3f09728e..18e34f7b7b 100644 --- a/src/lib/libssl/s3_clnt.c +++ b/src/lib/libssl/s3_clnt.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: s3_clnt.c,v 1.162 2017/01/22 09:02:07 jsing Exp $ */ | 1 | /* $OpenBSD: s3_clnt.c,v 1.163 2017/01/23 00:12:54 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -199,7 +199,7 @@ ssl3_connect(SSL *s) | |||
199 | case SSL_ST_RENEGOTIATE: | 199 | case SSL_ST_RENEGOTIATE: |
200 | s->renegotiate = 1; | 200 | s->renegotiate = 1; |
201 | s->state = SSL_ST_CONNECT; | 201 | s->state = SSL_ST_CONNECT; |
202 | s->ctx->stats.sess_connect_renegotiate++; | 202 | s->ctx->internal->stats.sess_connect_renegotiate++; |
203 | /* break */ | 203 | /* break */ |
204 | case SSL_ST_BEFORE: | 204 | case SSL_ST_BEFORE: |
205 | case SSL_ST_CONNECT: | 205 | case SSL_ST_CONNECT: |
@@ -241,7 +241,7 @@ ssl3_connect(SSL *s) | |||
241 | } | 241 | } |
242 | 242 | ||
243 | s->state = SSL3_ST_CW_CLNT_HELLO_A; | 243 | s->state = SSL3_ST_CW_CLNT_HELLO_A; |
244 | s->ctx->stats.sess_connect++; | 244 | s->ctx->internal->stats.sess_connect++; |
245 | s->init_num = 0; | 245 | s->init_num = 0; |
246 | break; | 246 | break; |
247 | 247 | ||
@@ -539,12 +539,12 @@ ssl3_connect(SSL *s) | |||
539 | 539 | ||
540 | ssl_update_cache(s, SSL_SESS_CACHE_CLIENT); | 540 | ssl_update_cache(s, SSL_SESS_CACHE_CLIENT); |
541 | if (s->hit) | 541 | if (s->hit) |
542 | s->ctx->stats.sess_hit++; | 542 | s->ctx->internal->stats.sess_hit++; |
543 | 543 | ||
544 | ret = 1; | 544 | ret = 1; |
545 | /* s->server=0; */ | 545 | /* s->server=0; */ |
546 | s->handshake_func = ssl3_connect; | 546 | s->handshake_func = ssl3_connect; |
547 | s->ctx->stats.sess_connect_good++; | 547 | s->ctx->internal->stats.sess_connect_good++; |
548 | 548 | ||
549 | if (cb != NULL) | 549 | if (cb != NULL) |
550 | cb(s, SSL_CB_HANDSHAKE_DONE, 1); | 550 | cb(s, SSL_CB_HANDSHAKE_DONE, 1); |
diff --git a/src/lib/libssl/s3_srvr.c b/src/lib/libssl/s3_srvr.c index 099537f7ea..a18b218207 100644 --- a/src/lib/libssl/s3_srvr.c +++ b/src/lib/libssl/s3_srvr.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: s3_srvr.c,v 1.141 2017/01/22 09:02:07 jsing Exp $ */ | 1 | /* $OpenBSD: s3_srvr.c,v 1.142 2017/01/23 00:12:54 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -246,7 +246,7 @@ ssl3_accept(SSL *s) | |||
246 | } | 246 | } |
247 | 247 | ||
248 | s->state = SSL3_ST_SR_CLNT_HELLO_A; | 248 | s->state = SSL3_ST_SR_CLNT_HELLO_A; |
249 | s->ctx->stats.sess_accept++; | 249 | s->ctx->internal->stats.sess_accept++; |
250 | } else if (!S3I(s)->send_connection_binding) { | 250 | } else if (!S3I(s)->send_connection_binding) { |
251 | /* | 251 | /* |
252 | * Server attempting to renegotiate with | 252 | * Server attempting to renegotiate with |
@@ -264,7 +264,7 @@ ssl3_accept(SSL *s) | |||
264 | * s->state == SSL_ST_RENEGOTIATE, | 264 | * s->state == SSL_ST_RENEGOTIATE, |
265 | * we will just send a HelloRequest | 265 | * we will just send a HelloRequest |
266 | */ | 266 | */ |
267 | s->ctx->stats.sess_accept_renegotiate++; | 267 | s->ctx->internal->stats.sess_accept_renegotiate++; |
268 | s->state = SSL3_ST_SW_HELLO_REQ_A; | 268 | s->state = SSL3_ST_SW_HELLO_REQ_A; |
269 | } | 269 | } |
270 | break; | 270 | break; |
@@ -660,7 +660,7 @@ ssl3_accept(SSL *s) | |||
660 | 660 | ||
661 | ssl_update_cache(s, SSL_SESS_CACHE_SERVER); | 661 | ssl_update_cache(s, SSL_SESS_CACHE_SERVER); |
662 | 662 | ||
663 | s->ctx->stats.sess_accept_good++; | 663 | s->ctx->internal->stats.sess_accept_good++; |
664 | /* s->server=1; */ | 664 | /* s->server=1; */ |
665 | s->handshake_func = ssl3_accept; | 665 | s->handshake_func = ssl3_accept; |
666 | 666 | ||
diff --git a/src/lib/libssl/ssl.h b/src/lib/libssl/ssl.h index fa1027fa28..9f9343e69d 100644 --- a/src/lib/libssl/ssl.h +++ b/src/lib/libssl/ssl.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssl.h,v 1.106 2017/01/22 06:36:49 jsing Exp $ */ | 1 | /* $OpenBSD: ssl.h,v 1.107 2017/01/23 00:12:54 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -730,25 +730,6 @@ struct ssl_ctx_st { | |||
730 | SSL_SESSION *(*get_session_cb)(struct ssl_st *ssl, | 730 | SSL_SESSION *(*get_session_cb)(struct ssl_st *ssl, |
731 | unsigned char *data, int len, int *copy); | 731 | unsigned char *data, int len, int *copy); |
732 | 732 | ||
733 | struct { | ||
734 | int sess_connect; /* SSL new conn - started */ | ||
735 | int sess_connect_renegotiate;/* SSL reneg - requested */ | ||
736 | int sess_connect_good; /* SSL new conne/reneg - finished */ | ||
737 | int sess_accept; /* SSL new accept - started */ | ||
738 | int sess_accept_renegotiate;/* SSL reneg - requested */ | ||
739 | int sess_accept_good; /* SSL accept/reneg - finished */ | ||
740 | int sess_miss; /* session lookup misses */ | ||
741 | int sess_timeout; /* reuse attempt on timeouted session */ | ||
742 | int sess_cache_full; /* session removed due to full cache */ | ||
743 | int sess_hit; /* session reuse actually done */ | ||
744 | int sess_cb_hit; /* session-id that was not | ||
745 | * in the cache was | ||
746 | * passed back via the callback. This | ||
747 | * indicates that the application is | ||
748 | * supplying session-id's from other | ||
749 | * processes - spooky :-) */ | ||
750 | } stats; | ||
751 | |||
752 | int references; | 733 | int references; |
753 | 734 | ||
754 | /* if defined, these override the X509_verify_cert() calls */ | 735 | /* if defined, these override the X509_verify_cert() calls */ |
diff --git a/src/lib/libssl/ssl_lib.c b/src/lib/libssl/ssl_lib.c index 96aea4c5dd..f4bb212865 100644 --- a/src/lib/libssl/ssl_lib.c +++ b/src/lib/libssl/ssl_lib.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssl_lib.c,v 1.129 2017/01/22 09:02:07 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_lib.c,v 1.130 2017/01/23 00:12:54 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -1157,27 +1157,27 @@ SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg) | |||
1157 | case SSL_CTRL_SESS_NUMBER: | 1157 | case SSL_CTRL_SESS_NUMBER: |
1158 | return (lh_SSL_SESSION_num_items(ctx->sessions)); | 1158 | return (lh_SSL_SESSION_num_items(ctx->sessions)); |
1159 | case SSL_CTRL_SESS_CONNECT: | 1159 | case SSL_CTRL_SESS_CONNECT: |
1160 | return (ctx->stats.sess_connect); | 1160 | return (ctx->internal->stats.sess_connect); |
1161 | case SSL_CTRL_SESS_CONNECT_GOOD: | 1161 | case SSL_CTRL_SESS_CONNECT_GOOD: |
1162 | return (ctx->stats.sess_connect_good); | 1162 | return (ctx->internal->stats.sess_connect_good); |
1163 | case SSL_CTRL_SESS_CONNECT_RENEGOTIATE: | 1163 | case SSL_CTRL_SESS_CONNECT_RENEGOTIATE: |
1164 | return (ctx->stats.sess_connect_renegotiate); | 1164 | return (ctx->internal->stats.sess_connect_renegotiate); |
1165 | case SSL_CTRL_SESS_ACCEPT: | 1165 | case SSL_CTRL_SESS_ACCEPT: |
1166 | return (ctx->stats.sess_accept); | 1166 | return (ctx->internal->stats.sess_accept); |
1167 | case SSL_CTRL_SESS_ACCEPT_GOOD: | 1167 | case SSL_CTRL_SESS_ACCEPT_GOOD: |
1168 | return (ctx->stats.sess_accept_good); | 1168 | return (ctx->internal->stats.sess_accept_good); |
1169 | case SSL_CTRL_SESS_ACCEPT_RENEGOTIATE: | 1169 | case SSL_CTRL_SESS_ACCEPT_RENEGOTIATE: |
1170 | return (ctx->stats.sess_accept_renegotiate); | 1170 | return (ctx->internal->stats.sess_accept_renegotiate); |
1171 | case SSL_CTRL_SESS_HIT: | 1171 | case SSL_CTRL_SESS_HIT: |
1172 | return (ctx->stats.sess_hit); | 1172 | return (ctx->internal->stats.sess_hit); |
1173 | case SSL_CTRL_SESS_CB_HIT: | 1173 | case SSL_CTRL_SESS_CB_HIT: |
1174 | return (ctx->stats.sess_cb_hit); | 1174 | return (ctx->internal->stats.sess_cb_hit); |
1175 | case SSL_CTRL_SESS_MISSES: | 1175 | case SSL_CTRL_SESS_MISSES: |
1176 | return (ctx->stats.sess_miss); | 1176 | return (ctx->internal->stats.sess_miss); |
1177 | case SSL_CTRL_SESS_TIMEOUTS: | 1177 | case SSL_CTRL_SESS_TIMEOUTS: |
1178 | return (ctx->stats.sess_timeout); | 1178 | return (ctx->internal->stats.sess_timeout); |
1179 | case SSL_CTRL_SESS_CACHE_FULL: | 1179 | case SSL_CTRL_SESS_CACHE_FULL: |
1180 | return (ctx->stats.sess_cache_full); | 1180 | return (ctx->internal->stats.sess_cache_full); |
1181 | case SSL_CTRL_OPTIONS: | 1181 | case SSL_CTRL_OPTIONS: |
1182 | return (ctx->options|=larg); | 1182 | return (ctx->options|=larg); |
1183 | case SSL_CTRL_CLEAR_OPTIONS: | 1183 | case SSL_CTRL_CLEAR_OPTIONS: |
@@ -1836,7 +1836,7 @@ SSL_CTX_new(const SSL_METHOD *meth) | |||
1836 | ret->get_session_cb = 0; | 1836 | ret->get_session_cb = 0; |
1837 | ret->generate_session_id = 0; | 1837 | ret->generate_session_id = 0; |
1838 | 1838 | ||
1839 | memset((char *)&ret->stats, 0, sizeof(ret->stats)); | 1839 | memset((char *)&ret->internal->stats, 0, sizeof(ret->internal->stats)); |
1840 | 1840 | ||
1841 | ret->references = 1; | 1841 | ret->references = 1; |
1842 | ret->quiet_shutdown = 0; | 1842 | ret->quiet_shutdown = 0; |
@@ -2285,8 +2285,8 @@ ssl_update_cache(SSL *s, int mode) | |||
2285 | if ((!(i & SSL_SESS_CACHE_NO_AUTO_CLEAR)) && | 2285 | if ((!(i & SSL_SESS_CACHE_NO_AUTO_CLEAR)) && |
2286 | ((i & mode) == mode)) { | 2286 | ((i & mode) == mode)) { |
2287 | if ((((mode & SSL_SESS_CACHE_CLIENT) ? | 2287 | if ((((mode & SSL_SESS_CACHE_CLIENT) ? |
2288 | s->session_ctx->stats.sess_connect_good : | 2288 | s->session_ctx->internal->stats.sess_connect_good : |
2289 | s->session_ctx->stats.sess_accept_good) & 0xff) == 0xff) { | 2289 | s->session_ctx->internal->stats.sess_accept_good) & 0xff) == 0xff) { |
2290 | SSL_CTX_flush_sessions(s->session_ctx, time(NULL)); | 2290 | SSL_CTX_flush_sessions(s->session_ctx, time(NULL)); |
2291 | } | 2291 | } |
2292 | } | 2292 | } |
diff --git a/src/lib/libssl/ssl_locl.h b/src/lib/libssl/ssl_locl.h index a187c8d77a..3f63b1de2f 100644 --- a/src/lib/libssl/ssl_locl.h +++ b/src/lib/libssl/ssl_locl.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssl_locl.h,v 1.151 2017/01/22 09:02:07 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_locl.h,v 1.152 2017/01/23 00:12:55 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -384,6 +384,25 @@ typedef struct ssl_ctx_internal_st { | |||
384 | uint16_t min_version; | 384 | uint16_t min_version; |
385 | uint16_t max_version; | 385 | uint16_t max_version; |
386 | 386 | ||
387 | struct { | ||
388 | int sess_connect; /* SSL new conn - started */ | ||
389 | int sess_connect_renegotiate;/* SSL reneg - requested */ | ||
390 | int sess_connect_good; /* SSL new conne/reneg - finished */ | ||
391 | int sess_accept; /* SSL new accept - started */ | ||
392 | int sess_accept_renegotiate;/* SSL reneg - requested */ | ||
393 | int sess_accept_good; /* SSL accept/reneg - finished */ | ||
394 | int sess_miss; /* session lookup misses */ | ||
395 | int sess_timeout; /* reuse attempt on timeouted session */ | ||
396 | int sess_cache_full; /* session removed due to full cache */ | ||
397 | int sess_hit; /* session reuse actually done */ | ||
398 | int sess_cb_hit; /* session-id that was not | ||
399 | * in the cache was | ||
400 | * passed back via the callback. This | ||
401 | * indicates that the application is | ||
402 | * supplying session-id's from other | ||
403 | * processes - spooky :-) */ | ||
404 | } stats; | ||
405 | |||
387 | /* Next protocol negotiation information */ | 406 | /* Next protocol negotiation information */ |
388 | /* (for experimental NPN extension). */ | 407 | /* (for experimental NPN extension). */ |
389 | 408 | ||
@@ -422,7 +441,6 @@ typedef struct ssl_ctx_internal_st { | |||
422 | /* Client list of supported protocols in wire format. */ | 441 | /* Client list of supported protocols in wire format. */ |
423 | unsigned char *alpn_client_proto_list; | 442 | unsigned char *alpn_client_proto_list; |
424 | unsigned int alpn_client_proto_list_len; | 443 | unsigned int alpn_client_proto_list_len; |
425 | |||
426 | } SSL_CTX_INTERNAL; | 444 | } SSL_CTX_INTERNAL; |
427 | 445 | ||
428 | typedef struct ssl_internal_st { | 446 | typedef struct ssl_internal_st { |
diff --git a/src/lib/libssl/ssl_sess.c b/src/lib/libssl/ssl_sess.c index dc4894c64c..7f03d12d35 100644 --- a/src/lib/libssl/ssl_sess.c +++ b/src/lib/libssl/ssl_sess.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssl_sess.c,v 1.55 2017/01/22 05:14:42 beck Exp $ */ | 1 | /* $OpenBSD: ssl_sess.c,v 1.56 2017/01/23 00:12:55 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -466,7 +466,7 @@ ssl_get_prev_session(SSL *s, unsigned char *session_id, int len, | |||
466 | CRYPTO_r_unlock(CRYPTO_LOCK_SSL_CTX); | 466 | CRYPTO_r_unlock(CRYPTO_LOCK_SSL_CTX); |
467 | 467 | ||
468 | if (ret == NULL) | 468 | if (ret == NULL) |
469 | s->session_ctx->stats.sess_miss++; | 469 | s->session_ctx->internal->stats.sess_miss++; |
470 | } | 470 | } |
471 | 471 | ||
472 | if (try_session_cache && ret == NULL && | 472 | if (try_session_cache && ret == NULL && |
@@ -475,7 +475,7 @@ ssl_get_prev_session(SSL *s, unsigned char *session_id, int len, | |||
475 | 475 | ||
476 | if ((ret = s->session_ctx->get_session_cb(s, session_id, | 476 | if ((ret = s->session_ctx->get_session_cb(s, session_id, |
477 | len, ©))) { | 477 | len, ©))) { |
478 | s->session_ctx->stats.sess_cb_hit++; | 478 | s->session_ctx->internal->stats.sess_cb_hit++; |
479 | 479 | ||
480 | /* | 480 | /* |
481 | * Increment reference count now if the session | 481 | * Increment reference count now if the session |
@@ -542,7 +542,7 @@ ssl_get_prev_session(SSL *s, unsigned char *session_id, int len, | |||
542 | 542 | ||
543 | if (ret->timeout < (time(NULL) - ret->time)) { | 543 | if (ret->timeout < (time(NULL) - ret->time)) { |
544 | /* timeout */ | 544 | /* timeout */ |
545 | s->session_ctx->stats.sess_timeout++; | 545 | s->session_ctx->internal->stats.sess_timeout++; |
546 | if (try_session_cache) { | 546 | if (try_session_cache) { |
547 | /* session was from the cache, so remove it */ | 547 | /* session was from the cache, so remove it */ |
548 | SSL_CTX_remove_session(s->session_ctx, ret); | 548 | SSL_CTX_remove_session(s->session_ctx, ret); |
@@ -550,7 +550,7 @@ ssl_get_prev_session(SSL *s, unsigned char *session_id, int len, | |||
550 | goto err; | 550 | goto err; |
551 | } | 551 | } |
552 | 552 | ||
553 | s->session_ctx->stats.sess_hit++; | 553 | s->session_ctx->internal->stats.sess_hit++; |
554 | 554 | ||
555 | if (s->session != NULL) | 555 | if (s->session != NULL) |
556 | SSL_SESSION_free(s->session); | 556 | SSL_SESSION_free(s->session); |
@@ -641,7 +641,7 @@ SSL_CTX_add_session(SSL_CTX *ctx, SSL_SESSION *c) | |||
641 | ctx->session_cache_tail, 0)) | 641 | ctx->session_cache_tail, 0)) |
642 | break; | 642 | break; |
643 | else | 643 | else |
644 | ctx->stats.sess_cache_full++; | 644 | ctx->internal->stats.sess_cache_full++; |
645 | } | 645 | } |
646 | } | 646 | } |
647 | } | 647 | } |