native: Deal with the rtio changes
This commit is contained in:
@@ -11,13 +11,12 @@
|
||||
use alloc::arc::Arc;
|
||||
use libc;
|
||||
use std::c_str::CString;
|
||||
use std::intrinsics;
|
||||
use std::io;
|
||||
use std::mem;
|
||||
use std::rt::mutex;
|
||||
use std::rt::rtio;
|
||||
use std::unstable::mutex;
|
||||
use std::rt::rtio::{IoResult, IoError};
|
||||
|
||||
use super::{IoResult, retry};
|
||||
use super::retry;
|
||||
use super::net;
|
||||
use super::util;
|
||||
use super::c;
|
||||
@@ -34,15 +33,17 @@ fn addr_to_sockaddr_un(addr: &CString) -> IoResult<(libc::sockaddr_storage, uint
|
||||
// the sun_path length is limited to SUN_LEN (with null)
|
||||
assert!(mem::size_of::<libc::sockaddr_storage>() >=
|
||||
mem::size_of::<libc::sockaddr_un>());
|
||||
let mut storage: libc::sockaddr_storage = unsafe { intrinsics::init() };
|
||||
let mut storage: libc::sockaddr_storage = unsafe { mem::zeroed() };
|
||||
let s: &mut libc::sockaddr_un = unsafe { mem::transmute(&mut storage) };
|
||||
|
||||
let len = addr.len();
|
||||
if len > s.sun_path.len() - 1 {
|
||||
return Err(io::IoError {
|
||||
kind: io::InvalidInput,
|
||||
desc: "path must be smaller than SUN_LEN",
|
||||
detail: None,
|
||||
#[cfg(unix)] use ERROR = libc::EINVAL;
|
||||
#[cfg(windows)] use ERROR = libc::WSAEINVAL;
|
||||
return Err(IoError {
|
||||
code: ERROR as uint,
|
||||
extra: 0,
|
||||
detail: Some("path must be smaller than SUN_LEN".to_str()),
|
||||
})
|
||||
}
|
||||
s.sun_family = libc::AF_UNIX as libc::sa_family_t;
|
||||
@@ -244,7 +245,7 @@ impl UnixAcceptor {
|
||||
if self.deadline != 0 {
|
||||
try!(util::await(self.fd(), Some(self.deadline), util::Readable));
|
||||
}
|
||||
let mut storage: libc::sockaddr_storage = unsafe { intrinsics::init() };
|
||||
let mut storage: libc::sockaddr_storage = unsafe { mem::zeroed() };
|
||||
let storagep = &mut storage as *mut libc::sockaddr_storage;
|
||||
let size = mem::size_of::<libc::sockaddr_storage>();
|
||||
let mut size = size as libc::socklen_t;
|
||||
|
||||
Reference in New Issue
Block a user