diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2013-08-18 17:11:45 -0700 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2013-09-06 11:12:49 -0700 |
| commit | b4c36c2d1b8079cdb14bd3bf85c1ffc43f1f1d15 (patch) | |
| tree | ceec36b952fe9b00f2c77c71e2f15fe8d058bafe /src/libstd | |
| parent | d39cec65b025ad4c6de50e778ffd1177279b5b3d (diff) | |
| download | rust-b4c36c2d1b8079cdb14bd3bf85c1ffc43f1f1d15.tar.gz rust-b4c36c2d1b8079cdb14bd3bf85c1ffc43f1f1d15.zip | |
Upgrade libuv to the current master (again)
This is a reopening of the libuv-upgrade part of #8645. Hopefully this won't cause random segfaults all over the place. The windows regression in testing should also be fixed (it shouldn't build the whole compiler twice). A notable difference from before is that gyp is now a git submodule instead of always git-cloned at make time. This allows bundling for releases more easily. Closes #8850
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/rt/io/net/tcp.rs | 2 | ||||
| -rw-r--r-- | src/libstd/rt/uv/addrinfo.rs | 5 | ||||
| -rw-r--r-- | src/libstd/rt/uv/async.rs | 2 | ||||
| -rw-r--r-- | src/libstd/rt/uv/file.rs | 22 | ||||
| -rw-r--r-- | src/libstd/rt/uv/idle.rs | 4 | ||||
| -rw-r--r-- | src/libstd/rt/uv/mod.rs | 52 | ||||
| -rw-r--r-- | src/libstd/rt/uv/net.rs | 17 | ||||
| -rw-r--r-- | src/libstd/rt/uv/timer.rs | 2 | ||||
| -rw-r--r-- | src/libstd/rt/uv/uvio.rs | 30 | ||||
| -rw-r--r-- | src/libstd/rt/uv/uvll.rs | 69 |
10 files changed, 81 insertions, 124 deletions
diff --git a/src/libstd/rt/io/net/tcp.rs b/src/libstd/rt/io/net/tcp.rs index b7cb703eb25..b533ebe923b 100644 --- a/src/libstd/rt/io/net/tcp.rs +++ b/src/libstd/rt/io/net/tcp.rs @@ -182,7 +182,7 @@ mod test { do run_in_newsched_task { let mut called = false; do io_error::cond.trap(|e| { - assert!(e.kind == ConnectionRefused); + assert_eq!(e.kind, ConnectionRefused); called = true; }).inside { let addr = SocketAddr { ip: Ipv4Addr(0, 0, 0, 0), port: 1 }; diff --git a/src/libstd/rt/uv/addrinfo.rs b/src/libstd/rt/uv/addrinfo.rs index 00d1ab5aa9c..83a7e64b139 100644 --- a/src/libstd/rt/uv/addrinfo.rs +++ b/src/libstd/rt/uv/addrinfo.rs @@ -17,7 +17,7 @@ use ptr::null; use rt::uv::uvll; use rt::uv::uvll::UV_GETADDRINFO; use rt::uv::{Loop, UvError, NativeHandle}; -use rt::uv::status_to_maybe_uv_error_with_loop; +use rt::uv::status_to_maybe_uv_error; use rt::uv::net::UvAddrInfo; type GetAddrInfoCallback = ~fn(GetAddrInfoRequest, &UvAddrInfo, Option<UvError>); @@ -90,8 +90,7 @@ impl GetAddrInfoRequest { status: c_int, res: *uvll::addrinfo) { let mut req: GetAddrInfoRequest = NativeHandle::from_native_handle(req); - let loop_ = req.get_loop(); - let err = status_to_maybe_uv_error_with_loop(loop_.native_handle(), status); + let err = status_to_maybe_uv_error(status); let addrinfo = UvAddrInfo(res); let data = req.get_req_data(); (*data.getaddrinfo_cb.get_ref())(req, &addrinfo, err); diff --git a/src/libstd/rt/uv/async.rs b/src/libstd/rt/uv/async.rs index d0ca38317cb..ff7bb9dd03a 100644 --- a/src/libstd/rt/uv/async.rs +++ b/src/libstd/rt/uv/async.rs @@ -34,7 +34,7 @@ impl AsyncWatcher { extern fn async_cb(handle: *uvll::uv_async_t, status: c_int) { let mut watcher: AsyncWatcher = NativeHandle::from_native_handle(handle); - let status = status_to_maybe_uv_error(watcher, status); + let status = status_to_maybe_uv_error(status); let data = watcher.get_watcher_data(); let cb = data.async_cb.get_ref(); (*cb)(watcher, status); diff --git a/src/libstd/rt/uv/file.rs b/src/libstd/rt/uv/file.rs index 0902d5e6d8c..45a5fce3f1e 100644 --- a/src/libstd/rt/uv/file.rs +++ b/src/libstd/rt/uv/file.rs @@ -12,7 +12,7 @@ use prelude::*; use ptr::null; use libc::c_void; use rt::uv::{Request, NativeHandle, Loop, FsCallback, Buf, - status_to_maybe_uv_error_with_loop, UvError}; + status_to_maybe_uv_error, UvError}; use rt::uv::uvll; use rt::uv::uvll::*; use super::super::io::support::PathLike; @@ -62,7 +62,7 @@ impl FsRequest { pub fn open_sync<P: PathLike>(loop_: &Loop, path: &P, flags: int, mode: int) -> Result<int, UvError> { let result = FsRequest::open_common(loop_, path, flags, mode, None); - sync_cleanup(loop_, result) + sync_cleanup(result) } fn unlink_common<P: PathLike>(loop_: &Loop, path: &P, cb: Option<FsCallback>) -> int { @@ -83,11 +83,11 @@ impl FsRequest { } pub fn unlink<P: PathLike>(loop_: &Loop, path: &P, cb: FsCallback) { let result = FsRequest::unlink_common(loop_, path, Some(cb)); - sync_cleanup(loop_, result); + sync_cleanup(result); } pub fn unlink_sync<P: PathLike>(loop_: &Loop, path: &P) -> Result<int, UvError> { let result = FsRequest::unlink_common(loop_, path, None); - sync_cleanup(loop_, result) + sync_cleanup(result) } pub fn install_req_data(&self, cb: Option<FsCallback>) { @@ -140,9 +140,9 @@ impl NativeHandle<*uvll::uv_fs_t> for FsRequest { } } -fn sync_cleanup(loop_: &Loop, result: int) +fn sync_cleanup(result: int) -> Result<int, UvError> { - match status_to_maybe_uv_error_with_loop(loop_.native_handle(), result as i32) { + match status_to_maybe_uv_error(result as i32) { Some(err) => Err(err), None => Ok(result) } @@ -186,7 +186,7 @@ impl FileDescriptor { pub fn write_sync(&mut self, loop_: &Loop, buf: Buf, offset: i64) -> Result<int, UvError> { let result = self.write_common(loop_, buf, offset, None); - sync_cleanup(loop_, result) + sync_cleanup(result) } fn read_common(&mut self, loop_: &Loop, buf: Buf, @@ -214,7 +214,7 @@ impl FileDescriptor { pub fn read_sync(&mut self, loop_: &Loop, buf: Buf, offset: i64) -> Result<int, UvError> { let result = self.read_common(loop_, buf, offset, None); - sync_cleanup(loop_, result) + sync_cleanup(result) } fn close_common(self, loop_: &Loop, cb: Option<FsCallback>) -> int { @@ -236,12 +236,11 @@ impl FileDescriptor { } pub fn close_sync(self, loop_: &Loop) -> Result<int, UvError> { let result = self.close_common(loop_, None); - sync_cleanup(loop_, result) + sync_cleanup(result) } } extern fn compl_cb(req: *uv_fs_t) { let mut req: FsRequest = NativeHandle::from_native_handle(req); - let loop_ = req.get_loop(); // pull the user cb out of the req data let cb = { let data = req.get_req_data(); @@ -252,8 +251,7 @@ extern fn compl_cb(req: *uv_fs_t) { // in uv_fs_open calls, the result will be the fd in the // case of success, otherwise it's -1 indicating an error let result = req.get_result(); - let status = status_to_maybe_uv_error_with_loop( - loop_.native_handle(), result); + let status = status_to_maybe_uv_error(result); // we have a req and status, call the user cb.. // only giving the user a ref to the FsRequest, as we // have to clean it up, afterwards (and they aren't really diff --git a/src/libstd/rt/uv/idle.rs b/src/libstd/rt/uv/idle.rs index a21146620ca..8cbcd7b77c0 100644 --- a/src/libstd/rt/uv/idle.rs +++ b/src/libstd/rt/uv/idle.rs @@ -43,7 +43,7 @@ impl IdleWatcher { let mut idle_watcher: IdleWatcher = NativeHandle::from_native_handle(handle); let data = idle_watcher.get_watcher_data(); let cb: &IdleCallback = data.idle_cb.get_ref(); - let status = status_to_maybe_uv_error(idle_watcher, status); + let status = status_to_maybe_uv_error(status); (*cb)(idle_watcher, status); } } @@ -57,7 +57,7 @@ impl IdleWatcher { let mut idle_watcher: IdleWatcher = NativeHandle::from_native_handle(handle); let data = idle_watcher.get_watcher_data(); let cb: &IdleCallback = data.idle_cb.get_ref(); - let status = status_to_maybe_uv_error(idle_watcher, status); + let status = status_to_maybe_uv_error(status); (*cb)(idle_watcher, status); } } diff --git a/src/libstd/rt/uv/mod.rs b/src/libstd/rt/uv/mod.rs index b85b223468e..451d454d2d8 100644 --- a/src/libstd/rt/uv/mod.rs +++ b/src/libstd/rt/uv/mod.rs @@ -204,12 +204,12 @@ impl<H, W: Watcher + NativeHandle<*H>> WatcherInterop for W { // XXX: Need to define the error constants like EOF so they can be // compared to the UvError type -pub struct UvError(uvll::uv_err_t); +pub struct UvError(c_int); impl UvError { pub fn name(&self) -> ~str { unsafe { - let inner = match self { &UvError(ref a) => a }; + let inner = match self { &UvError(a) => a }; let name_str = uvll::err_name(inner); assert!(name_str.is_not_null()); from_c_str(name_str) @@ -218,7 +218,7 @@ impl UvError { pub fn desc(&self) -> ~str { unsafe { - let inner = match self { &UvError(ref a) => a }; + let inner = match self { &UvError(a) => a }; let desc_str = uvll::strerror(inner); assert!(desc_str.is_not_null()); from_c_str(desc_str) @@ -226,7 +226,7 @@ impl UvError { } pub fn is_eof(&self) -> bool { - self.code == uvll::EOF + **self == uvll::EOF } } @@ -238,18 +238,10 @@ impl ToStr for UvError { #[test] fn error_smoke_test() { - let err = uvll::uv_err_t { code: 1, sys_errno_: 1 }; - let err: UvError = UvError(err); + let err: UvError = UvError(uvll::EOF); assert_eq!(err.to_str(), ~"EOF: end of file"); } -pub fn last_uv_error<H, W: Watcher + NativeHandle<*H>>(watcher: &W) -> UvError { - unsafe { - let loop_ = watcher.event_loop(); - UvError(uvll::last_error(loop_.native_handle())) - } -} - pub fn uv_error_to_io_error(uverr: UvError) -> IoError { unsafe { // Importing error constants @@ -257,10 +249,10 @@ pub fn uv_error_to_io_error(uverr: UvError) -> IoError { use rt::io::*; // uv error descriptions are static - let c_desc = uvll::strerror(&*uverr); + let c_desc = uvll::strerror(*uverr); let desc = str::raw::c_str_to_static_slice(c_desc); - let kind = match uverr.code { + let kind = match *uverr { UNKNOWN => OtherIoError, OK => OtherIoError, EOF => EndOfFile, @@ -268,8 +260,8 @@ pub fn uv_error_to_io_error(uverr: UvError) -> IoError { ECONNREFUSED => ConnectionRefused, ECONNRESET => ConnectionReset, EPIPE => BrokenPipe, - _ => { - rtdebug!("uverr.code %u", uverr.code as uint); + err => { + rtdebug!("uverr.code %d", err as int); // XXX: Need to map remaining uv error types OtherIoError } @@ -284,30 +276,12 @@ pub fn uv_error_to_io_error(uverr: UvError) -> IoError { } /// Given a uv handle, convert a callback status to a UvError -pub fn status_to_maybe_uv_error_with_loop( - loop_: *uvll::uv_loop_t, - status: c_int) -> Option<UvError> { - if status != -1 { +pub fn status_to_maybe_uv_error(status: c_int) -> Option<UvError> +{ + if status >= 0 { None } else { - unsafe { - rtdebug!("loop: %x", loop_ as uint); - let err = uvll::last_error(loop_); - Some(UvError(err)) - } - } -} -/// Given a uv handle, convert a callback status to a UvError -pub fn status_to_maybe_uv_error<T, U: Watcher + NativeHandle<*T>>(handle: U, - status: c_int) -> Option<UvError> { - if status != -1 { - None - } else { - unsafe { - rtdebug!("handle: %x", handle.native_handle() as uint); - let loop_ = uvll::get_loop_for_uv_handle(handle.native_handle()); - status_to_maybe_uv_error_with_loop(loop_, status) - } + Some(UvError(status)) } } diff --git a/src/libstd/rt/uv/net.rs b/src/libstd/rt/uv/net.rs index 9d4eb8f6302..2535e40ba4f 100644 --- a/src/libstd/rt/uv/net.rs +++ b/src/libstd/rt/uv/net.rs @@ -16,7 +16,6 @@ use rt::uv::{AllocCallback, ConnectionCallback, ReadCallback, UdpReceiveCallback use rt::uv::{Loop, Watcher, Request, UvError, Buf, NativeHandle, NullCallback, status_to_maybe_uv_error}; use rt::io::net::ip::{SocketAddr, Ipv4Addr, Ipv6Addr}; -use rt::uv::last_uv_error; use vec; use str; use from_str::{FromStr}; @@ -161,7 +160,7 @@ impl StreamWatcher { rtdebug!("buf len: %d", buf.len as int); let mut stream_watcher: StreamWatcher = NativeHandle::from_native_handle(stream); let cb = stream_watcher.get_watcher_data().read_cb.get_ref(); - let status = status_to_maybe_uv_error(stream_watcher, nread as c_int); + let status = status_to_maybe_uv_error(nread as c_int); (*cb)(stream_watcher, nread as int, buf, status); } } @@ -191,7 +190,7 @@ impl StreamWatcher { let mut stream_watcher = write_request.stream(); write_request.delete(); let cb = stream_watcher.get_watcher_data().write_cb.take_unwrap(); - let status = status_to_maybe_uv_error(stream_watcher, status); + let status = status_to_maybe_uv_error(status); cb(stream_watcher, status); } } @@ -256,7 +255,7 @@ impl TcpWatcher { }; match result { 0 => Ok(()), - _ => Err(last_uv_error(self)), + _ => Err(UvError(result)), } } } @@ -284,7 +283,7 @@ impl TcpWatcher { let mut stream_watcher = connect_request.stream(); connect_request.delete(); let cb = stream_watcher.get_watcher_data().connect_cb.take_unwrap(); - let status = status_to_maybe_uv_error(stream_watcher, status); + let status = status_to_maybe_uv_error(status); cb(stream_watcher, status); } } @@ -307,7 +306,7 @@ impl TcpWatcher { rtdebug!("connection_cb"); let mut stream_watcher: StreamWatcher = NativeHandle::from_native_handle(handle); let cb = stream_watcher.get_watcher_data().connect_cb.get_ref(); - let status = status_to_maybe_uv_error(stream_watcher, status); + let status = status_to_maybe_uv_error(status); (*cb)(stream_watcher, status); } } @@ -351,7 +350,7 @@ impl UdpWatcher { }; match result { 0 => Ok(()), - _ => Err(last_uv_error(self)), + _ => Err(UvError(result)), } } } @@ -384,7 +383,7 @@ impl UdpWatcher { rtdebug!("buf len: %d", buf.len as int); let mut udp_watcher: UdpWatcher = NativeHandle::from_native_handle(handle); let cb = udp_watcher.get_watcher_data().udp_recv_cb.get_ref(); - let status = status_to_maybe_uv_error(udp_watcher, nread as c_int); + let status = status_to_maybe_uv_error(nread as c_int); let addr = uv_socket_addr_to_socket_addr(sockaddr_to_UvSocketAddr(addr)); (*cb)(udp_watcher, nread as int, buf, addr, flags as uint, status); } @@ -419,7 +418,7 @@ impl UdpWatcher { let mut udp_watcher = send_request.handle(); send_request.delete(); let cb = udp_watcher.get_watcher_data().udp_send_cb.take_unwrap(); - let status = status_to_maybe_uv_error(udp_watcher, status); + let status = status_to_maybe_uv_error(status); cb(udp_watcher, status); } } diff --git a/src/libstd/rt/uv/timer.rs b/src/libstd/rt/uv/timer.rs index eaa5e77a6da..7b09cf2eb0e 100644 --- a/src/libstd/rt/uv/timer.rs +++ b/src/libstd/rt/uv/timer.rs @@ -43,7 +43,7 @@ impl TimerWatcher { let mut watcher: TimerWatcher = NativeHandle::from_native_handle(handle); let data = watcher.get_watcher_data(); let cb = data.timer_cb.get_ref(); - let status = status_to_maybe_uv_error(watcher, status); + let status = status_to_maybe_uv_error(status); (*cb)(watcher, status); } } diff --git a/src/libstd/rt/uv/uvio.rs b/src/libstd/rt/uv/uvio.rs index c22674995de..c9b12e47f92 100644 --- a/src/libstd/rt/uv/uvio.rs +++ b/src/libstd/rt/uv/uvio.rs @@ -154,7 +154,7 @@ fn socket_name<T, U: Watcher + NativeHandle<*T>>(sk: SocketNameKind, }; if r != 0 { - let status = status_to_maybe_uv_error(handle, r); + let status = status_to_maybe_uv_error(r); return Err(uv_error_to_io_error(status.unwrap())); } @@ -728,7 +728,7 @@ impl RtioTcpAcceptor for UvTcpAcceptor { uvll::tcp_simultaneous_accepts(self_.listener.watcher.native_handle(), 1 as c_int) }; - match status_to_maybe_uv_error(self_.listener.watcher, r) { + match status_to_maybe_uv_error(r) { Some(err) => Err(uv_error_to_io_error(err)), None => Ok(()) } @@ -741,7 +741,7 @@ impl RtioTcpAcceptor for UvTcpAcceptor { uvll::tcp_simultaneous_accepts(self_.listener.watcher.native_handle(), 0 as c_int) }; - match status_to_maybe_uv_error(self_.listener.watcher, r) { + match status_to_maybe_uv_error(r) { Some(err) => Err(uv_error_to_io_error(err)), None => Ok(()) } @@ -862,7 +862,7 @@ impl RtioTcpStream for UvTcpStream { do self.home_for_io |self_| { let r = unsafe { uvll::tcp_nodelay(self_.watcher.native_handle(), 0 as c_int) }; - match status_to_maybe_uv_error(self_.watcher, r) { + match status_to_maybe_uv_error(r) { Some(err) => Err(uv_error_to_io_error(err)), None => Ok(()) } @@ -873,7 +873,7 @@ impl RtioTcpStream for UvTcpStream { do self.home_for_io |self_| { let r = unsafe { uvll::tcp_nodelay(self_.watcher.native_handle(), 1 as c_int) }; - match status_to_maybe_uv_error(self_.watcher, r) { + match status_to_maybe_uv_error(r) { Some(err) => Err(uv_error_to_io_error(err)), None => Ok(()) } @@ -887,7 +887,7 @@ impl RtioTcpStream for UvTcpStream { delay_in_seconds as c_uint) }; - match status_to_maybe_uv_error(self_.watcher, r) { + match status_to_maybe_uv_error(r) { Some(err) => Err(uv_error_to_io_error(err)), None => Ok(()) } @@ -900,7 +900,7 @@ impl RtioTcpStream for UvTcpStream { uvll::tcp_keepalive(self_.watcher.native_handle(), 0 as c_int, 0 as c_uint) }; - match status_to_maybe_uv_error(self_.watcher, r) { + match status_to_maybe_uv_error(r) { Some(err) => Err(uv_error_to_io_error(err)), None => Ok(()) } @@ -1012,7 +1012,7 @@ impl RtioUdpSocket for UvUdpSocket { } }; - match status_to_maybe_uv_error(self_.watcher, r) { + match status_to_maybe_uv_error(r) { Some(err) => Err(uv_error_to_io_error(err)), None => Ok(()) } @@ -1028,7 +1028,7 @@ impl RtioUdpSocket for UvUdpSocket { } }; - match status_to_maybe_uv_error(self_.watcher, r) { + match status_to_maybe_uv_error(r) { Some(err) => Err(uv_error_to_io_error(err)), None => Ok(()) } @@ -1042,7 +1042,7 @@ impl RtioUdpSocket for UvUdpSocket { uvll::udp_set_multicast_loop(self_.watcher.native_handle(), 1 as c_int) }; - match status_to_maybe_uv_error(self_.watcher, r) { + match status_to_maybe_uv_error(r) { Some(err) => Err(uv_error_to_io_error(err)), None => Ok(()) } @@ -1056,7 +1056,7 @@ impl RtioUdpSocket for UvUdpSocket { uvll::udp_set_multicast_loop(self_.watcher.native_handle(), 0 as c_int) }; - match status_to_maybe_uv_error(self_.watcher, r) { + match status_to_maybe_uv_error(r) { Some(err) => Err(uv_error_to_io_error(err)), None => Ok(()) } @@ -1070,7 +1070,7 @@ impl RtioUdpSocket for UvUdpSocket { uvll::udp_set_multicast_ttl(self_.watcher.native_handle(), ttl as c_int) }; - match status_to_maybe_uv_error(self_.watcher, r) { + match status_to_maybe_uv_error(r) { Some(err) => Err(uv_error_to_io_error(err)), None => Ok(()) } @@ -1084,7 +1084,7 @@ impl RtioUdpSocket for UvUdpSocket { uvll::udp_set_ttl(self_.watcher.native_handle(), ttl as c_int) }; - match status_to_maybe_uv_error(self_.watcher, r) { + match status_to_maybe_uv_error(r) { Some(err) => Err(uv_error_to_io_error(err)), None => Ok(()) } @@ -1098,7 +1098,7 @@ impl RtioUdpSocket for UvUdpSocket { uvll::udp_set_broadcast(self_.watcher.native_handle(), 1 as c_int) }; - match status_to_maybe_uv_error(self_.watcher, r) { + match status_to_maybe_uv_error(r) { Some(err) => Err(uv_error_to_io_error(err)), None => Ok(()) } @@ -1112,7 +1112,7 @@ impl RtioUdpSocket for UvUdpSocket { uvll::udp_set_broadcast(self_.watcher.native_handle(), 0 as c_int) }; - match status_to_maybe_uv_error(self_.watcher, r) { + match status_to_maybe_uv_error(r) { Some(err) => Err(uv_error_to_io_error(err)), None => Ok(()) } diff --git a/src/libstd/rt/uv/uvll.rs b/src/libstd/rt/uv/uvll.rs index 08e9bc062ce..4ef97677bd3 100644 --- a/src/libstd/rt/uv/uvll.rs +++ b/src/libstd/rt/uv/uvll.rs @@ -37,21 +37,34 @@ use libc::{malloc, free}; use libc; use prelude::*; use ptr; -use str; use vec; -pub static UNKNOWN: c_int = -1; +pub use self::errors::*; + pub static OK: c_int = 0; -pub static EOF: c_int = 1; -pub static EADDRINFO: c_int = 2; -pub static EACCES: c_int = 3; -pub static ECONNREFUSED: c_int = 12; -pub static ECONNRESET: c_int = 13; -pub static EPIPE: c_int = 36; +pub static EOF: c_int = -4095; +pub static UNKNOWN: c_int = -4094; + +// uv-errno.h redefines error codes for windows, but not for unix... + +#[cfg(windows)] +pub mod errors { + use libc::c_int; -pub struct uv_err_t { - code: c_int, - sys_errno_: c_int + pub static EACCES: c_int = -4093; + pub static ECONNREFUSED: c_int = -4079; + pub static ECONNRESET: c_int = -4078; + pub static EPIPE: c_int = -4048; +} +#[cfg(not(windows))] +pub mod errors { + use libc; + use libc::c_int; + + pub static EACCES: c_int = -libc::EACCES; + pub static ECONNREFUSED: c_int = -libc::ECONNREFUSED; + pub static ECONNRESET: c_int = -libc::ECONNRESET; + pub static EPIPE: c_int = -libc::EPIPE; } pub struct uv_buf_t { @@ -537,20 +550,12 @@ pub unsafe fn read_stop(stream: *uv_stream_t) -> c_int { return rust_uv_read_stop(stream as *c_void); } -pub unsafe fn last_error(loop_handle: *c_void) -> uv_err_t { - #[fixed_stack_segment]; #[inline(never)]; - - return rust_uv_last_error(loop_handle); -} - -pub unsafe fn strerror(err: *uv_err_t) -> *c_char { +pub unsafe fn strerror(err: c_int) -> *c_char { #[fixed_stack_segment]; #[inline(never)]; - return rust_uv_strerror(err); } -pub unsafe fn err_name(err: *uv_err_t) -> *c_char { +pub unsafe fn err_name(err: c_int) -> *c_char { #[fixed_stack_segment]; #[inline(never)]; - return rust_uv_err_name(err); } @@ -787,23 +792,6 @@ pub unsafe fn freeaddrinfo(ai: *addrinfo) { rust_uv_freeaddrinfo(ai); } -pub unsafe fn get_last_err_info(uv_loop: *c_void) -> ~str { - let err = last_error(uv_loop); - let err_ptr = ptr::to_unsafe_ptr(&err); - let err_name = str::raw::from_c_str(err_name(err_ptr)); - let err_msg = str::raw::from_c_str(strerror(err_ptr)); - return fmt!("LIBUV ERROR: name: %s msg: %s", - err_name, err_msg); -} - -pub unsafe fn get_last_err_data(uv_loop: *c_void) -> uv_err_data { - let err = last_error(uv_loop); - let err_ptr = ptr::to_unsafe_ptr(&err); - let err_name = str::raw::from_c_str(err_name(err_ptr)); - let err_msg = str::raw::from_c_str(strerror(err_ptr)); - uv_err_data { err_name: err_name, err_msg: err_msg } -} - pub struct uv_err_data { err_name: ~str, err_msg: ~str, @@ -835,9 +823,8 @@ extern { cb: uv_async_cb) -> c_int; fn rust_uv_tcp_init(loop_handle: *c_void, handle_ptr: *uv_tcp_t) -> c_int; fn rust_uv_buf_init(out_buf: *uv_buf_t, base: *u8, len: size_t); - fn rust_uv_last_error(loop_handle: *c_void) -> uv_err_t; - fn rust_uv_strerror(err: *uv_err_t) -> *c_char; - fn rust_uv_err_name(err: *uv_err_t) -> *c_char; + fn rust_uv_strerror(err: c_int) -> *c_char; + fn rust_uv_err_name(err: c_int) -> *c_char; fn rust_uv_ip4_addrp(ip: *u8, port: c_int) -> *sockaddr_in; fn rust_uv_ip6_addrp(ip: *u8, port: c_int) -> *sockaddr_in6; fn rust_uv_free_ip4_addr(addr: *sockaddr_in); |
