diff options
author | jsing <> | 2017-01-23 05:13:02 +0000 |
---|---|---|
committer | jsing <> | 2017-01-23 05:13:02 +0000 |
commit | f38881420fba9a207cd725b6a35181faeecf26b9 (patch) | |
tree | 50ca3784f76b348ba017005a955c6a288b176b57 /src/lib/libssl/ssl_sess.c | |
parent | c35f51566045be89c49b0a47e153fdb27ec20f8e (diff) | |
download | openbsd-f38881420fba9a207cd725b6a35181faeecf26b9.tar.gz openbsd-f38881420fba9a207cd725b6a35181faeecf26b9.tar.bz2 openbsd-f38881420fba9a207cd725b6a35181faeecf26b9.zip |
Move most of the fields in SSL_CTX to internal - the ones that remain are
known to be in use.
ok beck@
Diffstat (limited to 'src/lib/libssl/ssl_sess.c')
-rw-r--r-- | src/lib/libssl/ssl_sess.c | 56 |
1 files changed, 28 insertions, 28 deletions
diff --git a/src/lib/libssl/ssl_sess.c b/src/lib/libssl/ssl_sess.c index 541b143384..c114e6ec07 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.59 2017/01/23 04:55:27 beck Exp $ */ | 1 | /* $OpenBSD: ssl_sess.c,v 1.60 2017/01/23 05:13:02 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 | * |
@@ -449,7 +449,7 @@ ssl_get_prev_session(SSL *s, unsigned char *session_id, int len, | |||
449 | } | 449 | } |
450 | 450 | ||
451 | if (try_session_cache && ret == NULL && | 451 | if (try_session_cache && ret == NULL && |
452 | !(s->session_ctx->session_cache_mode & | 452 | !(s->session_ctx->internal->session_cache_mode & |
453 | SSL_SESS_CACHE_NO_INTERNAL_LOOKUP)) { | 453 | SSL_SESS_CACHE_NO_INTERNAL_LOOKUP)) { |
454 | SSL_SESSION data; | 454 | SSL_SESSION data; |
455 | data.ssl_version = s->version; | 455 | data.ssl_version = s->version; |
@@ -457,7 +457,7 @@ ssl_get_prev_session(SSL *s, unsigned char *session_id, int len, | |||
457 | memcpy(data.session_id, session_id, len); | 457 | memcpy(data.session_id, session_id, len); |
458 | 458 | ||
459 | CRYPTO_r_lock(CRYPTO_LOCK_SSL_CTX); | 459 | CRYPTO_r_lock(CRYPTO_LOCK_SSL_CTX); |
460 | ret = lh_SSL_SESSION_retrieve(s->session_ctx->sessions, &data); | 460 | ret = lh_SSL_SESSION_retrieve(s->session_ctx->internal->sessions, &data); |
461 | if (ret != NULL) { | 461 | if (ret != NULL) { |
462 | /* Don't allow other threads to steal it. */ | 462 | /* Don't allow other threads to steal it. */ |
463 | CRYPTO_add(&ret->references, 1, | 463 | CRYPTO_add(&ret->references, 1, |
@@ -493,7 +493,7 @@ ssl_get_prev_session(SSL *s, unsigned char *session_id, int len, | |||
493 | * Add the externally cached session to the internal | 493 | * Add the externally cached session to the internal |
494 | * cache as well if and only if we are supposed to. | 494 | * cache as well if and only if we are supposed to. |
495 | */ | 495 | */ |
496 | if (!(s->session_ctx->session_cache_mode & | 496 | if (!(s->session_ctx->internal->session_cache_mode & |
497 | SSL_SESS_CACHE_NO_INTERNAL_STORE)) | 497 | SSL_SESS_CACHE_NO_INTERNAL_STORE)) |
498 | /* | 498 | /* |
499 | * The following should not return 1, | 499 | * The following should not return 1, |
@@ -593,12 +593,12 @@ SSL_CTX_add_session(SSL_CTX *ctx, SSL_SESSION *c) | |||
593 | * later. | 593 | * later. |
594 | */ | 594 | */ |
595 | CRYPTO_w_lock(CRYPTO_LOCK_SSL_CTX); | 595 | CRYPTO_w_lock(CRYPTO_LOCK_SSL_CTX); |
596 | s = lh_SSL_SESSION_insert(ctx->sessions, c); | 596 | s = lh_SSL_SESSION_insert(ctx->internal->sessions, c); |
597 | 597 | ||
598 | /* | 598 | /* |
599 | * s != NULL iff we already had a session with the given PID. | 599 | * s != NULL iff we already had a session with the given PID. |
600 | * In this case, s == c should hold (then we did not really modify | 600 | * In this case, s == c should hold (then we did not really modify |
601 | * ctx->sessions), or we're in trouble. | 601 | * ctx->internal->sessions), or we're in trouble. |
602 | */ | 602 | */ |
603 | if (s != NULL && s != c) { | 603 | if (s != NULL && s != c) { |
604 | /* We *are* in trouble ... */ | 604 | /* We *are* in trouble ... */ |
@@ -638,7 +638,7 @@ SSL_CTX_add_session(SSL_CTX *ctx, SSL_SESSION *c) | |||
638 | while (SSL_CTX_sess_number(ctx) > | 638 | while (SSL_CTX_sess_number(ctx) > |
639 | SSL_CTX_sess_get_cache_size(ctx)) { | 639 | SSL_CTX_sess_get_cache_size(ctx)) { |
640 | if (!remove_session_lock(ctx, | 640 | if (!remove_session_lock(ctx, |
641 | ctx->session_cache_tail, 0)) | 641 | ctx->internal->session_cache_tail, 0)) |
642 | break; | 642 | break; |
643 | else | 643 | else |
644 | ctx->internal->stats.sess_cache_full++; | 644 | ctx->internal->stats.sess_cache_full++; |
@@ -664,9 +664,9 @@ remove_session_lock(SSL_CTX *ctx, SSL_SESSION *c, int lck) | |||
664 | if ((c != NULL) && (c->session_id_length != 0)) { | 664 | if ((c != NULL) && (c->session_id_length != 0)) { |
665 | if (lck) | 665 | if (lck) |
666 | CRYPTO_w_lock(CRYPTO_LOCK_SSL_CTX); | 666 | CRYPTO_w_lock(CRYPTO_LOCK_SSL_CTX); |
667 | if ((r = lh_SSL_SESSION_retrieve(ctx->sessions, c)) == c) { | 667 | if ((r = lh_SSL_SESSION_retrieve(ctx->internal->sessions, c)) == c) { |
668 | ret = 1; | 668 | ret = 1; |
669 | r = lh_SSL_SESSION_delete(ctx->sessions, c); | 669 | r = lh_SSL_SESSION_delete(ctx->internal->sessions, c); |
670 | SSL_SESSION_list_remove(ctx, c); | 670 | SSL_SESSION_list_remove(ctx, c); |
671 | } | 671 | } |
672 | if (lck) | 672 | if (lck) |
@@ -934,7 +934,7 @@ SSL_CTX_flush_sessions(SSL_CTX *s, long t) | |||
934 | TIMEOUT_PARAM tp; | 934 | TIMEOUT_PARAM tp; |
935 | 935 | ||
936 | tp.ctx = s; | 936 | tp.ctx = s; |
937 | tp.cache = s->sessions; | 937 | tp.cache = s->internal->sessions; |
938 | if (tp.cache == NULL) | 938 | if (tp.cache == NULL) |
939 | return; | 939 | return; |
940 | tp.time = t; | 940 | tp.time = t; |
@@ -965,23 +965,23 @@ SSL_SESSION_list_remove(SSL_CTX *ctx, SSL_SESSION *s) | |||
965 | if ((s->next == NULL) || (s->prev == NULL)) | 965 | if ((s->next == NULL) || (s->prev == NULL)) |
966 | return; | 966 | return; |
967 | 967 | ||
968 | if (s->next == (SSL_SESSION *)&(ctx->session_cache_tail)) { | 968 | if (s->next == (SSL_SESSION *)&(ctx->internal->session_cache_tail)) { |
969 | /* last element in list */ | 969 | /* last element in list */ |
970 | if (s->prev == (SSL_SESSION *)&(ctx->session_cache_head)) { | 970 | if (s->prev == (SSL_SESSION *)&(ctx->internal->session_cache_head)) { |
971 | /* only one element in list */ | 971 | /* only one element in list */ |
972 | ctx->session_cache_head = NULL; | 972 | ctx->internal->session_cache_head = NULL; |
973 | ctx->session_cache_tail = NULL; | 973 | ctx->internal->session_cache_tail = NULL; |
974 | } else { | 974 | } else { |
975 | ctx->session_cache_tail = s->prev; | 975 | ctx->internal->session_cache_tail = s->prev; |
976 | s->prev->next = | 976 | s->prev->next = |
977 | (SSL_SESSION *)&(ctx->session_cache_tail); | 977 | (SSL_SESSION *)&(ctx->internal->session_cache_tail); |
978 | } | 978 | } |
979 | } else { | 979 | } else { |
980 | if (s->prev == (SSL_SESSION *)&(ctx->session_cache_head)) { | 980 | if (s->prev == (SSL_SESSION *)&(ctx->internal->session_cache_head)) { |
981 | /* first element in list */ | 981 | /* first element in list */ |
982 | ctx->session_cache_head = s->next; | 982 | ctx->internal->session_cache_head = s->next; |
983 | s->next->prev = | 983 | s->next->prev = |
984 | (SSL_SESSION *)&(ctx->session_cache_head); | 984 | (SSL_SESSION *)&(ctx->internal->session_cache_head); |
985 | } else { | 985 | } else { |
986 | /* middle of list */ | 986 | /* middle of list */ |
987 | s->next->prev = s->prev; | 987 | s->next->prev = s->prev; |
@@ -997,16 +997,16 @@ SSL_SESSION_list_add(SSL_CTX *ctx, SSL_SESSION *s) | |||
997 | if ((s->next != NULL) && (s->prev != NULL)) | 997 | if ((s->next != NULL) && (s->prev != NULL)) |
998 | SSL_SESSION_list_remove(ctx, s); | 998 | SSL_SESSION_list_remove(ctx, s); |
999 | 999 | ||
1000 | if (ctx->session_cache_head == NULL) { | 1000 | if (ctx->internal->session_cache_head == NULL) { |
1001 | ctx->session_cache_head = s; | 1001 | ctx->internal->session_cache_head = s; |
1002 | ctx->session_cache_tail = s; | 1002 | ctx->internal->session_cache_tail = s; |
1003 | s->prev = (SSL_SESSION *)&(ctx->session_cache_head); | 1003 | s->prev = (SSL_SESSION *)&(ctx->internal->session_cache_head); |
1004 | s->next = (SSL_SESSION *)&(ctx->session_cache_tail); | 1004 | s->next = (SSL_SESSION *)&(ctx->internal->session_cache_tail); |
1005 | } else { | 1005 | } else { |
1006 | s->next = ctx->session_cache_head; | 1006 | s->next = ctx->internal->session_cache_head; |
1007 | s->next->prev = s; | 1007 | s->next->prev = s; |
1008 | s->prev = (SSL_SESSION *)&(ctx->session_cache_head); | 1008 | s->prev = (SSL_SESSION *)&(ctx->internal->session_cache_head); |
1009 | ctx->session_cache_head = s; | 1009 | ctx->internal->session_cache_head = s; |
1010 | } | 1010 | } |
1011 | } | 1011 | } |
1012 | 1012 | ||
@@ -1091,7 +1091,7 @@ SSL_CTX_set_client_cert_engine(SSL_CTX *ctx, ENGINE *e) | |||
1091 | ENGINE_finish(e); | 1091 | ENGINE_finish(e); |
1092 | return 0; | 1092 | return 0; |
1093 | } | 1093 | } |
1094 | ctx->client_cert_engine = e; | 1094 | ctx->internal->client_cert_engine = e; |
1095 | return 1; | 1095 | return 1; |
1096 | } | 1096 | } |
1097 | #endif | 1097 | #endif |