* load the 'cipher' structure */
unsigned int kex_group; /* TLS group from key exchange */
CRYPTO_EX_DATA ex_data; /* application specific data */
- /*
- * These are used to make removal of session-ids more efficient and to
- * implement a maximum cache size.
- */
- struct ssl_session_st *prev, *next;
struct {
char *hostname;
size_t ticket_appdata_len;
uint32_t flags;
SSL_CTX *owner;
+
+ /*
+ * These are used to make removal of session-ids more efficient and to
+ * implement a maximum cache size.
+ */
+ struct ssl_session_st *prev, *next;
};
/* Extended master secret support */
return NULL;
/*
- * Copy until prev ptr, because it's a part of sessons cache which can be modified
- * concurrently. Other fields filled in the code bellow.
+ * src is logically read-only but the prev/next pointers are not, they are
+ * part of the session cache and can be modified concurrently.
*/
memcpy(dest, src, offsetof(SSL_SESSION, prev));
- dest->ext = src->ext;
- dest->ticket_appdata_len = src->ticket_appdata_len;
- dest->flags = src->flags;
/*
* Set the various pointers to NULL so that we can call SSL_SESSION_free in