Add SSLv2 support behind a cfg flag
Many OpenSSL distributions have SSLv2 support compiled out, so it should be opt-in.
This commit is contained in:
parent
c3cf00ea10
commit
f5f10deadc
|
|
@ -111,6 +111,8 @@ extern "C" {
|
||||||
|
|
||||||
pub fn SSL_library_init() -> c_int;
|
pub fn SSL_library_init() -> c_int;
|
||||||
|
|
||||||
|
#[cfg(sslv2)]
|
||||||
|
pub fn SSLv2_method() -> *SSL_METHOD;
|
||||||
pub fn SSLv3_method() -> *SSL_METHOD;
|
pub fn SSLv3_method() -> *SSL_METHOD;
|
||||||
pub fn TLSv1_method() -> *SSL_METHOD;
|
pub fn TLSv1_method() -> *SSL_METHOD;
|
||||||
pub fn SSLv23_method() -> *SSL_METHOD;
|
pub fn SSLv23_method() -> *SSL_METHOD;
|
||||||
|
|
|
||||||
16
ssl/mod.rs
16
ssl/mod.rs
|
|
@ -38,15 +38,29 @@ fn init() {
|
||||||
|
|
||||||
/// Determines the SSL method supported
|
/// Determines the SSL method supported
|
||||||
pub enum SslMethod {
|
pub enum SslMethod {
|
||||||
|
#[cfg(sslv2)]
|
||||||
|
/// Only support the SSLv2 protocol
|
||||||
|
Sslv2,
|
||||||
/// Only support the SSLv3 protocol
|
/// Only support the SSLv3 protocol
|
||||||
Sslv3,
|
Sslv3,
|
||||||
/// Only support the TLSv1 protocol
|
/// Only support the TLSv1 protocol
|
||||||
Tlsv1,
|
Tlsv1,
|
||||||
/// Support the SSLv2, SSLv3 and TLSv1 protocols
|
/// Support the SSLv2, SSLv3 and TLSv1 protocols
|
||||||
Sslv23
|
Sslv23,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl SslMethod {
|
impl SslMethod {
|
||||||
|
#[cfg(sslv2)]
|
||||||
|
unsafe fn to_raw(&self) -> *ffi::SSL_METHOD {
|
||||||
|
match *self {
|
||||||
|
Sslv2 => ffi::SSLv2_method(),
|
||||||
|
Sslv3 => ffi::SSLv3_method(),
|
||||||
|
Tlsv1 => ffi::TLSv1_method(),
|
||||||
|
Sslv23 => ffi::SSLv23_method()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(not(sslv2))]
|
||||||
unsafe fn to_raw(&self) -> *ffi::SSL_METHOD {
|
unsafe fn to_raw(&self) -> *ffi::SSL_METHOD {
|
||||||
match *self {
|
match *self {
|
||||||
Sslv3 => ffi::SSLv3_method(),
|
Sslv3 => ffi::SSLv3_method(),
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
use std::from_str::FromStr;
|
||||||
use std::io::Writer;
|
use std::io::Writer;
|
||||||
use std::io::net::tcp::TcpStream;
|
use std::io::net::tcp::TcpStream;
|
||||||
use std::str;
|
use std::str;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue