diff options
Diffstat (limited to 'vendor/winapi/src/um/winsock2.rs')
-rw-r--r-- | vendor/winapi/src/um/winsock2.rs | 1450 |
1 files changed, 0 insertions, 1450 deletions
diff --git a/vendor/winapi/src/um/winsock2.rs b/vendor/winapi/src/um/winsock2.rs deleted file mode 100644 index 36793fb..0000000 --- a/vendor/winapi/src/um/winsock2.rs +++ /dev/null @@ -1,1450 +0,0 @@ -// Licensed under the Apache License, Version 2.0 -// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license -// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option. -// All files in the project carrying such notice may not be copied, modified, or distributed -// except according to those terms. -//! Definitions to be used with the WinSock 2 DLL and WinSock 2 applications. -use ctypes::{ - __uint32, __uint64, c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, - c_ulong, c_ushort, -}; -use shared::basetsd::{DWORD_PTR, UINT_PTR, ULONG_PTR}; -use shared::guiddef::{GUID, LPGUID}; -use shared::inaddr::in_addr; -use shared::minwindef::{ - BOOL, DWORD, FARPROC, HIWORD, INT, LOWORD, LPDWORD, LPHANDLE, LPINT, LPVOID, MAKELONG, UINT, - ULONG, WORD, WPARAM, -}; -use shared::qos::FLOWSPEC; -use shared::windef::HWND; -use shared::winerror::{ - ERROR_INVALID_HANDLE, ERROR_INVALID_PARAMETER, ERROR_IO_INCOMPLETE, ERROR_IO_PENDING, - ERROR_NOT_ENOUGH_MEMORY, ERROR_OPERATION_ABORTED, WAIT_TIMEOUT, -}; -use shared::ws2def::{ - AF_APPLETALK, AF_ATM, AF_BAN, AF_BTH, AF_CCITT, AF_CHAOS, AF_DATAKIT, AF_DECnet, AF_DLI, - AF_ECMA, AF_FIREFOX, AF_HYLINK, AF_IMPLINK, AF_INET, AF_INET6, AF_IPX, AF_ISO, AF_LAT, - AF_MAX, AF_NS, AF_OSI, AF_PUP, AF_SNA, AF_UNIX, AF_UNKNOWN1, AF_UNSPEC, AF_VOICEVIEW, - INADDR_ANY, LPCSADDR_INFO, LPSOCKADDR, LPWSABUF, LPWSAMSG, PSOCKET_ADDRESS_LIST, SOCKADDR, - SOCKADDR_IN, WSABUF, -}; -use shared::wtypesbase::{BLOB, LPBLOB}; -use um::minwinbase::OVERLAPPED; -use um::winbase::{INFINITE, WAIT_FAILED, WAIT_IO_COMPLETION, WAIT_OBJECT_0}; -use um::winnt::{ - CHAR, HANDLE, LONG, LPCSTR, LPSTR, LPWSTR, MAXIMUM_WAIT_OBJECTS, PWSTR, SHORT, WCHAR, -}; -pub const WINSOCK_VERSION: WORD = 2 | (2 << 8); -pub type u_char = c_uchar; -pub type u_short = c_ushort; -pub type u_int = c_uint; -pub type u_long = c_ulong; -pub type u_int64 = __uint64; -pub type SOCKET = UINT_PTR; -pub const FD_SETSIZE: usize = 64; -STRUCT!{struct fd_set { - fd_count: u_int, - fd_array: [SOCKET; FD_SETSIZE], -}} -extern "system" { - pub fn __WSAFDIsSet( - fd: SOCKET, - _: *mut fd_set, - ) -> c_int; -} -STRUCT!{struct timeval { - tv_sec: c_long, - tv_usec: c_long, -}} -pub const IOCPARM_MASK: c_long = 0x7f; -pub const IOC_VOID: c_long = 0x20000000; -pub const IOC_OUT: c_long = 0x40000000; -pub const IOC_IN: c_long = 0x80000000; -pub const IOC_INOUT: c_long = IOC_IN | IOC_OUT; -pub const FIONREAD: c_long = IOC_OUT | ((4 & IOCPARM_MASK) << 16) | (0x66 << 8) | 127; -pub const FIONBIO: c_long = IOC_IN | ((4 & IOCPARM_MASK) << 16) | (0x66 << 8) | 126; -pub const FIOASYNC: c_long = IOC_IN | ((4 & IOCPARM_MASK) << 16) | (0x66 << 8) | 125; -pub const SIOCSHIWAT: c_long = IOC_IN | ((4 & IOCPARM_MASK) << 16) | (0x73 << 8) | 0; -pub const SIOCGHIWAT: c_long = IOC_OUT | ((4 & IOCPARM_MASK) << 16) | (0x73 << 8) | 1; -pub const SIOCSLOWAT: c_long = IOC_IN | ((4 & IOCPARM_MASK) << 16) | (0x73 << 8) | 2; -pub const SIOCGLOWAT: c_long = IOC_OUT | ((4 & IOCPARM_MASK) << 16) | (0x73 << 8) | 3; -pub const SIOCATMARK: c_long = IOC_OUT | ((4 & IOCPARM_MASK) << 16) | (0x73 << 8) | 7; -STRUCT!{struct hostent { - h_name: *mut c_char, - h_aliases: *mut *mut c_char, - h_addrtype: c_short, - h_length: c_short, - h_addr_list: *mut *mut c_char, -}} -STRUCT!{struct netent { - n_name: *mut c_char, - n_aliases: *mut *mut c_char, - n_addrtype: c_short, - n_net: u_long, -}} -#[cfg(target_pointer_width = "32")] -STRUCT!{struct servent { - s_name: *mut c_char, - s_aliases: *mut *mut c_char, - s_port: c_short, - s_proto: *mut c_char, -}} -#[cfg(target_pointer_width = "64")] -STRUCT!{struct servent { - s_name: *mut c_char, - s_aliases: *mut *mut c_char, - s_proto: *mut c_char, - s_port: c_short, -}} -STRUCT!{struct protoent { - p_name: *mut c_char, - p_aliases: *mut *mut c_char, - p_proto: c_short, -}} -pub const IPPORT_ECHO: c_short = 7; -pub const IPPORT_DISCARD: c_short = 9; -pub const IPPORT_SYSTAT: c_short = 11; -pub const IPPORT_DAYTIME: c_short = 13; -pub const IPPORT_NETSTAT: c_short = 15; -pub const IPPORT_FTP: c_short = 21; -pub const IPPORT_TELNET: c_short = 23; -pub const IPPORT_SMTP: c_short = 25; -pub const IPPORT_TIMESERVER: c_short = 37; -pub const IPPORT_NAMESERVER: c_short = 42; -pub const IPPORT_WHOIS: c_short = 43; -pub const IPPORT_MTP: c_short = 57; -pub const IPPORT_TFTP: c_short = 69; -pub const IPPORT_RJE: c_short = 77; -pub const IPPORT_FINGER: c_short = 79; -pub const IPPORT_TTYLINK: c_short = 87; -pub const IPPORT_SUPDUP: c_short = 95; -pub const IPPORT_EXECSERVER: c_short = 512; -pub const IPPORT_LOGINSERVER: c_short = 513; -pub const IPPORT_CMDSERVER: c_short = 514; -pub const IPPORT_EFSSERVER: c_short = 520; -pub const IPPORT_BIFFUDP: c_short = 512; -pub const IPPORT_WHOSERVER: c_short = 513; -pub const IPPORT_ROUTESERVER: c_short = 520; -pub const IPPORT_RESERVED: c_short = 1024; -pub const IMPLINK_IP: c_short = 155; -pub const IMPLINK_LOWEXPER: c_short = 156; -pub const IMPLINK_HIGHEXPER: c_short = 158; -pub const ADDR_ANY: ULONG = INADDR_ANY; -pub const WSADESCRIPTION_LEN: usize = 256; -pub const WSASYS_STATUS_LEN: usize = 128; -#[cfg(target_pointer_width = "32")] -STRUCT!{struct WSADATA { - wVersion: WORD, - wHighVersion: WORD, - szDescription: [c_char; WSADESCRIPTION_LEN + 1], - szSystemStatus: [c_char; WSASYS_STATUS_LEN + 1], - iMaxSockets: c_ushort, - iMaxUdpDg: c_ushort, - lpVendorInfo: *mut c_char, -}} -#[cfg(target_pointer_width = "64")] -STRUCT!{struct WSADATA { - wVersion: WORD, - wHighVersion: WORD, - iMaxSockets: c_ushort, - iMaxUdpDg: c_ushort, - lpVendorInfo: *mut c_char, - szDescription: [c_char; WSADESCRIPTION_LEN + 1], - szSystemStatus: [c_char; WSASYS_STATUS_LEN + 1], -}} -pub type LPWSADATA = *mut WSADATA; -pub const INVALID_SOCKET: SOCKET = !0; -pub const SOCKET_ERROR: c_int = -1; -pub const FROM_PROTOCOL_INFO: c_int = -1; -pub const SOCK_STREAM: c_int = 1; -pub const SOCK_DGRAM: c_int = 2; -pub const SOCK_RAW: c_int = 3; -pub const SOCK_RDM: c_int = 4; -pub const SOCK_SEQPACKET: c_int = 5; -pub const SO_DEBUG: c_int = 0x0001; -pub const SO_ACCEPTCONN: c_int = 0x0002; -pub const SO_REUSEADDR: c_int = 0x0004; -pub const SO_KEEPALIVE: c_int = 0x0008; -pub const SO_DONTROUTE: c_int = 0x0010; -pub const SO_BROADCAST: c_int = 0x0020; -pub const SO_USELOOPBACK: c_int = 0x0040; -pub const SO_LINGER: c_int = 0x0080; -pub const SO_OOBINLINE: c_int = 0x0100; -pub const SO_DONTLINGER: c_int = !SO_LINGER; -pub const SO_EXCLUSIVEADDRUSE: c_int = !SO_REUSEADDR; -pub const SO_SNDBUF: c_int = 0x1001; -pub const SO_RCVBUF: c_int = 0x1002; -pub const SO_SNDLOWAT: c_int = 0x1003; -pub const SO_RCVLOWAT: c_int = 0x1004; -pub const SO_SNDTIMEO: c_int = 0x1005; -pub const SO_RCVTIMEO: c_int = 0x1006; -pub const SO_ERROR: c_int = 0x1007; -pub const SO_TYPE: c_int = 0x1008; -pub const SO_GROUP_ID: c_int = 0x2001; -pub const SO_GROUP_PRIORITY: c_int = 0x2002; -pub const SO_MAX_MSG_SIZE: c_int = 0x2003; -pub const SO_PROTOCOL_INFOA: c_int = 0x2004; -pub const SO_PROTOCOL_INFOW: c_int = 0x2005; -pub const PVD_CONFIG: c_int = 0x3001; -pub const SO_CONDITIONAL_ACCEPT: c_int = 0x3002; -STRUCT!{struct sockproto { - sp_family: u_short, - sp_protocol: u_short, -}} -pub const PF_UNSPEC: c_int = AF_UNSPEC; -pub const PF_UNIX: c_int = AF_UNIX; -pub const PF_INET: c_int = AF_INET; -pub const PF_IMPLINK: c_int = AF_IMPLINK; -pub const PF_PUP: c_int = AF_PUP; -pub const PF_CHAOS: c_int = AF_CHAOS; -pub const PF_NS: c_int = AF_NS; -pub const PF_IPX: c_int = AF_IPX; -pub const PF_ISO: c_int = AF_ISO; -pub const PF_OSI: c_int = AF_OSI; -pub const PF_ECMA: c_int = AF_ECMA; -pub const PF_DATAKIT: c_int = AF_DATAKIT; -pub const PF_CCITT: c_int = AF_CCITT; -pub const PF_SNA: c_int = AF_SNA; -pub const PF_DECnet: c_int = AF_DECnet; -pub const PF_DLI: c_int = AF_DLI; -pub const PF_LAT: c_int = AF_LAT; -pub const PF_HYLINK: c_int = AF_HYLINK; -pub const PF_APPLETALK: c_int = AF_APPLETALK; -pub const PF_VOICEVIEW: c_int = AF_VOICEVIEW; -pub const PF_FIREFOX: c_int = AF_FIREFOX; -pub const PF_UNKNOWN1: c_int = AF_UNKNOWN1; -pub const PF_BAN: c_int = AF_BAN; -pub const PF_ATM: c_int = AF_ATM; -pub const PF_INET6: c_int = AF_INET6; -pub const PF_BTH: c_int = AF_BTH; -pub const PF_MAX: c_int = AF_MAX; -STRUCT!{struct linger { - l_onoff: u_short, - l_linger: u_short, -}} -pub const SOL_SOCKET: c_int = 0xffff; -pub const SOMAXCONN: c_int = 0x7fffffff; -#[inline] -pub fn SOMAXCONN_HINT(b: c_int) -> c_int { - -b -} -pub const MSG_OOB: c_int = 0x1; -pub const MSG_PEEK: c_int = 0x2; -pub const MSG_DONTROUTE: c_int = 0x4; -pub const MSG_WAITALL: c_int = 0x8; -pub const MSG_PUSH_IMMEDIATE: c_int = 0x20; -pub const MSG_PARTIAL: c_int = 0x8000; -pub const MSG_INTERRUPT: c_int = 0x10; -pub const MSG_MAXIOVLEN: c_int = 16; -pub const MAXGETHOSTSTRUCT: usize = 1024; -pub const FD_READ_BIT: c_long = 0; -pub const FD_READ: c_long = 1 << FD_READ_BIT; -pub const FD_WRITE_BIT: c_long = 1; -pub const FD_WRITE: c_long = 1 << FD_WRITE_BIT; -pub const FD_OOB_BIT: c_long = 2; -pub const FD_OOB: c_long = 1 << FD_OOB_BIT; -pub const FD_ACCEPT_BIT: c_long = 3; -pub const FD_ACCEPT: c_long = 1 << FD_ACCEPT_BIT; -pub const FD_CONNECT_BIT: c_long = 4; -pub const FD_CONNECT: c_long = 1 << FD_CONNECT_BIT; -pub const FD_CLOSE_BIT: c_long = 5; -pub const FD_CLOSE: c_long = 1 << FD_CLOSE_BIT; -pub const FD_QOS_BIT: c_long = 6; -pub const FD_QOS: c_long = 1 << FD_QOS_BIT; -pub const FD_GROUP_QOS_BIT: c_long = 7; -pub const FD_GROUP_QOS: c_long = 1 << FD_GROUP_QOS_BIT; -pub const FD_ROUTING_INTERFACE_CHANGE_BIT: c_long = 8; -pub const FD_ROUTING_INTERFACE_CHANGE: c_long = 1 << FD_ROUTING_INTERFACE_CHANGE_BIT; -pub const FD_ADDRESS_LIST_CHANGE_BIT: c_long = 9; -pub const FD_ADDRESS_LIST_CHANGE: c_long = 1 << FD_ADDRESS_LIST_CHANGE_BIT; -pub const FD_MAX_EVENTS: usize = 10; -pub const FD_ALL_EVENTS: c_long = (1 << FD_MAX_EVENTS) - 1; -pub const WSABASEERR: c_int = 10000; -pub const WSAEINTR: c_int = WSABASEERR+4; -pub const WSAEBADF: c_int = WSABASEERR+9; -pub const WSAEACCES: c_int = WSABASEERR+13; -pub const WSAEFAULT: c_int = WSABASEERR+14; -pub const WSAEINVAL: c_int = WSABASEERR+22; -pub const WSAEMFILE: c_int = WSABASEERR+24; -pub const WSAEWOULDBLOCK: c_int = WSABASEERR+35; -pub const WSAEINPROGRESS: c_int = WSABASEERR+36; -pub const WSAEALREADY: c_int = WSABASEERR+37; -pub const WSAENOTSOCK: c_int = WSABASEERR+38; -pub const WSAEDESTADDRREQ: c_int = WSABASEERR+39; -pub const WSAEMSGSIZE: c_int = WSABASEERR+40; -pub const WSAEPROTOTYPE: c_int = WSABASEERR+41; -pub const WSAENOPROTOOPT: c_int = WSABASEERR+42; -pub const WSAEPROTONOSUPPORT: c_int = WSABASEERR+43; -pub const WSAESOCKTNOSUPPORT: c_int = WSABASEERR+44; -pub const WSAEOPNOTSUPP: c_int = WSABASEERR+45; -pub const WSAEPFNOSUPPORT: c_int = WSABASEERR+46; -pub const WSAEAFNOSUPPORT: c_int = WSABASEERR+47; -pub const WSAEADDRINUSE: c_int = WSABASEERR+48; -pub const WSAEADDRNOTAVAIL: c_int = WSABASEERR+49; -pub const WSAENETDOWN: c_int = WSABASEERR+50; -pub const WSAENETUNREACH: c_int = WSABASEERR+51; -pub const WSAENETRESET: c_int = WSABASEERR+52; -pub const WSAECONNABORTED: c_int = WSABASEERR+53; -pub const WSAECONNRESET: c_int = WSABASEERR+54; -pub const WSAENOBUFS: c_int = WSABASEERR+55; -pub const WSAEISCONN: c_int = WSABASEERR+56; -pub const WSAENOTCONN: c_int = WSABASEERR+57; -pub const WSAESHUTDOWN: c_int = WSABASEERR+58; -pub const WSAETOOMANYREFS: c_int = WSABASEERR+59; -pub const WSAETIMEDOUT: c_int = WSABASEERR+60; -pub const WSAECONNREFUSED: c_int = WSABASEERR+61; -pub const WSAELOOP: c_int = WSABASEERR+62; -pub const WSAENAMETOOLONG: c_int = WSABASEERR+63; -pub const WSAEHOSTDOWN: c_int = WSABASEERR+64; -pub const WSAEHOSTUNREACH: c_int = WSABASEERR+65; -pub const WSAENOTEMPTY: c_int = WSABASEERR+66; -pub const WSAEPROCLIM: c_int = WSABASEERR+67; -pub const WSAEUSERS: c_int = WSABASEERR+68; -pub const WSAEDQUOT: c_int = WSABASEERR+69; -pub const WSAESTALE: c_int = WSABASEERR+70; -pub const WSAEREMOTE: c_int = WSABASEERR+71; -pub const WSASYSNOTREADY: c_int = WSABASEERR+91; -pub const WSAVERNOTSUPPORTED: c_int = WSABASEERR+92; -pub const WSANOTINITIALISED: c_int = WSABASEERR+93; -pub const WSAEDISCON: c_int = WSABASEERR+101; -pub const WSAENOMORE: c_int = WSABASEERR+102; -pub const WSAECANCELLED: c_int = WSABASEERR+103; -pub const WSAEINVALIDPROCTABLE: c_int = WSABASEERR+104; -pub const WSAEINVALIDPROVIDER: c_int = WSABASEERR+105; -pub const WSAEPROVIDERFAILEDINIT: c_int = WSABASEERR+106; -pub const WSASYSCALLFAILURE: c_int = WSABASEERR+107; -pub const WSASERVICE_NOT_FOUND: c_int = WSABASEERR+108; -pub const WSATYPE_NOT_FOUND: c_int = WSABASEERR+109; -pub const WSA_E_NO_MORE: c_int = WSABASEERR+110; -pub const WSA_E_CANCELLED: c_int = WSABASEERR+111; -pub const WSAEREFUSED: c_int = WSABASEERR+112; -pub const WSAHOST_NOT_FOUND: c_int = WSABASEERR+1001; -pub const WSATRY_AGAIN: c_int = WSABASEERR+1002; -pub const WSANO_RECOVERY: c_int = WSABASEERR+1003; -pub const WSANO_DATA: c_int = WSABASEERR+1004; -pub const WSA_QOS_RECEIVERS: c_int = WSABASEERR + 1005; -pub const WSA_QOS_SENDERS: c_int = WSABASEERR + 1006; -pub const WSA_QOS_NO_SENDERS: c_int = WSABASEERR + 1007; -pub const WSA_QOS_NO_RECEIVERS: c_int = WSABASEERR + 1008; -pub const WSA_QOS_REQUEST_CONFIRMED: c_int = WSABASEERR + 1009; -pub const WSA_QOS_ADMISSION_FAILURE: c_int = WSABASEERR + 1010; -pub const WSA_QOS_POLICY_FAILURE: c_int = WSABASEERR + 1011; -pub const WSA_QOS_BAD_STYLE: c_int = WSABASEERR + 1012; -pub const WSA_QOS_BAD_OBJECT: c_int = WSABASEERR + 1013; -pub const WSA_QOS_TRAFFIC_CTRL_ERROR: c_int = WSABASEERR + 1014; -pub const WSA_QOS_GENERIC_ERROR: c_int = WSABASEERR + 1015; -pub const WSA_QOS_ESERVICETYPE: c_int = WSABASEERR + 1016; -pub const WSA_QOS_EFLOWSPEC: c_int = WSABASEERR + 1017; -pub const WSA_QOS_EPROVSPECBUF: c_int = WSABASEERR + 1018; -pub const WSA_QOS_EFILTERSTYLE: c_int = WSABASEERR + 1019; -pub const WSA_QOS_EFILTERTYPE: c_int = WSABASEERR + 1020; -pub const WSA_QOS_EFILTERCOUNT: c_int = WSABASEERR + 1021; -pub const WSA_QOS_EOBJLENGTH: c_int = WSABASEERR + 1022; -pub const WSA_QOS_EFLOWCOUNT: c_int = WSABASEERR + 1023; -pub const WSA_QOS_EUNKOWNPSOBJ: c_int = WSABASEERR + 1024; -pub const WSA_QOS_EPOLICYOBJ: c_int = WSABASEERR + 1025; -pub const WSA_QOS_EFLOWDESC: c_int = WSABASEERR + 1026; -pub const WSA_QOS_EPSFLOWSPEC: c_int = WSABASEERR + 1027; -pub const WSA_QOS_EPSFILTERSPEC: c_int = WSABASEERR + 1028; -pub const WSA_QOS_ESDMODEOBJ: c_int = WSABASEERR + 1029; -pub const WSA_QOS_ESHAPERATEOBJ: c_int = WSABASEERR + 1030; -pub const WSA_QOS_RESERVED_PETYPE: c_int = WSABASEERR + 1031; -#[inline] -pub unsafe fn h_errno() -> c_int { - WSAGetLastError() -} -pub const HOST_NOT_FOUND: c_int = WSAHOST_NOT_FOUND; -pub const TRY_AGAIN: c_int = WSATRY_AGAIN; -pub const NO_RECOVERY: c_int = WSANO_RECOVERY; -pub const NO_DATA: c_int = WSANO_DATA; -pub const WSANO_ADDRESS: c_int = WSANO_DATA; -pub const NO_ADDRESS: c_int = WSANO_ADDRESS; -pub type WSAEVENT = HANDLE; -pub type LPWSAEVENT = LPHANDLE; -pub type WSAOVERLAPPED = OVERLAPPED; -pub type LPWSAOVERLAPPED = *mut OVERLAPPED; -pub const WSA_IO_PENDING: c_int = ERROR_IO_PENDING as i32; -pub const WSA_IO_INCOMPLETE: c_int = ERROR_IO_INCOMPLETE as i32; -pub const WSA_INVALID_HANDLE: c_int = ERROR_INVALID_HANDLE as i32; -pub const WSA_INVALID_PARAMETER: c_int = ERROR_INVALID_PARAMETER as i32; -pub const WSA_NOT_ENOUGH_MEMORY: c_int = ERROR_NOT_ENOUGH_MEMORY as i32; -pub const WSA_OPERATION_ABORTED: c_int = ERROR_OPERATION_ABORTED as i32; -pub const WSA_INVALID_EVENT: WSAEVENT = 0 as WSAEVENT; -pub const WSA_MAXIMUM_WAIT_EVENTS: DWORD = MAXIMUM_WAIT_OBJECTS; -pub const WSA_WAIT_FAILED: DWORD = WAIT_FAILED; -pub const WSA_WAIT_EVENT_0: DWORD = WAIT_OBJECT_0; -pub const WSA_WAIT_IO_COMPLETION: DWORD = WAIT_IO_COMPLETION; -pub const WSA_WAIT_TIMEOUT: DWORD = WAIT_TIMEOUT; -pub const WSA_INFINITE: DWORD = INFINITE; -STRUCT!{struct QOS { - SendingFlowspec: FLOWSPEC, - FLOWSPEC: FLOWSPEC, - ProviderSpecific: WSABUF, -}} -pub type LPQOS = *mut QOS; -pub const CF_ACCEPT: c_int = 0x0000; -pub const CF_REJECT: c_int = 0x0001; -pub const CF_DEFER: c_int = 0x0002; -pub const SD_RECEIVE: c_int = 0x00; -pub const SD_SEND: c_int = 0x01; -pub const SD_BOTH: c_int = 0x02; -pub type GROUP = c_uint; -pub const SG_UNCONSTRAINED_GROUP: GROUP = 0x01; -pub const SG_CONSTRAINED_GROUP: GROUP = 0x02; -STRUCT!{struct WSANETWORKEVENTS { - lNetworkEvents: c_long, - iErrorCode: [c_int; FD_MAX_EVENTS], -}} -pub type LPWSANETWORKEVENTS = *mut WSANETWORKEVENTS; -pub const MAX_PROTOCOL_CHAIN: usize = 7; -pub const BASE_PROTOCOL: c_int = 1; -pub const LAYERED_PROTOCOL: c_int = 0; -STRUCT!{struct WSAPROTOCOLCHAIN { - ChainLen: c_int, - ChainEntries: [DWORD; MAX_PROTOCOL_CHAIN], -}} -pub type LPWSAPROTOCOLCHAIN = *mut WSAPROTOCOLCHAIN; -pub const WSAPROTOCOL_LEN: usize = 255; -STRUCT!{struct WSAPROTOCOL_INFOA { - dwServiceFlags1: DWORD, - dwServiceFlags2: DWORD, - dwServiceFlags3: DWORD, - dwServiceFlags4: DWORD, - dwServiceFlags5: DWORD, - ProviderId: GUID, - dwCatalogEntryId: DWORD, - ProtocolChain: WSAPROTOCOLCHAIN, - iVersion: c_int, - iAddressFamily: c_int, - iMaxSockAddr: c_int, - iMinSockAddr: c_int, - iSocketType: c_int, - iProtocol: c_int, - iProtocolMaxOffset: c_int, - iNetworkByteOrder: c_int, - iSecurityScheme: c_int, - dwMessageSize: DWORD, - dwProviderReserved: DWORD, - szProtocol: [CHAR; WSAPROTOCOL_LEN + 1], -}} -pub type LPWSAPROTOCOL_INFOA = *mut WSAPROTOCOL_INFOA; -STRUCT!{struct WSAPROTOCOL_INFOW { - dwServiceFlags1: DWORD, - dwServiceFlags2: DWORD, - dwServiceFlags3: DWORD, - dwServiceFlags4: DWORD, - dwServiceFlags5: DWORD, - ProviderId: GUID, - dwCatalogEntryId: DWORD, - ProtocolChain: WSAPROTOCOLCHAIN, - iVersion: c_int, - iAddressFamily: c_int, - iMaxSockAddr: c_int, - iMinSockAddr: c_int, - iSocketType: c_int, - iProtocol: c_int, - iProtocolMaxOffset: c_int, - iNetworkByteOrder: c_int, - iSecurityScheme: c_int, - dwMessageSize: DWORD, - dwProviderReserved: DWORD, - szProtocol: [WCHAR; WSAPROTOCOL_LEN + 1], -}} -pub type LPWSAPROTOCOL_INFOW = *mut WSAPROTOCOL_INFOW; -pub const PFL_MULTIPLE_PROTO_ENTRIES: DWORD = 0x00000001; -pub const PFL_RECOMMENDED_PROTO_ENTRY: DWORD = 0x00000002; -pub const PFL_HIDDEN: DWORD = 0x00000004; -pub const PFL_MATCHES_PROTOCOL_ZERO: DWORD = 0x00000008; -pub const PFL_NETWORKDIRECT_PROVIDER: DWORD = 0x00000010; -pub const XP1_CONNECTIONLESS: DWORD = 0x00000001; -pub const XP1_GUARANTEED_DELIVERY: DWORD = 0x00000002; -pub const XP1_GUARANTEED_ORDER: DWORD = 0x00000004; -pub const XP1_MESSAGE_ORIENTED: DWORD = 0x00000008; -pub const XP1_PSEUDO_STREAM: DWORD = 0x00000010; -pub const XP1_GRACEFUL_CLOSE: DWORD = 0x00000020; -pub const XP1_EXPEDITED_DATA: DWORD = 0x00000040; -pub const XP1_CONNECT_DATA: DWORD = 0x00000080; -pub const XP1_DISCONNECT_DATA: DWORD = 0x00000100; -pub const XP1_SUPPORT_BROADCAST: DWORD = 0x00000200; -pub const XP1_SUPPORT_MULTIPOINT: DWORD = 0x00000400; -pub const XP1_MULTIPOINT_CONTROL_PLANE: DWORD = 0x00000800; -pub const XP1_MULTIPOINT_DATA_PLANE: DWORD = 0x00001000; -pub const XP1_QOS_SUPPORTED: DWORD = 0x00002000; -pub const XP1_INTERRUPT: DWORD = 0x00004000; -pub const XP1_UNI_SEND: DWORD = 0x00008000; -pub const XP1_UNI_RECV: DWORD = 0x00010000; -pub const XP1_IFS_HANDLES: DWORD = 0x00020000; -pub const XP1_PARTIAL_MESSAGE: DWORD = 0x00040000; -pub const XP1_SAN_SUPPORT_SDP: DWORD = 0x00080000; -pub const BIGENDIAN: DWORD = 0x0000; -pub const LITTLEENDIAN: DWORD = 0x0001; -pub const SECURITY_PROTOCOL_NONE: DWORD = 0x0000; -pub const JL_SENDER_ONLY: DWORD = 0x01; -pub const JL_RECEIVER_ONLY: DWORD = 0x02; -pub const JL_BOTH: DWORD = 0x04; -pub const WSA_FLAG_OVERLAPPED: DWORD = 0x01; -pub const WSA_FLAG_MULTIPOINT_C_ROOT: DWORD = 0x02; -pub const WSA_FLAG_MULTIPOINT_C_LEAF: DWORD = 0x04; -pub const WSA_FLAG_MULTIPOINT_D_ROOT: DWORD = 0x08; -pub const WSA_FLAG_MULTIPOINT_D_LEAF: DWORD = 0x10; -pub const WSA_FLAG_ACCESS_SYSTEM_SECURITY: DWORD = 0x40; -pub const WSA_FLAG_NO_HANDLE_INHERIT: DWORD = 0x80; -pub const WSA_FLAG_REGISTERED_IO: DWORD = 0x100; -FN!{stdcall LPCONDITIONPROC( - lpCallerId: LPWSABUF, - lpCallerData: LPWSABUF, - lpSQOS: LPQOS, - lpGQOS: LPQOS, - lpCalleeId: LPWSABUF, - lpCalleeData: LPWSABUF, - g: *mut GROUP, - dwCallbackData: DWORD, -) -> c_int} -FN!{stdcall LPWSAOVERLAPPED_COMPLETION_ROUTINE( - dwError: DWORD, - cbTransferred: DWORD, - lpOverlapped: LPWSAOVERLAPPED, - dwFlags: DWORD, -) -> ()} -ENUM!{enum WSACOMPLETIONTYPE { - NSP_NOTIFY_IMMEDIATELY = 0, - NSP_NOTIFY_HWND, - NSP_NOTIFY_EVENT, - NSP_NOTIFY_PORT, - NSP_NOTIFY_APC, -}} -pub type PWSACOMPLETIONTYPE = *mut WSACOMPLETIONTYPE; -pub type LPWSACOMPLETIONTYPE = *mut WSACOMPLETIONTYPE; -STRUCT!{struct WSACOMPLETION_WindowMessage { - hWnd: HWND, - uMsg: UINT, - context: WPARAM, -}} -STRUCT!{struct WSACOMPLETION_Event { - lpOverlapped: LPWSAOVERLAPPED, -}} -STRUCT!{struct WSACOMPLETION_Apc { - lpOverlapped: LPWSAOVERLAPPED, - lpfnCompletionProc: LPWSAOVERLAPPED_COMPLETION_ROUTINE, -}} -STRUCT!{struct WSACOMPLETION_Port { - lpOverlapped: LPWSAOVERLAPPED, - hPort: HANDLE, - Key: ULONG_PTR, -}} -UNION!{union WSACOMPLETION_Parameter { - [usize; 3], - WindowMessage WindowMessage_mut: WSACOMPLETION_WindowMessage, - Event Event_mut: WSACOMPLETION_Event, - Apc Apc_mut: WSACOMPLETION_Apc, - Port Port_mut: WSACOMPLETION_Port, -}} -STRUCT!{struct WSACOMPLETION { - Type: WSACOMPLETIONTYPE, - Parameters: WSACOMPLETION_Parameter, -}} -pub type PWSACOMPLETION = *mut WSACOMPLETION; -pub type LPWSACOMPLETION = *mut WSACOMPLETION; -pub const TH_NETDEV: DWORD = 0x00000001; -pub const TH_TAPI: DWORD = 0x00000002; -pub const SERVICE_MULTIPLE: DWORD = 0x00000001; -pub const NS_ALL: DWORD = 0; -pub const NS_SAP: DWORD = 1; -pub const NS_NDS: DWORD = 2; -pub const NS_PEER_BROWSE: DWORD = 3; -pub const NS_SLP: DWORD = 5; -pub const NS_DHCP: DWORD = 6; -pub const NS_TCPIP_LOCAL: DWORD = 10; -pub const NS_TCPIP_HOSTS: DWORD = 11; -pub const NS_DNS: DWORD = 12; -pub const NS_NETBT: DWORD = 13; -pub const NS_WINS: DWORD = 14; -pub const NS_NLA: DWORD = 15; -pub const NS_BTH: DWORD = 16; -pub const NS_LOCALNAME: DWORD = 19; -pub const NS_NBP: DWORD = 20; -pub const NS_MS: DWORD = 30; -pub const NS_STDA: DWORD = 31; -pub const NS_NTDS: DWORD = 32; -pub const NS_EMAIL: DWORD = 37; -pub const NS_PNRPNAME: DWORD = 38; -pub const NS_PNRPCLOUD: DWORD = 39; -pub const NS_X500: DWORD = 40; -pub const NS_NIS: DWORD = 41; -pub const NS_NISPLUS: DWORD = 42; -pub const NS_WRQ: DWORD = 50; -pub const NS_NETDES: DWORD = 60; -pub const RES_UNUSED_1: DWORD = 0x00000001; -pub const RES_FLUSH_CACHE: DWORD = 0x00000002; -pub const RES_SERVICE: DWORD = 0x00000004; -pub const SERVICE_TYPE_VALUE_IPXPORT: &'static str = "IpxSocket"; -pub const SERVICE_TYPE_VALUE_SAPID: &'static str = "SapId"; -pub const SERVICE_TYPE_VALUE_TCPPORT: &'static str = "TcpPort"; -pub const SERVICE_TYPE_VALUE_UDPPORT: &'static str = "UdpPort"; -pub const SERVICE_TYPE_VALUE_OBJECTID: &'static str = "ObjectId"; -STRUCT!{struct AFPROTOCOLS { - iAddressFamily: INT, - iProtocol: INT, -}} -pub type PAFPROTOCOLS = *mut AFPROTOCOLS; -pub type LPAFPROTOCOLS = *mut AFPROTOCOLS; -ENUM!{enum WSAECOMPARATOR { - COMP_EQUAL = 0, - COMP_NOTLESS, -}} -pub type PWSAECOMPARATOR = *mut WSAECOMPARATOR; -pub type LPWSAECOMPARATOR = *mut WSAECOMPARATOR; -STRUCT!{struct WSAVERSION { - dwVersion: DWORD, - ecHow: WSAECOMPARATOR, -}} -pub type PWSAVERSION = *mut WSAVERSION; -pub type LPWSAVERSION = *mut WSAVERSION; -STRUCT!{struct WSAQUERYSETA { - dwSize: DWORD, - lpszServiceInstanceName: LPSTR, - lpServiceClassId: LPGUID, - lpVersion: LPWSAVERSION, - lpszComment: LPSTR, - dwNameSpace: DWORD, - lpNSProviderId: LPGUID, - lpszContext: LPSTR, - dwNumberOfProtocols: DWORD, - lpafpProtocols: LPAFPROTOCOLS, - lpszQueryString: LPSTR, - dwNumberOfCsAddrs: DWORD, - lpcsaBuffer: LPCSADDR_INFO, - dwOutputFlags: DWORD, - lpBlob: LPBLOB, -}} -pub type PWSAQUERYSETA = *mut WSAQUERYSETA; -pub type LPWSAQUERYSETA = *mut WSAQUERYSETA; -STRUCT!{struct WSAQUERYSETW { - dwSize: DWORD, - lpszServiceInstanceName: LPWSTR, - lpServiceClassId: LPGUID, - lpVersion: LPWSAVERSION, - lpszComment: LPWSTR, - dwNameSpace: DWORD, - lpNSProviderId: LPGUID, - lpszContext: LPWSTR, - dwNumberOfProtocols: DWORD, - lpafpProtocols: LPAFPROTOCOLS, - lpszQueryString: LPWSTR, - dwNumberOfCsAddrs: DWORD, - lpcsaBuffer: LPCSADDR_INFO, - dwOutputFlags: DWORD, - lpBlob: LPBLOB, -}} -pub type PWSAQUERYSETW = *mut WSAQUERYSETW; -pub type LPWSAQUERYSETW = *mut WSAQUERYSETW; -STRUCT!{struct WSAQUERYSET2A { - dwSize: DWORD, - lpszServiceInstanceName: LPSTR, - lpVersion: LPWSAVERSION, - lpszComment: LPSTR, - dwNameSpace: DWORD, - lpNSProviderId: LPGUID, - lpszContext: LPSTR, - dwNumberOfProtocols: DWORD, - lpafpProtocols: LPAFPROTOCOLS, - lpszQueryString: LPSTR, - dwNumberOfCsAddrs: DWORD, - lpcsaBuffer: LPCSADDR_INFO, - dwOutputFlags: DWORD, - lpBlob: LPBLOB, -}} -pub type PWSAQUERYSET2A = *mut WSAQUERYSET2A; -pub type LPWSAQUERYSET2A = *mut WSAQUERYSET2A; -STRUCT!{struct WSAQUERYSET2W { - dwSize: DWORD, - lpszServiceInstanceName: LPWSTR, - lpVersion: LPWSAVERSION, - lpszComment: LPWSTR, - dwNameSpace: DWORD, - lpNSProviderId: LPGUID, - lpszContext: LPWSTR, - dwNumberOfProtocols: DWORD, - lpafpProtocols: LPAFPROTOCOLS, - lpszQueryString: LPWSTR, - dwNumberOfCsAddrs: DWORD, - lpcsaBuffer: LPCSADDR_INFO, - dwOutputFlags: DWORD, - lpBlob: LPBLOB, -}} -pub type PWSAQUERYSET2W = *mut WSAQUERYSET2W; -pub type LPWSAQUERYSET2W = *mut WSAQUERYSET2W; -pub const LUP_DEEP: DWORD = 0x0001; -pub const LUP_CONTAINERS: DWORD = 0x0002; -pub const LUP_NOCONTAINERS: DWORD = 0x0004; -pub const LUP_NEAREST: DWORD = 0x0008; -pub const LUP_RETURN_NAME: DWORD = 0x0010; -pub const LUP_RETURN_TYPE: DWORD = 0x0020; -pub const LUP_RETURN_VERSION: DWORD = 0x0040; -pub const LUP_RETURN_COMMENT: DWORD = 0x0080; -pub const LUP_RETURN_ADDR: DWORD = 0x0100; -pub const LUP_RETURN_BLOB: DWORD = 0x0200; -pub const LUP_RETURN_ALIASES: DWORD = 0x0400; -pub const LUP_RETURN_QUERY_STRING: DWORD = 0x0800; -pub const LUP_RETURN_ALL: DWORD = 0x0FF0; -pub const LUP_RES_SERVICE: DWORD = 0x8000; -pub const LUP_FLUSHCACHE: DWORD = 0x1000; -pub const LUP_FLUSHPREVIOUS: DWORD = 0x2000; -pub const LUP_NON_AUTHORITATIVE: DWORD = 0x4000; -pub const LUP_SECURE: DWORD = 0x8000; -pub const LUP_RETURN_PREFERRED_NAMES: DWORD = 0x10000; -pub const LUP_DNS_ONLY: DWORD = 0x20000; -pub const LUP_ADDRCONFIG: DWORD = 0x00100000; -pub const LUP_DUAL_ADDR: DWORD = 0x00200000; -pub const LUP_FILESERVER: DWORD = 0x00400000; -pub const LUP_DISABLE_IDN_ENCODING: DWORD = 0x00800000; -pub const LUP_API_ANSI: DWORD = 0x01000000; -pub const LUP_RESOLUTION_HANDLE: DWORD = 0x80000000; -pub const RESULT_IS_ALIAS: DWORD = 0x0001; -pub const RESULT_IS_ADDED: DWORD = 0x0010; -pub const RESULT_IS_CHANGED: DWORD = 0x0020; -pub const RESULT_IS_DELETED: DWORD = 0x0040; -ENUM!{enum WSAESETSERVICEOP { - RNRSERVICE_REGISTER = 0, - RNRSERVICE_DEREGISTER, - RNRSERVICE_DELETE, -}} -pub type PWSAESETSERVICEOP = *mut WSAESETSERVICEOP; -pub type LPWSAESETSERVICEOP = *mut WSAESETSERVICEOP; -STRUCT!{struct WSANSCLASSINFOA { - lpszName: LPSTR, - dwNameSpace: DWORD, - dwValueType: DWORD, - dwValueSize: DWORD, - lpValue: LPVOID, -}} -pub type PWSANSCLASSINFOA = *mut WSANSCLASSINFOA; -pub type LPWSANSCLASSINFOA = *mut WSANSCLASSINFOA; -STRUCT!{struct WSANSCLASSINFOW { - lpszName: LPWSTR, - dwNameSpace: DWORD, - dwValueType: DWORD, - dwValueSize: DWORD, - lpValue: LPVOID, -}} -pub type PWSANSCLASSINFOW = *mut WSANSCLASSINFOW; -pub type LPWSANSCLASSINFOW = *mut WSANSCLASSINFOW; -STRUCT!{struct WSASERVICECLASSINFOA { - lpServiceClassId: LPGUID, - lpszServiceClassName: LPSTR, - dwCount: DWORD, - lpClassInfos: LPWSANSCLASSINFOA, -}} -pub type PWSASERVICECLASSINFOA = *mut WSASERVICECLASSINFOA; -pub type LPWSASERVICECLASSINFOA = *mut WSASERVICECLASSINFOA; -STRUCT!{struct WSASERVICECLASSINFOW { - lpServiceClassId: LPGUID, - lpszServiceClassName: LPWSTR, - dwCount: DWORD, - lpClassInfos: LPWSANSCLASSINFOW, -}} -pub type PWSASERVICECLASSINFOW = *mut WSASERVICECLASSINFOW; -pub type LPWSASERVICECLASSINFOW = *mut WSASERVICECLASSINFOW; -STRUCT!{struct WSANAMESPACE_INFOA { - NSProviderId: GUID, - dwNameSpace: DWORD, - fActive: BOOL, - dwVersion: DWORD, - lpszIdentifier: LPSTR, -}} -pub type PWSANAMESPACE_INFOA = *mut WSANAMESPACE_INFOA; -pub type LPWSANAMESPACE_INFOA = *mut WSANAMESPACE_INFOA; -STRUCT!{struct WSANAMESPACE_INFOW { - NSProviderId: GUID, - dwNameSpace: DWORD, - fActive: BOOL, - dwVersion: DWORD, - lpszIdentifier: LPWSTR, -}} -pub type PWSANAMESPACE_INFOW = *mut WSANAMESPACE_INFOW; -pub type LPWSANAMESPACE_INFOW = *mut WSANAMESPACE_INFOW; -STRUCT!{struct WSANAMESPACE_INFOEXA { - NSProviderId: GUID, - dwNameSpace: DWORD, - fActive: BOOL, - dwVersion: DWORD, - lpszIdentifier: LPSTR, - ProviderSpecific: BLOB, -}} -pub type PWSANAMESPACE_INFOEXA = *mut WSANAMESPACE_INFOEXA; -pub type LPWSANAMESPACE_INFOEXA = *mut WSANAMESPACE_INFOEXA; -STRUCT!{struct WSANAMESPACE_INFOEXW { - NSProviderId: GUID, - dwNameSpace: DWORD, - fActive: BOOL, - dwVersion: DWORD, - lpszIdentifier: LPWSTR, - ProviderSpecific: BLOB, -}} -pub type PWSANAMESPACE_INFOEXW = *mut WSANAMESPACE_INFOEXW; -pub type LPWSANAMESPACE_INFOEXW = *mut WSANAMESPACE_INFOEXW; -pub const POLLRDNORM: SHORT = 0x0100; -pub const POLLRDBAND: SHORT = 0x0200; -pub const POLLIN: SHORT = POLLRDNORM | POLLRDBAND; -pub const POLLPRI: SHORT = 0x0400; -pub const POLLWRNORM: SHORT = 0x0010; -pub const POLLOUT: SHORT = POLLWRNORM; -pub const POLLWRBAND: SHORT = 0x0020; -pub const POLLERR: SHORT = 0x0001; -pub const POLLHUP: SHORT = 0x0002; -pub const POLLNVAL: SHORT = 0x0004; -STRUCT!{struct WSAPOLLFD { - fd: SOCKET, - events: SHORT, - revents: SHORT, -}} -pub type PWSAPOLLFD = *mut WSAPOLLFD; -pub type LPWSAPOLLFD = *mut WSAPOLLFD; -extern "system" { - pub fn accept( - s: SOCKET, - addr: *mut SOCKADDR, - addrlen: *mut c_int, - ) -> SOCKET; - pub fn bind(s: SOCKET, - name: *const SOCKADDR, - namelen: c_int, - ) -> c_int; - pub fn closesocket( - s: SOCKET, - ) -> c_int; - pub fn connect( - s: SOCKET, - name: *const SOCKADDR, - namelen: c_int, - ) -> c_int; - pub fn ioctlsocket( - s: SOCKET, - cmd: c_long, - argp: *mut u_long, - ) -> c_int; - pub fn getpeername( - s: SOCKET, - name: *mut SOCKADDR, - namelen: *mut c_int, - ) -> c_int; - pub fn getsockname( - s: SOCKET, - name: *mut SOCKADDR, - namelen: *mut c_int, - ) -> c_int; - pub fn getsockopt( - s: SOCKET, - level: c_int, - optname: c_int, - optval: *mut c_char, - optlen: *mut c_int, - ) -> c_int; - pub fn htonl( - hostlong: u_long, - ) -> u_long; - pub fn htons( - hostshort: u_short, - ) -> u_short; - pub fn inet_addr( - cp: *const c_char, - ) -> c_ulong; - pub fn inet_ntoa( - _in: in_addr, - ) -> *mut c_char; -} -#[inline] -pub fn _WS2_32_WINSOCK_SWAP_LONG(l: __uint32) -> __uint32 { - ((l >> 24) & 0x000000FF) | ((l >> 8) & 0x0000FF00) | ((l << 8) & 0x00FF0000) - | ((l << 24) & 0xFF000000) -} -#[inline] -pub fn _WS2_32_WINSOCK_SWAP_LONGLONG(l: __uint64) -> __uint64 { - ((l >> 56) & 0x00000000000000FF) | ((l >> 40) & 0x000000000000FF00) - | ((l >> 24) & 0x0000000000FF0000) | ((l >> 8) & 0x00000000FF000000) - | ((l << 8) & 0x000000FF00000000) | ((l << 24) & 0x0000FF0000000000) - | ((l << 40) & 0x00FF000000000000) | ((l << 56) & 0xFF00000000000000) -} -#[inline] -pub fn htonll(Value: __uint64) -> __uint64 { - _WS2_32_WINSOCK_SWAP_LONGLONG(Value) -} -#[inline] -pub fn ntohll(Value: __uint64) -> __uint64 { - _WS2_32_WINSOCK_SWAP_LONGLONG(Value) -} -#[inline] -pub fn htonf(Value: c_float) -> __uint32 { - let Tempval: __uint32 = unsafe { ::core::mem::transmute(Value) }; - _WS2_32_WINSOCK_SWAP_LONG(Tempval) -} -#[inline] -pub fn ntohf(Value: __uint32) -> c_float { - let Tempval = _WS2_32_WINSOCK_SWAP_LONG(Value); - unsafe { ::core::mem::transmute(Tempval) } -} -#[inline] -pub fn htond(Value: c_double) -> __uint64 { - let Tempval: __uint64 = unsafe { ::core::mem::transmute(Value) }; - _WS2_32_WINSOCK_SWAP_LONGLONG(Tempval) -} -#[inline] -pub fn ntohd(Value: __uint64) -> c_double { - let Tempval = _WS2_32_WINSOCK_SWAP_LONGLONG(Value); - unsafe { ::core::mem::transmute(Tempval) } -} -extern "system" { - pub fn listen( - s: SOCKET, - backlog: c_int, - ) -> c_int; - pub fn ntohl( - netlong: u_long, - ) -> u_long; - pub fn ntohs( - netshort: u_short, - ) -> u_short; - pub fn recv( - s: SOCKET, - buf: *mut c_char, - len: c_int, - flags: c_int, - ) -> c_int; - pub fn recvfrom( - s: SOCKET, - buf: *mut c_char, - len: c_int, - flags: c_int, - from: *mut SOCKADDR, - fromlen: *mut c_int, - ) -> c_int; - pub fn select( - nfds: c_int, - readfds: *mut fd_set, - writefds: *mut fd_set, - exceptfds: *mut fd_set, - timeout: *const timeval, - ) -> c_int; - pub fn send( - s: SOCKET, - buf: *const c_char, - len: c_int, - flags: c_int, - ) -> c_int; - pub fn sendto( - s: SOCKET, - buf: *const c_char, - len: c_int, - flags: c_int, - to: *const SOCKADDR, - tolen: c_int, - ) -> c_int; - pub fn setsockopt( - s: SOCKET, - level: c_int, - optname: c_int, - optval: *const c_char, - optlen: c_int, - ) -> c_int; - pub fn shutdown( - s: SOCKET, - how: c_int, - ) -> c_int; - pub fn socket( - af: c_int, - _type: c_int, - protocol: c_int, - ) -> SOCKET; - pub fn gethostbyaddr( - addr: *const c_char, - len: c_int, - _type: c_int, - ) -> *mut hostent; - pub fn gethostbyname( - name: *const c_char, - ) -> *mut hostent; - pub fn gethostname( - name: *mut c_char, - namelen: c_int, - ) -> c_int; - pub fn GetHostNameW( - name: PWSTR, - namelen: c_int, - ) -> c_int; - pub fn getservbyport( - port: c_int, - proto: *const c_char, - ) -> *mut servent; - pub fn getservbyname( - name: *const c_char, - proto: *const c_char, - ) -> *mut servent; - pub fn getprotobynumber( - number: c_int, - ) -> *mut protoent; - pub fn getprotobyname( - name: *const c_char, - ) -> *mut protoent; - pub fn WSAStartup( - wVersionRequested: WORD, - lpWSAData: LPWSADATA, - ) -> c_int; - pub fn WSACleanup() -> c_int; - pub fn WSASetLastError( - iError: c_int, - ); - pub fn WSAGetLastError() -> c_int; - pub fn WSAIsBlocking() -> BOOL; - pub fn WSAUnhookBlockingHook() -> c_int; - pub fn WSASetBlockingHook( - lpBlockFunc: FARPROC, - ) -> FARPROC; - pub fn WSACancelBlockingCall() -> c_int; - pub fn WSAAsyncGetServByName( - hWnd: HWND, - wMsg: u_int, - name: *const c_char, - proto: *const c_char, - buf: *mut c_char, - buflen: c_int, - ) -> HANDLE; - pub fn WSAAsyncGetServByPort( - hWnd: HWND, - wMsg: u_int, - port: c_int, - proto: *const c_char, - buf: *mut c_char, - buflen: c_int, - ) -> HANDLE; - pub fn WSAAsyncGetProtoByName( - hWnd: HWND, - wMsg: u_int, - name: *const c_char, - buf: *mut c_char, - buflen: c_int, - ) -> HANDLE; - pub fn WSAAsyncGetProtoByNumber( - hWnd: HWND, - wMsg: u_int, - number: c_int, - buf: *mut c_char, - buflen: c_int, - ) -> HANDLE; - pub fn WSAAsyncGetHostByName( - hWnd: HWND, - wMsg: u_int, - name: *const c_char, - buf: *mut c_char, - buflen: c_int, - ) -> HANDLE; - pub fn WSAAsyncGetHostByAddr( - hWnd: HWND, - wMsg: u_int, - addr: *const c_char, - len: c_int, - _type: c_int, - buf: *mut c_char, - buflen: c_int, - ) -> HANDLE; - pub fn WSACancelAsyncRequest( - hAsyncTaskHandle: HANDLE, - ) -> c_int; - pub fn WSAAsyncSelect( - s: SOCKET, - hWnd: HWND, - wMsg: u_int, - lEvent: c_long, - ) -> c_int; - pub fn WSAAccept( - s: SOCKET, - addr: *mut SOCKADDR, - addrlen: LPINT, - lpfnCondition: LPCONDITIONPROC, - dwCallbackData: DWORD_PTR, - ) -> SOCKET; - pub fn WSACloseEvent( - hEvent: WSAEVENT, - ) -> BOOL; - pub fn WSAConnect( - s: SOCKET, - name: *const SOCKADDR, - namelen: c_int, - lpCallerData: LPWSABUF, - lpCalleeData: LPWSABUF, - lpSQOS: LPQOS, - lpGQOS: LPQOS, - ) -> c_int; - pub fn WSAConnectByNameW( - s: SOCKET, - nodename: LPWSTR, - servicename: LPWSTR, - LocalAddressLength: LPDWORD, - LocalAddress: LPSOCKADDR, - RemoteAddressLength: LPDWORD, - RemoteAddress: LPSOCKADDR, - timeout: *const timeval, - Reserved: LPWSAOVERLAPPED, - ) -> BOOL; - pub fn WSAConnectByNameA( - s: SOCKET, - nodename: LPCSTR, - servicename: LPCSTR, - LocalAddressLength: LPDWORD, - LocalAddress: LPSOCKADDR, - RemoteAddressLength: LPDWORD, - RemoteAddress: LPSOCKADDR, - timeout: *const timeval, - Reserved: LPWSAOVERLAPPED, - ) -> BOOL; - pub fn WSAConnectByList( - s: SOCKET, - SocketAddress: PSOCKET_ADDRESS_LIST, - LocalAddressLength: LPDWORD, - LocalAddress: LPSOCKADDR, - RemoteAddressLength: LPDWORD, - RemoteAddress: LPSOCKADDR, - timeout: *const timeval, - Reserved: LPWSAOVERLAPPED, - ) -> BOOL; - pub fn WSACreateEvent() -> WSAEVENT; - pub fn WSADuplicateSocketA( - s: SOCKET, - dwProcessId: DWORD, - lpProtocolInfo: LPWSAPROTOCOL_INFOA, - ) -> c_int; - pub fn WSADuplicateSocketW( - s: SOCKET, - dwProcessId: DWORD, - lpProtocolInfo: LPWSAPROTOCOL_INFOW, - ) -> c_int; - pub fn WSAEnumNetworkEvents( - s: SOCKET, - hEventObject: WSAEVENT, - lpNetworkEvents: LPWSANETWORKEVENTS, - ) -> c_int; - pub fn WSAEnumProtocolsA( - lpiProtocols: LPINT, - lpProtocolBuffer: LPWSAPROTOCOL_INFOA, - lpdwBufferLength: LPDWORD, - ) -> c_int; - pub fn WSAEnumProtocolsW( - lpiProtocols: LPINT, - lpProtocolBuffer: LPWSAPROTOCOL_INFOW, - lpdwBufferLength: LPDWORD, - ) -> c_int; - pub fn WSAEventSelect( - s: SOCKET, - hEventObject: WSAEVENT, - lNetworkEvents: c_long, - ) -> c_int; - pub fn WSAGetOverlappedResult( - s: SOCKET, - lpOverlapped: LPWSAOVERLAPPED, - lpcbTransfer: LPDWORD, - fWait: BOOL, - lpdwFlags: LPDWORD, - ) -> BOOL; - pub fn WSAGetQOSByName( - s: SOCKET, - lpQOSName: LPWSABUF, - lpQOS: LPQOS, - ) -> BOOL; - pub fn WSAHtonl( - s: SOCKET, - hostlong: u_long, - lpnetlong: *mut u_long, - ) -> c_int; - pub fn WSAHtons(s: SOCKET, - hostshort: u_short, - lpnetshort: *mut u_short, - ) -> c_int; - pub fn WSAIoctl( - s: SOCKET, - dwIoControlCode: DWORD, - lpvInBuffer: LPVOID, - cbInBuffer: DWORD, - lpvOutBuffer: LPVOID, - cbOutBuffer: DWORD, - lpcbBytesReturned: LPDWORD, - lpOverlapped: LPWSAOVERLAPPED, - lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, - ) -> c_int; - pub fn WSAJoinLeaf( - s: SOCKET, - name: *const SOCKADDR, - namelen: c_int, - lpCallerData: LPWSABUF, - lpCalleeData: LPWSABUF, - lpSQOS: LPQOS, - lpGQOS: LPQOS, - dwFlags: DWORD, - ) -> SOCKET; - pub fn WSANtohl( - s: SOCKET, - netlong: u_long, - lphostlong: *mut c_long, - ) -> c_int; - pub fn WSANtohs( - s: SOCKET, - netshort: u_short, - lphostshort: *mut c_short, - ) -> c_int; - pub fn WSARecv( - s: SOCKET, - lpBuffers: LPWSABUF, - dwBufferCount: DWORD, - lpNumberOfBytesRecvd: LPDWORD, - lpFlags: LPDWORD, - lpOverlapped: LPWSAOVERLAPPED, - lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, - ) -> c_int; - pub fn WSARecvDisconnect( - s: SOCKET, - lpInboundDisconnectData: LPWSABUF, - ) -> c_int; - pub fn WSARecvFrom( - s: SOCKET, - lpBuffers: LPWSABUF, - dwBufferCount: DWORD, - lpNumberOfBytesRecvd: LPDWORD, - lpFlags: LPDWORD, - lpFrom: *mut SOCKADDR, - lpFromlen: LPINT, - lpOverlapped: LPWSAOVERLAPPED, - lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, - ) -> c_int; - pub fn WSAResetEvent( - hEvent: WSAEVENT, - ) -> BOOL; - pub fn WSASend( - s: SOCKET, - lpBuffers: LPWSABUF, - dwBufferCount: DWORD, - lpNumberOfBytesSent: LPDWORD, - dwFlags: DWORD, - lpOverlapped: LPWSAOVERLAPPED, - lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, - ) -> c_int; - pub fn WSASendMsg( - Handle: SOCKET, - lpMsg: LPWSAMSG, - dwFlags: DWORD, - lpNumberOfBytesSent: LPDWORD, - lpOverlapped: LPWSAOVERLAPPED, - lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, - ) -> c_int; - pub fn WSASendDisconnect( - s: SOCKET, - lpOutboundDisconnectData: LPWSABUF, - ) -> c_int; - pub fn WSASendTo( - s: SOCKET, - lpBuffers: LPWSABUF, - dwBufferCount: DWORD, - lpNumberOfBytesSent: LPDWORD, - dwFlags: DWORD, - lpTo: *const SOCKADDR, - iToLen: c_int, - lpOverlapped: LPWSAOVERLAPPED, - lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, - ) -> c_int; - pub fn WSASetEvent( - hEvent: WSAEVENT, - ) -> BOOL; - pub fn WSASocketA( - af: c_int, - _type: c_int, - protocol: c_int, - lpProtocolInfo: LPWSAPROTOCOL_INFOA, - g: GROUP, - dwFlags: DWORD, - ) -> SOCKET; - pub fn WSASocketW( - af: c_int, - _type: c_int, - protocol: c_int, - lpProtocolInfo: LPWSAPROTOCOL_INFOW, - g: GROUP, - dwFlags: DWORD, - ) -> SOCKET; - pub fn WSAWaitForMultipleEvents( - cEvents: DWORD, - lphEvents: *const WSAEVENT, - fWaitAll: BOOL, - dwTimeout: DWORD, - fAlertable: BOOL, - ) -> DWORD; - pub fn WSAAddressToStringA( - lpsaAddress: LPSOCKADDR, - dwAddressLength: DWORD, - lpProtocolInfo: LPWSAPROTOCOL_INFOA, - lpszAddressString: LPSTR, - lpdwAddressStringLength: LPDWORD, - ) -> INT; - pub fn WSAAddressToStringW( - lpsaAddress: LPSOCKADDR, - dwAddressLength: DWORD, - lpProtocolInfo: LPWSAPROTOCOL_INFOW, - lpszAddressString: LPWSTR, - lpdwAddressStringLength: LPDWORD, - ) -> INT; - pub fn WSAStringToAddressA( - AddressString: LPSTR, - AddressFamily: INT, - lpProtocolInfo: LPWSAPROTOCOL_INFOA, - lpAddress: LPSOCKADDR, - lpAddressLength: LPINT, - ) -> INT; - pub fn WSAStringToAddressW( - AddressString: LPWSTR, - AddressFamily: INT, - lpProtocolInfo: LPWSAPROTOCOL_INFOW, - lpAddress: LPSOCKADDR, - lpAddressLength: LPINT, - ) -> INT; - pub fn WSALookupServiceBeginA( - lpqsRestrictions: LPWSAQUERYSETA, - dwControlFlags: DWORD, - lphLookup: LPHANDLE, - ) -> INT; - pub fn WSALookupServiceBeginW( - lpqsRestrictions: LPWSAQUERYSETW, - dwControlFlags: DWORD, - lphLookup: LPHANDLE, - ) -> INT; - pub fn WSALookupServiceNextA( - hLookup: HANDLE, - dwControlFlags: DWORD, - lpdwBufferLength: LPDWORD, - lpqsResults: LPWSAQUERYSETA, - ) -> INT; - pub fn WSALookupServiceNextW( - hLookup: HANDLE, - dwControlFlags: DWORD, - lpdwBufferLength: LPDWORD, - lpqsResults: LPWSAQUERYSETW, - ) -> INT; - pub fn WSANSPIoctl( - hLookup: HANDLE, - dwControlFlags: DWORD, - lpvInBuffer: LPVOID, - cbInBuffer: DWORD, - lpvOutBuffer: LPVOID, - cbOutBuffer: DWORD, - lpcbBytesReturned: LPDWORD, - lpCompletion: LPWSACOMPLETION, - ) -> INT; - pub fn WSALookupServiceEnd( - hLookup: HANDLE, - ) -> INT; - pub fn WSAInstallServiceClassA( - lpServiceClassInfo: LPWSASERVICECLASSINFOA, - ) -> INT; - pub fn WSAInstallServiceClassW( - lpServiceClassInfo: LPWSASERVICECLASSINFOW, - ) -> INT; - pub fn WSARemoveServiceClass( - lpServiceClassId: LPGUID, - ) -> INT; - pub fn WSAGetServiceClassInfoA( - lpProviderId: LPGUID, - lpServiceClassId: LPGUID, - lpdwBufSize: LPDWORD, - lpServiceClassInfo: LPWSASERVICECLASSINFOA, - ) -> INT; - pub fn WSAGetServiceClassInfoW( - lpProviderId: LPGUID, - lpServiceClassId: LPGUID, - lpdwBufSize: LPDWORD, - lpServiceClassInfo: LPWSASERVICECLASSINFOW, - ) -> INT; - pub fn WSAEnumNameSpaceProvidersA( - lpdwBufferLength: LPDWORD, - lpnspBuffer: LPWSANAMESPACE_INFOA, - ) -> INT; - pub fn WSAEnumNameSpaceProvidersW( - lpdwBufferLength: LPDWORD, - lpnspBuffer: LPWSANAMESPACE_INFOW, - ) -> INT; - pub fn WSAEnumNameSpaceProvidersExA( - lpdwBufferLength: LPDWORD, - lpnspBuffer: LPWSANAMESPACE_INFOEXA, - ) -> INT; - pub fn WSAEnumNameSpaceProvidersExW( - lpdwBufferLength: LPDWORD, - lpnspBuffer: LPWSANAMESPACE_INFOEXW, - ) -> INT; - pub fn WSAGetServiceClassNameByClassIdA( - lpServiceClassId: LPGUID, - lpszServiceClassName: LPSTR, - lpdwBufferLength: LPDWORD, - ) -> INT; - pub fn WSAGetServiceClassNameByClassIdW( - lpServiceClassId: LPGUID, - lpszServiceClassName: LPWSTR, - lpdwBufferLength: LPDWORD, - ) -> INT; - pub fn WSASetServiceA( - lpqsRegInfo: LPWSAQUERYSETA, - essoperation: WSAESETSERVICEOP, - dwControlFlags: DWORD, - ) -> INT; - pub fn WSASetServiceW( - lpqsRegInfo: LPWSAQUERYSETW, - essoperation: WSAESETSERVICEOP, - dwControlFlags: DWORD, - ) -> INT; - pub fn WSAProviderConfigChange( - lpNotificationHandle: LPHANDLE, - lpOverlapped: LPWSAOVERLAPPED, - lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, - ) -> INT; - pub fn WSAPoll( - fdArray: LPWSAPOLLFD, - fds: ULONG, - timeout: INT, - ) -> c_int; -} -pub type LPSOCKADDR_IN = *mut SOCKADDR_IN; -pub type LINGER = linger; -pub type PLINGER = *mut linger; -pub type LPLINGER = *mut linger; -pub type FD_SET = fd_set; -pub type PFD_SET = *mut fd_set; -pub type LPFD_SET = *mut fd_set; -pub type HOSTENT = hostent; -pub type PHOSTENT = *mut hostent; -pub type LPHOSTENT = *mut hostent; -pub type SERVENT = servent; -pub type PSERVENT = *mut servent; -pub type LPSERVENT = *mut servent; -pub type PROTOENT = protoent; -pub type PPROTOENT = *mut protoent; -pub type LPPROTOENT = *mut protoent; -pub type TIMEVAL = timeval; -pub type PTIMEVAL = *mut timeval; -pub type LPTIMEVAL = *mut timeval; -#[inline] -pub fn WSAMAKEASYNCREPLY(buflen: WORD, error: WORD) -> LONG { - MAKELONG(buflen, error) -} -#[inline] -pub fn WSAMAKESELECTREPLY(event: WORD, error: WORD) -> LONG { - MAKELONG(event, error) -} -#[inline] -pub fn WSAGETASYNCBUFLEN(lParam: DWORD) -> WORD { - LOWORD(lParam) -} -#[inline] -pub fn WSAGETASYNCERROR(lParam: DWORD) -> WORD { - HIWORD(lParam) -} -#[inline] -pub fn WSAGETSELECTEVENT(lParam: DWORD) -> WORD { - LOWORD(lParam) -} -#[inline] -pub fn WSAGETSELECTERROR(lParam: DWORD) -> WORD { - HIWORD(lParam) -} |