Add ssl_get_session() to save session on client
diff --git a/library/ssl_tls.c b/library/ssl_tls.c
index b9fca44..6ecdceb 100644
--- a/library/ssl_tls.c
+++ b/library/ssl_tls.c
@@ -3222,6 +3222,31 @@
 }
 #endif /* POLARSSL_X509_PARSE_C */
 
+int ssl_get_session( const ssl_context *ssl, ssl_session *dst )
+{
+    ssl_session *src;
+
+    if( ssl == NULL ||
+        dst == NULL ||
+        ssl->session == NULL ||
+        ssl->endpoint != SSL_IS_CLIENT )
+    {
+        return( POLARSSL_ERR_SSL_BAD_INPUT_DATA );
+    }
+
+    src = ssl->session;
+
+    ssl_session_free( dst );
+    memcpy( dst, src, sizeof( ssl_session ) );
+
+    /*
+     * For now, just set peer_cert to NULL, deep-copy not implemented yet
+     */
+    dst->peer_cert = NULL;
+
+    return( 0 );
+}
+
 /*
  * Perform a single step of the SSL handshake
  */