X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fstream-ssl.c;h=f7112c3e14c2498990fd640757c0ec799eb23c0e;hb=332e0d030b522828b6b93152f860c2bc08bfbbf8;hp=5a67da8f69a03f804198dd593272356008f5ce6c;hpb=246f5b5edee9a35d8126a1d15c4f43328cf38570;p=openvswitch diff --git a/lib/stream-ssl.c b/lib/stream-ssl.c index 5a67da8f..f7112c3e 100644 --- a/lib/stream-ssl.c +++ b/lib/stream-ssl.c @@ -280,6 +280,13 @@ new_ssl_stream(const char *name, int fd, enum session_type type, if (!verify_peer_cert || (bootstrap_ca_cert && type == CLIENT)) { SSL_set_verify(ssl, SSL_VERIFY_NONE, NULL); } + if (type == CLIENT) { + /* Grab SSL session information from the cache. */ + SSL_SESSION *session = shash_find_data(&client_sessions, name); + if (session && SSL_set_session(ssl, session) != 1) { + interpret_queued_ssl_error("SSL_set_session"); + } + } /* Create and return the ssl_stream. */ sslv = xmalloc(sizeof *sslv); @@ -511,15 +518,6 @@ ssl_connect(struct stream *stream) MSG_PEEK); } - /* Grab SSL session information from the cache. */ - if (sslv->type == CLIENT) { - SSL_SESSION *session = shash_find_data(&client_sessions, - stream_get_name(stream)); - if (session) { - SSL_set_session(sslv->ssl, session); - } - } - retval = (sslv->type == CLIENT ? SSL_connect(sslv->ssl) : SSL_accept(sslv->ssl)); if (retval != 1) {