pub fn wrap_stream<S>(
    socket: S,
    domain: &str,
    mode: Mode,
    tls_connector: Option<Arc<ClientConfig>>
) -> Result<MaybeTlsStream<S>>where
    S: Read + Write,