/* Written by Christopher E. Miller Placed into public domain. */ module std.c.linux.socket; private import core.stdc.stdint; public import core.sys.posix.arpa.inet; public import core.sys.posix.netdb; public import core.sys.posix.netinet.tcp; public import core.sys.posix.netinet.in_; public import core.sys.posix.sys.select; public import core.sys.posix.sys.socket; extern(C): enum: int { AF_IPX = 4, AF_APPLETALK = 5, PF_IPX = AF_IPX, PF_APPLETALK = AF_APPLETALK, } enum: int { SOCK_RDM = 4, } enum: int { IPPROTO_IGMP = 2, IPPROTO_GGP = 3, IPPROTO_PUP = 12, IPPROTO_IDP = 22, IPPROTO_ND = 77, IPPROTO_RAW = 255, IPPROTO_MAX = 256, } int gethostbyname_r(in char* name, hostent* ret, void* buf, size_t buflen, hostent** result, int* h_errnop); int gethostbyname2_r(in char* name, int af, hostent* ret, void* buf, size_t buflen, hostent** result, int* h_errnop); enum: int { SD_RECEIVE = 0, SD_SEND = 1, SD_BOTH = 2, } enum: int { MSG_NOSIGNAL = 0x4000, } enum: int { IP_MULTICAST_LOOP = 34, IP_ADD_MEMBERSHIP = 35, IP_DROP_MEMBERSHIP = 36, // ... IPV6_ADDRFORM = 1, IPV6_PKTINFO = 2, IPV6_HOPOPTS = 3, IPV6_DSTOPTS = 4, IPV6_RTHDR = 5, IPV6_PKTOPTIONS = 6, IPV6_CHECKSUM = 7, IPV6_HOPLIMIT = 8, IPV6_NEXTHOP = 9, IPV6_AUTHHDR = 10, IPV6_MULTICAST_HOPS = 18, IPV6_ROUTER_ALERT = 22, IPV6_MTU_DISCOVER = 23, IPV6_MTU = 24, IPV6_RECVERR = 25, IPV6_V6ONLY = 26, IPV6_JOIN_ANYCAST = 27, IPV6_LEAVE_ANYCAST = 28, IPV6_IPSEC_POLICY = 34, IPV6_XFRM_POLICY = 35, } enum: uint { INADDR_LOOPBACK = 0x7F000001, INADDR_BROADCAST = 0xFFFFFFFF, INADDR_NONE = 0xFFFFFFFF, } enum: int { TCP_NODELAY = 1, // Don't delay send to coalesce packets TCP_MAXSEG = 2, // Set maximum segment size TCP_CORK = 3, // Control sending of partial frames TCP_KEEPIDLE = 4, // Start keeplives after this period TCP_KEEPINTVL = 5, // Interval between keepalives TCP_KEEPCNT = 6, // Number of keepalives before death TCP_SYNCNT = 7, // Number of SYN retransmits TCP_LINGER2 = 8, // Life time of orphaned FIN-WAIT-2 state TCP_DEFER_ACCEPT = 9, // Wake up listener only when data arrive TCP_WINDOW_CLAMP = 10, // Bound advertised window TCP_INFO = 11, // Information about this connection. TCP_QUICKACK = 12, // Bock/reenable quick ACKs. TCP_CONGESTION = 13, // Congestion control algorithm. TCP_MD5SIG = 14, // TCP MD5 Signature (RFC2385) }