phobos/std/c/linux/socket.d
2011-09-08 23:57:16 +03:00

112 lines
2.8 KiB
D

/*
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)
}