diff --git a/src/libnative/io/addrinfo.rs b/src/libnative/io/addrinfo.rs index 343fe05ed42c1..7a07b6221277f 100644 --- a/src/libnative/io/addrinfo.rs +++ b/src/libnative/io/addrinfo.rs @@ -27,7 +27,9 @@ impl GetAddrInfoRequest { assert!(host.is_some() || servname.is_some()); let c_host = host.map(|x| x.to_c_str()); + let c_host = c_host.as_ref().map(|x| x.as_ptr()).unwrap_or(null()); let c_serv = servname.map(|x| x.to_c_str()); + let c_serv = c_serv.as_ref().map(|x| x.as_ptr()).unwrap_or(null()); let hint = hint.map(|hint| { libc::addrinfo { @@ -49,9 +51,7 @@ impl GetAddrInfoRequest { // Make the call let s = unsafe { - let ch = if c_host.is_none() { null() } else { c_host.unwrap().as_ptr() }; - let cs = if c_serv.is_none() { null() } else { c_serv.unwrap().as_ptr() }; - getaddrinfo(ch, cs, hint_ptr, &mut res) + getaddrinfo(c_host, c_serv, hint_ptr, &mut res) }; // Error?