Fix portability issue and typo
This commit is contained in:
parent
8a0e9d6cca
commit
efbd4eee05
|
|
@ -5,7 +5,7 @@ os:
|
||||||
env:
|
env:
|
||||||
global:
|
global:
|
||||||
- secure: J4i75AV4KMrU/UQrLIzzIh35Xix40Ki0uWjm8j05oxlXVl5aPU2zB30AemDne2QXYzkN4kRG/iRnNORE/8D0lF7YipQNSNxgfiBVoOEfj/NSogvI2BftYX9vlLZJUvt+s/nbE3xa/Pyge1IPv7itDYGO7SMe8RTSqitgqyfE2Eg=
|
- secure: J4i75AV4KMrU/UQrLIzzIh35Xix40Ki0uWjm8j05oxlXVl5aPU2zB30AemDne2QXYzkN4kRG/iRnNORE/8D0lF7YipQNSNxgfiBVoOEfj/NSogvI2BftYX9vlLZJUvt+s/nbE3xa/Pyge1IPv7itDYGO7SMe8RTSqitgqyfE2Eg=
|
||||||
- FEATURES="tlsv1_1 tlsv1_2 dtlsv1 dtlsv1_2 aes_xts npn"
|
- FEATURES="tlsv1_1 tlsv1_2 dtlsv1 aes_xts npn"
|
||||||
before_script:
|
before_script:
|
||||||
- ./openssl/tests/test.sh &
|
- ./openssl/tests/test.sh &
|
||||||
script:
|
script:
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ use libc::types::os::common::bsd44::sockaddr_in;
|
||||||
use libc::types::os::common::bsd44::sockaddr_in6;
|
use libc::types::os::common::bsd44::sockaddr_in6;
|
||||||
use libc::types::os::common::bsd44::in_addr;
|
use libc::types::os::common::bsd44::in_addr;
|
||||||
use libc::types::os::common::bsd44::in6_addr;
|
use libc::types::os::common::bsd44::in6_addr;
|
||||||
|
use libc::types::os::common::bsd44::sa_family_t;
|
||||||
use libc::types::os::common::posix01::timeval;
|
use libc::types::os::common::posix01::timeval;
|
||||||
use libc::funcs::bsd43::setsockopt;
|
use libc::funcs::bsd43::setsockopt;
|
||||||
use libc::consts::os::bsd44::SOL_SOCKET;
|
use libc::consts::os::bsd44::SOL_SOCKET;
|
||||||
|
|
@ -53,6 +54,62 @@ enum SockaddrIn {
|
||||||
V6(sockaddr_in6),
|
V6(sockaddr_in6),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(any(target_os = "linux", target_os = "android", target_os = "nacl",
|
||||||
|
target_os = "windows"))]
|
||||||
|
fn new_sockaddr_in() -> sockaddr_in {
|
||||||
|
sockaddr_in {
|
||||||
|
sin_family: AF_INET as sa_family_t,
|
||||||
|
sin_port: 9,
|
||||||
|
sin_zero: [0; 8],
|
||||||
|
sin_addr: in_addr {
|
||||||
|
s_addr: 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(not(any(target_os = "linux", target_os = "android", target_os = "nacl",
|
||||||
|
target_os = "windows")))]
|
||||||
|
fn new_sockaddr_in() -> sockaddr_in {
|
||||||
|
sockaddr_in {
|
||||||
|
sin_len: 0,
|
||||||
|
sin_family: AF_INET as sa_family_t,
|
||||||
|
sin_port: 0,
|
||||||
|
sin_zero: [0; 8],
|
||||||
|
sin_addr: in_addr {
|
||||||
|
s_addr: 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(any(target_os = "linux", target_os = "android", target_os = "nacl",
|
||||||
|
target_os = "windows"))]
|
||||||
|
fn new_sockaddr_in6() -> sockaddr_in6 {
|
||||||
|
sockaddr_in6 {
|
||||||
|
sin6_family: AF_INET6 as sa_family_t,
|
||||||
|
sin6_port: 0,
|
||||||
|
sin6_flowinfo: 0,
|
||||||
|
sin6_scope_id: 0,
|
||||||
|
sin6_addr: in6_addr {
|
||||||
|
s6_addr: [0; 8],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(not(any(target_os = "linux", target_os = "android", target_os = "nacl",
|
||||||
|
target_os = "windows")))]
|
||||||
|
fn new_sockaddr_in6() -> sockaddr_in6 {
|
||||||
|
sockaddr_in6 {
|
||||||
|
sin6_family: AF_INET6 as sa_family_t,
|
||||||
|
sin6_port: 0,
|
||||||
|
sin6_flowinfo: 0,
|
||||||
|
sin6_scope_id: 0,
|
||||||
|
sin6_addr: in6_addr {
|
||||||
|
s6_addr: [0; 8],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
trait IntoSockaddrIn {
|
trait IntoSockaddrIn {
|
||||||
fn into_sockaddr_in(self) -> Result<SockaddrIn, Error>;
|
fn into_sockaddr_in(self) -> Result<SockaddrIn, Error>;
|
||||||
}
|
}
|
||||||
|
|
@ -63,14 +120,9 @@ impl IntoSockaddrIn for SocketAddr {
|
||||||
|
|
||||||
match self.ip() {
|
match self.ip() {
|
||||||
IpAddr::V4(_) => {
|
IpAddr::V4(_) => {
|
||||||
let mut addr = sockaddr_in {
|
let mut addr = new_sockaddr_in();
|
||||||
sin_zero: [0; 8],
|
addr.sin_port = Int::to_be(self.port());
|
||||||
sin_family: AF_INET as u16,
|
|
||||||
sin_port: Int::to_be(self.port()),
|
|
||||||
sin_addr: in_addr {
|
|
||||||
s_addr: 0
|
|
||||||
}
|
|
||||||
};
|
|
||||||
let cstr = CString::new(ip.clone()).unwrap();
|
let cstr = CString::new(ip.clone()).unwrap();
|
||||||
let res = unsafe {
|
let res = unsafe {
|
||||||
inet_pton(addr.sin_family as c_int,
|
inet_pton(addr.sin_family as c_int,
|
||||||
|
|
@ -87,15 +139,9 @@ impl IntoSockaddrIn for SocketAddr {
|
||||||
},
|
},
|
||||||
|
|
||||||
IpAddr::V6(_) => {
|
IpAddr::V6(_) => {
|
||||||
let mut addr = sockaddr_in6 {
|
let mut addr = new_sockaddr_in6();
|
||||||
sin6_family: AF_INET6 as u16,
|
addr.sin6_port = Int::to_be(self.port());
|
||||||
sin6_port: Int::to_be(self.port()),
|
|
||||||
sin6_flowinfo: 0,
|
|
||||||
sin6_scope_id: 0,
|
|
||||||
sin6_addr: in6_addr {
|
|
||||||
s6_addr: [0; 8],
|
|
||||||
}
|
|
||||||
};
|
|
||||||
let cstr = CString::new(ip.clone()).unwrap();
|
let cstr = CString::new(ip.clone()).unwrap();
|
||||||
let res = unsafe {
|
let res = unsafe {
|
||||||
inet_pton(addr.sin6_family as c_int,
|
inet_pton(addr.sin6_family as c_int,
|
||||||
|
|
|
||||||
|
|
@ -132,7 +132,7 @@ impl SslMethod {
|
||||||
|
|
||||||
#[cfg(feature = "dtlsv1_2")]
|
#[cfg(feature = "dtlsv1_2")]
|
||||||
pub fn is_dtlsv1_2(&self) -> bool {
|
pub fn is_dtlsv1_2(&self) -> bool {
|
||||||
*self == SslMethod::Dtlsv1
|
*self == SslMethod::Dtlsv1_2
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn is_dtls(&self) -> bool {
|
pub fn is_dtls(&self) -> bool {
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,7 @@ use std::net::UdpSocket;
|
||||||
|
|
||||||
const PROTOCOL:SslMethod = Sslv23;
|
const PROTOCOL:SslMethod = Sslv23;
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
mod udp {
|
mod udp {
|
||||||
static mut udp_port:u16 = 15410;
|
static mut udp_port:u16 = 15410;
|
||||||
|
|
||||||
|
|
@ -57,10 +58,8 @@ macro_rules! run_test(
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
use std::net::UdpSocket;
|
use std::net::UdpSocket;
|
||||||
use std::net::TcpStream;
|
use std::net::TcpStream;
|
||||||
use ssl::SslMethod::Sslv23;
|
|
||||||
use ssl;
|
use ssl;
|
||||||
#[cfg(feature="dtlsv1")]
|
use ssl::SslMethod;
|
||||||
use ssl::SslMethod::Dtlsv1;
|
|
||||||
use ssl::{SslContext, SslStream, VerifyCallback};
|
use ssl::{SslContext, SslStream, VerifyCallback};
|
||||||
use ssl::connected_socket::Connect;
|
use ssl::connected_socket::Connect;
|
||||||
use ssl::SslVerifyMode::SSL_VERIFY_PEER;
|
use ssl::SslVerifyMode::SSL_VERIFY_PEER;
|
||||||
|
|
@ -72,7 +71,7 @@ macro_rules! run_test(
|
||||||
#[test]
|
#[test]
|
||||||
fn sslv23() {
|
fn sslv23() {
|
||||||
let stream = TcpStream::connect("127.0.0.1:15418").unwrap();
|
let stream = TcpStream::connect("127.0.0.1:15418").unwrap();
|
||||||
$blk(Sslv23, stream);
|
$blk(SslMethod::Sslv23, stream);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
|
@ -81,7 +80,7 @@ macro_rules! run_test(
|
||||||
let sock = UdpSocket::bind("127.0.0.1:0").unwrap();
|
let sock = UdpSocket::bind("127.0.0.1:0").unwrap();
|
||||||
let stream = sock.connect(udp::next_server().as_slice()).unwrap();
|
let stream = sock.connect(udp::next_server().as_slice()).unwrap();
|
||||||
|
|
||||||
$blk(Dtlsv1, stream);
|
$blk(SslMethod::Dtlsv1, stream);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue