From 6813ce789d0779257db20def4a0822df3c261f09 Mon Sep 17 00:00:00 2001 From: Zeyi Fan Date: Wed, 15 May 2019 08:38:59 -0700 Subject: [PATCH] add x509 to stream extension (#844) --- src/server/ssl/openssl.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/server/ssl/openssl.rs b/src/server/ssl/openssl.rs index 9d370f8be..15ae33139 100644 --- a/src/server/ssl/openssl.rs +++ b/src/server/ssl/openssl.rs @@ -1,4 +1,5 @@ use std::net::{Shutdown, SocketAddr}; +use std::rc::Rc; use std::{io, time}; use actix_net::ssl; @@ -6,6 +7,7 @@ use openssl::ssl::{AlpnError, SslAcceptor, SslAcceptorBuilder}; use tokio_io::{AsyncRead, AsyncWrite}; use tokio_openssl::SslStream; +use extensions::Extensions; use server::{IoStream, ServerFlags}; /// Support `SSL` connections via openssl package @@ -84,4 +86,14 @@ impl IoStream for SslStream { fn set_keepalive(&mut self, dur: Option) -> io::Result<()> { self.get_mut().get_mut().set_keepalive(dur) } + + fn extensions(&self) -> Option> { + if let Some(x509) = self.get_ref().ssl().peer_certificate() { + let mut extensions = Extensions::new(); + extensions.insert(x509); + Some(Rc::new(extensions)) + } else { + None + } + } }