Add an SSL_SESSION_dup() function
authorMatt Caswell <matt@openssl.org>
Wed, 2 Aug 2017 12:32:56 +0000 (13:32 +0100)
committerPauli <paul.dale@oracle.com>
Wed, 9 Aug 2017 03:37:06 +0000 (13:37 +1000)
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/4072)

doc/man3/SSL_SESSION_free.pod
include/openssl/ssl.h
ssl/ssl_sess.c
util/libssl.num

index b288baf2d23d6cbbebc83ffe6b5476d422c605d0..87a1cab1b46294cb91db03084e8fb735734545bb 100644 (file)
@@ -3,6 +3,7 @@
 =head1 NAME
 
 SSL_SESSION_new,
+SSL_SESSION_dup,
 SSL_SESSION_up_ref,
 SSL_SESSION_free - create, free and manage SSL_SESSION structures
 
@@ -11,6 +12,7 @@ SSL_SESSION_free - create, free and manage SSL_SESSION structures
  #include <openssl/ssl.h>
 
  SSL_SESSION *SSL_SESSION_new(void);
+ SSL_SESSION *SSL_SESSION_dup(SSL_SESSION *src);
  int SSL_SESSION_up_ref(SSL_SESSION *ses);
  void SSL_SESSION_free(SSL_SESSION *session);
 
@@ -19,6 +21,9 @@ SSL_SESSION_free - create, free and manage SSL_SESSION structures
 SSL_SESSION_new() creates a new SSL_SESSION structure and returns a pointer to
 it.
 
+SSL_SESSION_dup() copies the contents of the SSL_SESSION structure in B<src>
+and returns a pointer to it.
+
 SSL_SESSION_up_ref() increments the reference count on the given SSL_SESSION
 structure.
 
@@ -66,6 +71,10 @@ L<SSL_CTX_set_session_cache_mode(3)>,
 L<SSL_CTX_flush_sessions(3)>,
 L<d2i_SSL_SESSION(3)>
 
+=head1 HISTORY
+
+SSL_SESSION_dup() was added in OpenSSL 1.1.1.
+
 =head1 COPYRIGHT
 
 Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
index a2d13bf3d74a3e1f64ef182b9884f0ecc3cdd468..b4c66441c2705d730809616c2f3d7f4dce7ab8eb 100644 (file)
@@ -1545,6 +1545,7 @@ __owur int SSL_SESSION_set1_id(SSL_SESSION *s, const unsigned char *sid,
 __owur int SSL_SESSION_is_resumable(const SSL_SESSION *s);
 
 __owur SSL_SESSION *SSL_SESSION_new(void);
+__owur SSL_SESSION *SSL_SESSION_dup(SSL_SESSION *src);
 const unsigned char *SSL_SESSION_get_id(const SSL_SESSION *s,
                                         unsigned int *len);
 const unsigned char *SSL_SESSION_get0_id_context(const SSL_SESSION *s,
index 8cd4355cc6382cd2479256fc106adf5cd7ec7ad9..7336251210e7f5fa70d305ff07b4a8fdda9c2c2c 100644 (file)
@@ -93,6 +93,11 @@ SSL_SESSION *SSL_SESSION_new(void)
     return ss;
 }
 
+SSL_SESSION *SSL_SESSION_dup(SSL_SESSION *src)
+{
+    return ssl_session_dup(src, 1);
+}
+
 /*
  * Create a new SSL_SESSION and duplicate the contents of |src| into it. If
  * ticket == 0 then no ticket information is duplicated, otherwise it is.
index 6a93ecb7ffb2c01fe989ec04e4a6adb9ef9a934d..78fb65a685a9d7d06a31ce0fcf098a60137a11ba 100644 (file)
@@ -462,3 +462,4 @@ SSL_SESSION_set_protocol_version        462 1_1_1   EXIST::FUNCTION:
 OPENSSL_cipher_name                     463    1_1_1   EXIST::FUNCTION:
 SSL_alloc_buffers                       464    1_1_1   EXIST::FUNCTION:
 SSL_free_buffers                        465    1_1_1   EXIST::FUNCTION:
+SSL_SESSION_dup                         466    1_1_1   EXIST::FUNCTION: