diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2015-02-11 15:29:51 -0800 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2015-02-11 15:45:15 -0800 |
| commit | d2f990f2b0a5a6bdc0834ab8e8ea17bb5212efee (patch) | |
| tree | b0f0c941332106bfa8c771e76f7601838b94f990 /src/libstd/sys | |
| parent | adcda460115b1f491a7624752901b7410591dfc5 (diff) | |
| download | rust-d2f990f2b0a5a6bdc0834ab8e8ea17bb5212efee.tar.gz rust-d2f990f2b0a5a6bdc0834ab8e8ea17bb5212efee.zip | |
More test fixes and rebase conflicts
Diffstat (limited to 'src/libstd/sys')
| -rw-r--r-- | src/libstd/sys/common/thread_local.rs | 1 | ||||
| -rw-r--r-- | src/libstd/sys/windows/c.rs | 42 | ||||
| -rw-r--r-- | src/libstd/sys/windows/net.rs | 2 |
3 files changed, 44 insertions, 1 deletions
diff --git a/src/libstd/sys/common/thread_local.rs b/src/libstd/sys/common/thread_local.rs index ef682902dfc..905fac07c5d 100644 --- a/src/libstd/sys/common/thread_local.rs +++ b/src/libstd/sys/common/thread_local.rs @@ -140,6 +140,7 @@ pub const INIT: StaticKey = StaticKey { /// Constant initialization value for the inner part of static TLS keys. /// /// This value allows specific configuration of the destructor for a TLS key. +#[stable(feature = "rust1", since = "1.0.0")] pub const INIT_INNER: StaticKeyInner = StaticKeyInner { key: atomic::ATOMIC_USIZE_INIT, }; diff --git a/src/libstd/sys/windows/c.rs b/src/libstd/sys/windows/c.rs index 0355565cf00..3a1b797eeb4 100644 --- a/src/libstd/sys/windows/c.rs +++ b/src/libstd/sys/windows/c.rs @@ -19,7 +19,9 @@ pub use self::FILE_INFO_BY_HANDLE_CLASS::*; pub use libc::consts::os::extra::{ FILE_ATTRIBUTE_READONLY, FILE_ATTRIBUTE_DIRECTORY, + WSAPROTOCOL_LEN, }; +pub use libc::types::os::arch::extra::{GROUP, GUID, WSAPROTOCOLCHAIN}; pub const WSADESCRIPTION_LEN: usize = 256; pub const WSASYS_STATUS_LEN: usize = 128; @@ -41,6 +43,7 @@ pub const WSA_INFINITE: libc::DWORD = libc::INFINITE; pub const WSA_WAIT_TIMEOUT: libc::DWORD = libc::consts::os::extra::WAIT_TIMEOUT; pub const WSA_WAIT_EVENT_0: libc::DWORD = libc::consts::os::extra::WAIT_OBJECT_0; pub const WSA_WAIT_FAILED: libc::DWORD = libc::consts::os::extra::WAIT_FAILED; +pub const WSAESHUTDOWN: libc::c_int = 10058; pub const ERROR_NO_MORE_FILES: libc::DWORD = 18; pub const TOKEN_READ: libc::DWORD = 0x20008; @@ -81,6 +84,33 @@ pub type LPWSANETWORKEVENTS = *mut WSANETWORKEVENTS; pub type WSAEVENT = libc::HANDLE; #[repr(C)] +#[derive(Copy)] +pub struct WSAPROTOCOL_INFO { + pub dwServiceFlags1: libc::DWORD, + pub dwServiceFlags2: libc::DWORD, + pub dwServiceFlags3: libc::DWORD, + pub dwServiceFlags4: libc::DWORD, + pub dwProviderFlags: libc::DWORD, + pub ProviderId: GUID, + pub dwCatalogEntryId: libc::DWORD, + pub ProtocolChain: WSAPROTOCOLCHAIN, + pub iVersion: libc::c_int, + pub iAddressFamily: libc::c_int, + pub iMaxSockAddr: libc::c_int, + pub iMinSockAddr: libc::c_int, + pub iSocketType: libc::c_int, + pub iProtocol: libc::c_int, + pub iProtocolMaxOffset: libc::c_int, + pub iNetworkByteOrder: libc::c_int, + pub iSecurityScheme: libc::c_int, + pub dwMessageSize: libc::DWORD, + pub dwProviderReserved: libc::DWORD, + pub szProtocol: [u16; (WSAPROTOCOL_LEN as usize) + 1us], +} + +pub type LPWSAPROTOCOL_INFO = *mut WSAPROTOCOL_INFO; + +#[repr(C)] pub struct fd_set { fd_count: libc::c_uint, fd_array: [libc::SOCKET; FD_SETSIZE], @@ -184,6 +214,7 @@ pub struct FILE_END_OF_FILE_INFO { extern "system" { pub fn WSAStartup(wVersionRequested: libc::WORD, lpWSAData: LPWSADATA) -> libc::c_int; + pub fn WSACleanup() -> libc::c_int; pub fn WSAGetLastError() -> libc::c_int; pub fn WSACloseEvent(hEvent: WSAEVENT) -> libc::BOOL; pub fn WSACreateEvent() -> WSAEVENT; @@ -200,6 +231,17 @@ extern "system" { hEventObject: WSAEVENT, lpNetworkEvents: LPWSANETWORKEVENTS) -> libc::c_int; + pub fn WSADuplicateSocketW(s: libc::SOCKET, + dwProcessId: libc::DWORD, + lpProtocolInfo: LPWSAPROTOCOL_INFO) + -> libc::c_int; + pub fn GetCurrentProcessId() -> libc::DWORD; + pub fn WSASocketW(af: libc::c_int, + kind: libc::c_int, + protocol: libc::c_int, + lpProtocolInfo: LPWSAPROTOCOL_INFO, + g: GROUP, + dwFlags: libc::DWORD) -> libc::SOCKET; pub fn ioctlsocket(s: libc::SOCKET, cmd: libc::c_long, argp: *mut libc::c_ulong) -> libc::c_int; diff --git a/src/libstd/sys/windows/net.rs b/src/libstd/sys/windows/net.rs index 4df72f6d4ab..3451232f40a 100644 --- a/src/libstd/sys/windows/net.rs +++ b/src/libstd/sys/windows/net.rs @@ -62,7 +62,7 @@ pub fn cvt_r<T: SignedInt, F>(mut f: F) -> io::Result<T> where F: FnMut() -> T { impl Socket { pub fn new(addr: &SocketAddr, ty: c_int) -> io::Result<Socket> { - let fam = match addr.ip { + let fam = match addr.ip() { IpAddr::V4(..) => libc::AF_INET, IpAddr::V6(..) => libc::AF_INET6, }; |
