diff options
Diffstat (limited to 'src/lib/libssl/ssl_sess.c')
-rw-r--r-- | src/lib/libssl/ssl_sess.c | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/src/lib/libssl/ssl_sess.c b/src/lib/libssl/ssl_sess.c index c114e6ec07..4a7650fd9d 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.60 2017/01/23 05:13:02 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_sess.c,v 1.61 2017/01/23 05:27:22 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 | * |
@@ -185,13 +185,13 @@ SSL_SESSION_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, | |||
185 | int | 185 | int |
186 | SSL_SESSION_set_ex_data(SSL_SESSION *s, int idx, void *arg) | 186 | SSL_SESSION_set_ex_data(SSL_SESSION *s, int idx, void *arg) |
187 | { | 187 | { |
188 | return (CRYPTO_set_ex_data(&s->ex_data, idx, arg)); | 188 | return (CRYPTO_set_ex_data(&s->internal->ex_data, idx, arg)); |
189 | } | 189 | } |
190 | 190 | ||
191 | void * | 191 | void * |
192 | SSL_SESSION_get_ex_data(const SSL_SESSION *s, int idx) | 192 | SSL_SESSION_get_ex_data(const SSL_SESSION *s, int idx) |
193 | { | 193 | { |
194 | return (CRYPTO_get_ex_data(&s->ex_data, idx)); | 194 | return (CRYPTO_get_ex_data(&s->internal->ex_data, idx)); |
195 | } | 195 | } |
196 | 196 | ||
197 | SSL_SESSION * | 197 | SSL_SESSION * |
@@ -213,8 +213,8 @@ SSL_SESSION_new(void) | |||
213 | ss->references = 1; | 213 | ss->references = 1; |
214 | ss->timeout=60*5+4; /* 5 minute timeout by default */ | 214 | ss->timeout=60*5+4; /* 5 minute timeout by default */ |
215 | ss->time = time(NULL); | 215 | ss->time = time(NULL); |
216 | ss->prev = NULL; | 216 | ss->internal->prev = NULL; |
217 | ss->next = NULL; | 217 | ss->internal->next = NULL; |
218 | ss->tlsext_hostname = NULL; | 218 | ss->tlsext_hostname = NULL; |
219 | 219 | ||
220 | ss->internal->tlsext_ecpointformatlist_length = 0; | 220 | ss->internal->tlsext_ecpointformatlist_length = 0; |
@@ -222,7 +222,7 @@ SSL_SESSION_new(void) | |||
222 | ss->internal->tlsext_ellipticcurvelist_length = 0; | 222 | ss->internal->tlsext_ellipticcurvelist_length = 0; |
223 | ss->internal->tlsext_ellipticcurvelist = NULL; | 223 | ss->internal->tlsext_ellipticcurvelist = NULL; |
224 | 224 | ||
225 | CRYPTO_new_ex_data(CRYPTO_EX_INDEX_SSL_SESSION, ss, &ss->ex_data); | 225 | CRYPTO_new_ex_data(CRYPTO_EX_INDEX_SSL_SESSION, ss, &ss->internal->ex_data); |
226 | 226 | ||
227 | return (ss); | 227 | return (ss); |
228 | } | 228 | } |
@@ -695,7 +695,7 @@ SSL_SESSION_free(SSL_SESSION *ss) | |||
695 | if (i > 0) | 695 | if (i > 0) |
696 | return; | 696 | return; |
697 | 697 | ||
698 | CRYPTO_free_ex_data(CRYPTO_EX_INDEX_SSL_SESSION, ss, &ss->ex_data); | 698 | CRYPTO_free_ex_data(CRYPTO_EX_INDEX_SSL_SESSION, ss, &ss->internal->ex_data); |
699 | 699 | ||
700 | explicit_bzero(ss->master_key, sizeof ss->master_key); | 700 | explicit_bzero(ss->master_key, sizeof ss->master_key); |
701 | explicit_bzero(ss->session_id, sizeof ss->session_id); | 701 | explicit_bzero(ss->session_id, sizeof ss->session_id); |
@@ -962,50 +962,50 @@ ssl_clear_bad_session(SSL *s) | |||
962 | static void | 962 | static void |
963 | SSL_SESSION_list_remove(SSL_CTX *ctx, SSL_SESSION *s) | 963 | SSL_SESSION_list_remove(SSL_CTX *ctx, SSL_SESSION *s) |
964 | { | 964 | { |
965 | if ((s->next == NULL) || (s->prev == NULL)) | 965 | if ((s->internal->next == NULL) || (s->internal->prev == NULL)) |
966 | return; | 966 | return; |
967 | 967 | ||
968 | if (s->next == (SSL_SESSION *)&(ctx->internal->session_cache_tail)) { | 968 | if (s->internal->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->internal->session_cache_head)) { | 970 | if (s->internal->prev == (SSL_SESSION *)&(ctx->internal->session_cache_head)) { |
971 | /* only one element in list */ | 971 | /* only one element in list */ |
972 | ctx->internal->session_cache_head = NULL; | 972 | ctx->internal->session_cache_head = NULL; |
973 | ctx->internal->session_cache_tail = NULL; | 973 | ctx->internal->session_cache_tail = NULL; |
974 | } else { | 974 | } else { |
975 | ctx->internal->session_cache_tail = s->prev; | 975 | ctx->internal->session_cache_tail = s->internal->prev; |
976 | s->prev->next = | 976 | s->internal->prev->internal->next = |
977 | (SSL_SESSION *)&(ctx->internal->session_cache_tail); | 977 | (SSL_SESSION *)&(ctx->internal->session_cache_tail); |
978 | } | 978 | } |
979 | } else { | 979 | } else { |
980 | if (s->prev == (SSL_SESSION *)&(ctx->internal->session_cache_head)) { | 980 | if (s->internal->prev == (SSL_SESSION *)&(ctx->internal->session_cache_head)) { |
981 | /* first element in list */ | 981 | /* first element in list */ |
982 | ctx->internal->session_cache_head = s->next; | 982 | ctx->internal->session_cache_head = s->internal->next; |
983 | s->next->prev = | 983 | s->internal->next->internal->prev = |
984 | (SSL_SESSION *)&(ctx->internal->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->internal->next->internal->prev = s->internal->prev; |
988 | s->prev->next = s->next; | 988 | s->internal->prev->internal->next = s->internal->next; |
989 | } | 989 | } |
990 | } | 990 | } |
991 | s->prev = s->next = NULL; | 991 | s->internal->prev = s->internal->next = NULL; |
992 | } | 992 | } |
993 | 993 | ||
994 | static void | 994 | static void |
995 | SSL_SESSION_list_add(SSL_CTX *ctx, SSL_SESSION *s) | 995 | SSL_SESSION_list_add(SSL_CTX *ctx, SSL_SESSION *s) |
996 | { | 996 | { |
997 | if ((s->next != NULL) && (s->prev != NULL)) | 997 | if ((s->internal->next != NULL) && (s->internal->prev != NULL)) |
998 | SSL_SESSION_list_remove(ctx, s); | 998 | SSL_SESSION_list_remove(ctx, s); |
999 | 999 | ||
1000 | if (ctx->internal->session_cache_head == NULL) { | 1000 | if (ctx->internal->session_cache_head == NULL) { |
1001 | ctx->internal->session_cache_head = s; | 1001 | ctx->internal->session_cache_head = s; |
1002 | ctx->internal->session_cache_tail = s; | 1002 | ctx->internal->session_cache_tail = s; |
1003 | s->prev = (SSL_SESSION *)&(ctx->internal->session_cache_head); | 1003 | s->internal->prev = (SSL_SESSION *)&(ctx->internal->session_cache_head); |
1004 | s->next = (SSL_SESSION *)&(ctx->internal->session_cache_tail); | 1004 | s->internal->next = (SSL_SESSION *)&(ctx->internal->session_cache_tail); |
1005 | } else { | 1005 | } else { |
1006 | s->next = ctx->internal->session_cache_head; | 1006 | s->internal->next = ctx->internal->session_cache_head; |
1007 | s->next->prev = s; | 1007 | s->internal->next->internal->prev = s; |
1008 | s->prev = (SSL_SESSION *)&(ctx->internal->session_cache_head); | 1008 | s->internal->prev = (SSL_SESSION *)&(ctx->internal->session_cache_head); |
1009 | ctx->internal->session_cache_head = s; | 1009 | ctx->internal->session_cache_head = s; |
1010 | } | 1010 | } |
1011 | } | 1011 | } |