summaryrefslogtreecommitdiff
path: root/ruby_1_9_3/ext/socket/mkconstants.rb
diff options
context:
space:
mode:
Diffstat (limited to 'ruby_1_9_3/ext/socket/mkconstants.rb')
-rw-r--r--ruby_1_9_3/ext/socket/mkconstants.rb705
1 files changed, 0 insertions, 705 deletions
diff --git a/ruby_1_9_3/ext/socket/mkconstants.rb b/ruby_1_9_3/ext/socket/mkconstants.rb
deleted file mode 100644
index ae28630179..0000000000
--- a/ruby_1_9_3/ext/socket/mkconstants.rb
+++ /dev/null
@@ -1,705 +0,0 @@
-require 'optparse'
-require 'erb'
-
-opt = OptionParser.new
-
-opt.def_option('-h', 'help') {
- puts opt
- exit 0
-}
-
-opt_o = nil
-opt.def_option('-o FILE', 'specify output file') {|filename|
- opt_o = filename
-}
-
-opt_H = nil
-opt.def_option('-H FILE', 'specify output header file') {|filename|
- opt_H = filename
-}
-
-C_ESC = {
- "\\" => "\\\\",
- '"' => '\"',
- "\n" => '\n',
-}
-
-0x00.upto(0x1f) {|ch| C_ESC[[ch].pack("C")] ||= "\\%03o" % ch }
-0x7f.upto(0xff) {|ch| C_ESC[[ch].pack("C")] = "\\%03o" % ch }
-C_ESC_PAT = Regexp.union(*C_ESC.keys)
-
-def c_str(str)
- '"' + str.gsub(C_ESC_PAT) {|s| C_ESC[s]} + '"'
-end
-
-opt.parse!
-
-
-
-h = {}
-COMMENTS = Hash.new { |h, name| h[name] = name }
-
-DATA.each_line {|s|
- name, default_value, comment = s.chomp.split(/\s+/, 3)
- next unless name && name[0] != ?#
-
- default_value = nil if default_value == 'nil'
-
- if h.has_key? name
- warn "#{$.}: warning: duplicate name: #{name}"
- next
- end
- h[name] = default_value
- COMMENTS[name] = comment
-}
-DEFS = h.to_a
-
-def each_const
- DEFS.each {|name, default_value|
- if name =~ /\AINADDR_/
- make_value = "UINT2NUM"
- else
- make_value = "INT2NUM"
- end
- guard = nil
- if /\A(AF_INET6|PF_INET6|IPV6_.*)\z/ =~ name
- # IPv6 is not supported although AF_INET6 is defined on bcc32/mingw
- guard = "defined(INET6)"
- end
- yield guard, make_value, name, default_value
- }
-end
-
-def each_name(pat)
- DEFS.each {|name, default_value|
- next if pat !~ name
- yield name
- }
-end
-
-ERB.new(<<'EOS', nil, '%').def_method(Object, "gen_const_decls")
-% each_const {|guard, make_value, name, default_value|
-#if !defined(<%=name%>)
-# if defined(HAVE_CONST_<%=name.upcase%>)
-# define <%=name%> <%=name%>
-%if default_value
-# else
-# define <%=name%> <%=default_value%>
-%end
-# endif
-#endif
-% }
-EOS
-
-ERB.new(<<'EOS', nil, '%').def_method(Object, "gen_const_defs_in_guard(make_value, name, default_value)")
-#if defined(<%=name%>)
- /* <%= COMMENTS[name] %> */
- rb_define_const(rb_cSocket, <%=c_str name%>, <%=make_value%>(<%=name%>));
- /* <%= COMMENTS[name] %> */
- rb_define_const(rb_mSockConst, <%=c_str name%>, <%=make_value%>(<%=name%>));
-#endif
-EOS
-
-ERB.new(<<'EOS', nil, '%').def_method(Object, "gen_const_defs")
-% each_const {|guard, make_value, name, default_value|
-% if guard
-#if <%=guard%>
-<%= gen_const_defs_in_guard(make_value, name, default_value).chomp %>
-#endif
-% else
-<%= gen_const_defs_in_guard(make_value, name, default_value).chomp %>
-% end
-% }
-EOS
-
-def reverse_each_name(pat)
- DEFS.reverse_each {|name, default_value|
- next if pat !~ name
- yield name
- }
-end
-
-def each_names_with_len(pat, prefix_optional=nil)
- h = {}
- DEFS.each {|name, default_value|
- next if pat !~ name
- (h[name.length] ||= []) << [name, name]
- }
- if prefix_optional
- if Regexp === prefix_optional
- prefix_pat = prefix_optional
- else
- prefix_pat = /\A#{Regexp.escape prefix_optional}/
- end
- DEFS.each {|const, default_value|
- next if pat !~ const
- next if prefix_pat !~ const
- name = $'
- (h[name.length] ||= []) << [name, const]
- }
- end
- hh = {}
- h.each {|len, pairs|
- pairs.each {|name, const|
- raise "name crash: #{name}" if hh[name]
- hh[name] = true
- }
- }
- h.keys.sort.each {|len|
- yield h[len], len
- }
-end
-
-ERB.new(<<'EOS', nil, '%').def_method(Object, "gen_name_to_int_decl(funcname, pat, prefix_optional, guard=nil)")
-%if guard
-#ifdef <%=guard%>
-int <%=funcname%>(const char *str, long len, int *valp);
-#endif
-%else
-int <%=funcname%>(const char *str, long len, int *valp);
-%end
-EOS
-
-ERB.new(<<'EOS', nil, '%').def_method(Object, "gen_name_to_int_func_in_guard(funcname, pat, prefix_optional, guard=nil)")
-int
-<%=funcname%>(const char *str, long len, int *valp)
-{
- switch (len) {
-% each_names_with_len(pat, prefix_optional) {|pairs, len|
- case <%=len%>:
-% pairs.each {|name, const|
-#ifdef <%=const%>
- if (memcmp(str, <%=c_str name%>, <%=len%>) == 0) { *valp = <%=const%>; return 0; }
-#endif
-% }
- return -1;
-
-% }
- default:
- return -1;
- }
-}
-EOS
-
-ERB.new(<<'EOS', nil, '%').def_method(Object, "gen_name_to_int_func(funcname, pat, prefix_optional, guard=nil)")
-%if guard
-#ifdef <%=guard%>
-<%=gen_name_to_int_func_in_guard(funcname, pat, prefix_optional, guard)%>
-#endif
-%else
-<%=gen_name_to_int_func_in_guard(funcname, pat, prefix_optional, guard)%>
-%end
-EOS
-
-NAME_TO_INT_DEFS = []
-def def_name_to_int(funcname, pat, prefix_optional, guard=nil)
- decl = gen_name_to_int_decl(funcname, pat, prefix_optional, guard)
- func = gen_name_to_int_func(funcname, pat, prefix_optional, guard)
- NAME_TO_INT_DEFS << [decl, func]
-end
-
-def reverse_each_name_with_prefix_optional(pat, prefix_pat)
- reverse_each_name(pat) {|n|
- yield n, n
- }
- if prefix_pat
- reverse_each_name(pat) {|n|
- next if prefix_pat !~ n
- yield n, $'
- }
- end
-end
-
-ERB.new(<<'EOS', nil, '%').def_method(Object, "gen_int_to_name_hash(hash_var, pat, prefix_pat)")
- <%=hash_var%> = st_init_numtable();
-% reverse_each_name_with_prefix_optional(pat, prefix_pat) {|n,s|
-#ifdef <%=n%>
- st_insert(<%=hash_var%>, (st_data_t)<%=n%>, (st_data_t)rb_intern2(<%=c_str s%>, <%=s.length%>));
-#endif
-% }
-EOS
-
-ERB.new(<<'EOS', nil, '%').def_method(Object, "gen_int_to_name_func(func_name, hash_var)")
-ID
-<%=func_name%>(int val)
-{
- st_data_t name;
- if (st_lookup(<%=hash_var%>, (st_data_t)val, &name))
- return (ID)name;
- return 0;
-}
-EOS
-
-ERB.new(<<'EOS', nil, '%').def_method(Object, "gen_int_to_name_decl(func_name, hash_var)")
-ID <%=func_name%>(int val);
-EOS
-
-INTERN_DEFS = []
-def def_intern(func_name, pat, prefix_optional=nil)
- prefix_pat = nil
- if prefix_optional
- if Regexp === prefix_optional
- prefix_pat = prefix_optional
- else
- prefix_pat = /\A#{Regexp.escape prefix_optional}/
- end
- end
- hash_var = "#{func_name}_hash"
- vardef = "static st_table *#{hash_var};"
- gen_hash = gen_int_to_name_hash(hash_var, pat, prefix_pat)
- decl = gen_int_to_name_decl(func_name, hash_var)
- func = gen_int_to_name_func(func_name, hash_var)
- INTERN_DEFS << [vardef, gen_hash, decl, func]
-end
-
-def_name_to_int("rsock_family_to_int", /\A(AF_|PF_)/, "AF_")
-def_name_to_int("rsock_socktype_to_int", /\ASOCK_/, "SOCK_")
-def_name_to_int("rsock_ipproto_to_int", /\AIPPROTO_/, "IPPROTO_")
-def_name_to_int("rsock_unknown_level_to_int", /\ASOL_SOCKET\z/, "SOL_")
-def_name_to_int("rsock_ip_level_to_int", /\A(SOL_SOCKET\z|IPPROTO_)/, /\A(SOL_|IPPROTO_)/)
-def_name_to_int("rsock_so_optname_to_int", /\ASO_/, "SO_")
-def_name_to_int("rsock_ip_optname_to_int", /\AIP_/, "IP_")
-def_name_to_int("rsock_ipv6_optname_to_int", /\AIPV6_/, "IPV6_", "IPPROTO_IPV6")
-def_name_to_int("rsock_tcp_optname_to_int", /\ATCP_/, "TCP_")
-def_name_to_int("rsock_udp_optname_to_int", /\AUDP_/, "UDP_")
-def_name_to_int("rsock_shutdown_how_to_int", /\ASHUT_/, "SHUT_")
-def_name_to_int("rsock_scm_optname_to_int", /\ASCM_/, "SCM_")
-
-def_intern('rsock_intern_family', /\AAF_/)
-def_intern('rsock_intern_family_noprefix', /\AAF_/, "AF_")
-def_intern('rsock_intern_protocol_family', /\APF_/)
-def_intern('rsock_intern_socktype', /\ASOCK_/)
-def_intern('rsock_intern_ipproto', /\AIPPROTO_/)
-def_intern('rsock_intern_iplevel', /\A(SOL_SOCKET\z|IPPROTO_)/, /\A(SOL_|IPPROTO_)/)
-def_intern('rsock_intern_so_optname', /\ASO_/, "SO_")
-def_intern('rsock_intern_ip_optname', /\AIP_/, "IP_")
-def_intern('rsock_intern_ipv6_optname', /\AIPV6_/, "IPV6_")
-def_intern('rsock_intern_tcp_optname', /\ATCP_/, "TCP_")
-def_intern('rsock_intern_udp_optname', /\AUDP_/, "UDP_")
-def_intern('rsock_intern_scm_optname', /\ASCM_/, "SCM_")
-def_intern('rsock_intern_local_optname', /\ALOCAL_/, "LOCAL_")
-
-result = ERB.new(<<'EOS', nil, '%').result(binding)
-/* autogenerated file */
-
-<%= INTERN_DEFS.map {|vardef, gen_hash, decl, func| vardef }.join("\n") %>
-
-static void
-init_constants(void)
-{
- /*
- * Document-module: Socket::Constants
- *
- * Socket::Constants provides socket-related constants. All possible
- * socket constants are listed in the documentation but they may not all
- * be present on your platform.
- *
- * If the underlying platform doesn't define a constant the corresponding
- * Ruby constant is not defined.
- *
- */
- rb_mSockConst = rb_define_module_under(rb_cSocket, "Constants");
-
-<%= gen_const_defs %>
-<%= INTERN_DEFS.map {|vardef, gen_hash, decl, func| gen_hash }.join("\n") %>
-}
-
-<%= NAME_TO_INT_DEFS.map {|decl, func| func }.join("\n") %>
-
-<%= INTERN_DEFS.map {|vardef, gen_hash, decl, func| func }.join("\n") %>
-
-EOS
-
-header_result = ERB.new(<<'EOS', nil, '%').result(binding)
-/* autogenerated file */
-<%= gen_const_decls %>
-<%= NAME_TO_INT_DEFS.map {|decl, func| decl }.join("\n") %>
-<%= INTERN_DEFS.map {|vardef, gen_hash, decl, func| decl }.join("\n") %>
-EOS
-
-if opt_H
- File.open(opt_H, 'w') {|f|
- f << header_result
- }
-else
- result = header_result + result
-end
-
-if opt_o
- File.open(opt_o, 'w') {|f|
- f << result
- }
-else
- $stdout << result
-end
-
-__END__
-
-SOCK_STREAM nil A stream socket provides a sequenced, reliable two-way connection for a byte stream
-SOCK_DGRAM nil A datagram socket provides connectionless, unreliable messaging
-SOCK_RAW nil A raw socket provides low-level access for direct access or implementing network protocols
-SOCK_RDM nil A reliable datagram socket provides reliable delivery of messages
-SOCK_SEQPACKET nil A sequential packet socket provides sequenced, reliable two-way connection for datagrams
-SOCK_PACKET nil Device-level packet access
-
-AF_UNSPEC nil Unspecified protocol, any supported address family
-PF_UNSPEC nil Unspecified protocol, any supported address family
-AF_INET nil IPv4 protocol
-PF_INET nil IPv4 protocol
-AF_INET6 nil IPv6 protocol
-PF_INET6 nil IPv6 protocol
-AF_UNIX nil UNIX sockets
-PF_UNIX nil UNIX sockets
-AF_AX25 nil AX.25 protocol
-PF_AX25 nil AX.25 protocol
-AF_IPX nil IPX protocol
-PF_IPX nil IPX protocol
-AF_APPLETALK nil AppleTalk protocol
-PF_APPLETALK nil AppleTalk protocol
-AF_LOCAL nil Host-internal protocols
-PF_LOCAL nil Host-internal protocols
-AF_IMPLINK nil ARPANET IMP protocol
-PF_IMPLINK nil ARPANET IMP protocol
-AF_PUP nil PARC Universal Packet protocol
-PF_PUP nil PARC Universal Packet protocol
-AF_CHAOS nil MIT CHAOS protocols
-PF_CHAOS nil MIT CHAOS protocols
-AF_NS nil XEROX NS protocols
-PF_NS nil XEROX NS protocols
-AF_ISO nil ISO Open Systems Interconnection protocols
-PF_ISO nil ISO Open Systems Interconnection protocols
-AF_OSI nil ISO Open Systems Interconnection protocols
-PF_OSI nil ISO Open Systems Interconnection protocols
-AF_ECMA nil European Computer Manufacturers protocols
-PF_ECMA nil European Computer Manufacturers protocols
-AF_DATAKIT nil Datakit protocol
-PF_DATAKIT nil Datakit protocol
-AF_CCITT nil CCITT (now ITU-T) protocols
-PF_CCITT nil CCITT (now ITU-T) protocols
-AF_SNA nil IBM SNA protocol
-PF_SNA nil IBM SNA protocol
-AF_DEC nil DECnet protocol
-PF_DEC nil DECnet protocol
-AF_DLI nil DEC Direct Data Link Interface protocol
-PF_DLI nil DEC Direct Data Link Interface protocol
-AF_LAT nil Local Area Transport protocol
-PF_LAT nil Local Area Transport protocol
-AF_HYLINK nil NSC Hyperchannel protocol
-PF_HYLINK nil NSC Hyperchannel protocol
-AF_ROUTE nil Internal routing protocol
-PF_ROUTE nil Internal routing protocol
-AF_LINK nil Link layer interface
-PF_LINK nil Link layer interface
-AF_COIP nil Connection-oriented IP
-PF_COIP nil Connection-oriented IP
-AF_CNT nil Computer Network Technology
-PF_CNT nil Computer Network Technology
-AF_SIP nil Simple Internet Protocol
-PF_SIP nil Simple Internet Protocol
-AF_NDRV nil Network driver raw access
-PF_NDRV nil Network driver raw access
-AF_ISDN nil Integrated Services Digital Network
-PF_ISDN nil Integrated Services Digital Network
-AF_NATM nil Native ATM access
-PF_NATM nil Native ATM access
-AF_SYSTEM
-PF_SYSTEM
-AF_NETBIOS nil NetBIOS
-PF_NETBIOS nil NetBIOS
-AF_PPP nil Point-to-Point Protocol
-PF_PPP nil Point-to-Point Protocol
-AF_ATM nil Asynchronous Transfer Mode
-PF_ATM nil Asynchronous Transfer Mode
-AF_NETGRAPH nil Netgraph sockets
-PF_NETGRAPH nil Netgraph sockets
-AF_MAX nil Maximum address family for this platform
-PF_MAX nil Maximum address family for this platform
-AF_PACKET nil Direct link-layer access
-PF_PACKET nil Direct link-layer access
-
-AF_E164 nil CCITT (ITU-T) E.164 recommendation
-PF_XTP nil eXpress Transfer Protocol
-PF_RTIP
-PF_PIP
-PF_KEY
-
-MSG_OOB nil Process out-of-band data
-MSG_PEEK nil Peek at incoming message
-MSG_DONTROUTE nil Send without using the routing tables
-MSG_EOR nil Data completes record
-MSG_TRUNC nil Data discarded before delivery
-MSG_CTRUNC nil Control data lost before delivery
-MSG_WAITALL nil Wait for full request or error
-MSG_DONTWAIT nil This message should be non-blocking
-MSG_EOF nil Data completes connection
-MSG_FLUSH nil Start of a hold sequence. Dumps to so_temp
-MSG_HOLD nil Hold fragment in so_temp
-MSG_SEND nil Send the packet in so_temp
-MSG_HAVEMORE nil Data ready to be read
-MSG_RCVMORE nil Data remains in the current packet
-MSG_COMPAT nil End of record
-MSG_PROXY nil Wait for full request
-MSG_FIN
-MSG_SYN
-MSG_CONFIRM nil Confirm path validity
-MSG_RST
-MSG_ERRQUEUE nil Fetch message from error queue
-MSG_NOSIGNAL nil Do not generate SIGPIPE
-MSG_MORE nil Sender will send more
-
-SOL_SOCKET nil Socket-level options
-SOL_IP nil IP socket options
-SOL_IPX nil IPX socket options
-SOL_AX25 nil AX.25 socket options
-SOL_ATALK nil AppleTalk socket options
-SOL_TCP nil TCP socket options
-SOL_UDP nil UDP socket options
-
-IPPROTO_IP 0 Dummy protocol for IP
-IPPROTO_ICMP 1 Control message protocol
-IPPROTO_IGMP nil Group Management Protocol
-IPPROTO_GGP nil Gateway to Gateway Protocol
-IPPROTO_TCP 6 TCP
-IPPROTO_EGP nil Exterior Gateway Protocol
-IPPROTO_PUP nil PARC Universal Packet protocol
-IPPROTO_UDP 17 UDP
-IPPROTO_IDP nil XNS IDP
-IPPROTO_HELLO nil "hello" routing protocol
-IPPROTO_ND nil Sun net disk protocol
-IPPROTO_TP nil ISO transport protocol class 4
-IPPROTO_XTP nil Xpress Transport Protocol
-IPPROTO_EON nil ISO cnlp
-IPPROTO_BIP
-IPPROTO_AH nil IP6 auth header
-IPPROTO_DSTOPTS nil IP6 destination option
-IPPROTO_ESP nil IP6 Encapsulated Security Payload
-IPPROTO_FRAGMENT nil IP6 fragmentation header
-IPPROTO_HOPOPTS nil IP6 hop-by-hop options
-IPPROTO_ICMPV6 nil ICMP6
-IPPROTO_IPV6 nil IP6 header
-IPPROTO_NONE nil IP6 no next header
-IPPROTO_ROUTING nil IP6 routing header
-
-IPPROTO_RAW 255 Raw IP packet
-IPPROTO_MAX nil Maximum IPPROTO constant
-
-# Some port configuration
-IPPORT_RESERVED 1024 Default minimum address for bind or connect
-IPPORT_USERRESERVED 5000 Default maximum address for bind or connect
-
-# Some reserved IP v.4 addresses
-INADDR_ANY 0x00000000 A socket bound to INADDR_ANY receives packets from all interfaces and sends from the default IP address
-INADDR_BROADCAST 0xffffffff The network broadcast address
-INADDR_LOOPBACK 0x7F000001 The loopback address
-INADDR_UNSPEC_GROUP 0xe0000000 The reserved multicast group
-INADDR_ALLHOSTS_GROUP 0xe0000001 Multicast group for all systems on this subset
-INADDR_MAX_LOCAL_GROUP 0xe00000ff The last local network multicast group
-INADDR_NONE 0xffffffff A bitmask for matching no valid IP address
-
-# IP [gs]etsockopt options
-IP_OPTIONS nil IP options to be included in packets
-IP_HDRINCL nil Header is included with data
-IP_TOS nil IP type-of-service
-IP_TTL nil IP time-to-live
-IP_RECVOPTS nil Receive all IP options with datagram
-IP_RECVRETOPTS nil Receive all IP options for response
-IP_RECVDSTADDR nil Receive IP destination address with datagram
-IP_RETOPTS nil IP options to be included in datagrams
-IP_MINTTL nil Minimum TTL allowed for received packets
-IP_DONTFRAG nil Don't fragment packets
-IP_SENDSRCADDR nil Source address for outgoing UDP datagrams
-IP_ONESBCAST nil Force outgoing broadcast datagrams to have the undirected broadcast address
-IP_RECVTTL nil Receive IP TTL with datagrams
-IP_RECVIF nil Receive interface information with datagrams
-IP_RECVSLLA nil Receive link-layer address with datagrams
-IP_PORTRANGE nil Set the port range for sockets with unspecified port numbers
-IP_MULTICAST_IF nil IP multicast interface
-IP_MULTICAST_TTL nil IP multicast TTL
-IP_MULTICAST_LOOP nil IP multicast loopback
-IP_ADD_MEMBERSHIP nil Add a multicast group membership
-IP_DROP_MEMBERSHIP nil Drop a multicast group membership
-IP_DEFAULT_MULTICAST_TTL nil Default multicast TTL
-IP_DEFAULT_MULTICAST_LOOP nil Default multicast loopback
-IP_MAX_MEMBERSHIPS nil Maximum number multicast groups a socket can join
-IP_ROUTER_ALERT nil Notify transit routers to more closely examine the contents of an IP packet
-IP_PKTINFO nil Receive packet information with datagrams
-IP_PKTOPTIONS nil Receive packet options with datagrams
-IP_MTU_DISCOVER nil Path MTU discovery
-IP_RECVERR nil Enable extended reliable error message passing
-IP_RECVTOS nil Receive TOS with incoming packets
-IP_MTU nil The Maximum Transmission Unit of the socket
-IP_FREEBIND nil Allow binding to nonexistent IP addresses
-IP_IPSEC_POLICY nil IPsec security policy
-IP_XFRM_POLICY
-IP_PASSSEC nil Retrieve security context with datagram
-IP_PMTUDISC_DONT nil Never send DF frames
-IP_PMTUDISC_WANT nil Use per-route hints
-IP_PMTUDISC_DO nil Always send DF frames
-IP_UNBLOCK_SOURCE nil Unblock IPv4 multicast packets with a give source address
-IP_BLOCK_SOURCE nil Block IPv4 multicast packets with a give source address
-IP_ADD_SOURCE_MEMBERSHIP nil Add a multicast group membership
-IP_DROP_SOURCE_MEMBERSHIP nil Drop a multicast group membership
-IP_MSFILTER nil Multicast source filtering
-
-MCAST_JOIN_GROUP nil Join a multicast group
-MCAST_BLOCK_SOURCE nil Block multicast packets from this source
-MCAST_UNBLOCK_SOURCE nil Unblock multicast packets from this source
-MCAST_LEAVE_GROUP nil Leave a multicast group
-MCAST_JOIN_SOURCE_GROUP nil Join a multicast source group
-MCAST_LEAVE_SOURCE_GROUP nil Leave a multicast source group
-MCAST_MSFILTER nil Multicast source filtering
-MCAST_EXCLUDE nil Exclusive multicast source filter
-MCAST_INCLUDE nil Inclusive multicast source filter
-
-SO_DEBUG nil Debug info recording
-SO_REUSEADDR nil Allow local address reuse
-SO_REUSEPORT nil Allow local address and port reuse
-SO_TYPE nil Get the socket type
-SO_ERROR nil Get and clear the error status
-SO_DONTROUTE nil Use interface addresses
-SO_BROADCAST nil Permit sending of broadcast messages
-SO_SNDBUF nil Send buffer size
-SO_RCVBUF nil Receive buffer size
-SO_KEEPALIVE nil Keep connections alive
-SO_OOBINLINE nil Leave received out-of-band data in-line
-SO_NO_CHECK nil Disable checksums
-SO_PRIORITY nil The protocol-defined priority for all packets on this socket
-SO_LINGER nil Linger on close if data is present
-SO_PASSCRED nil Receive SCM_CREDENTIALS messages
-SO_PEERCRED nil The credentials of the foreign process connected to this socket
-SO_RCVLOWAT nil Receive low-water mark
-SO_SNDLOWAT nil Send low-water mark
-SO_RCVTIMEO nil Receive timeout
-SO_SNDTIMEO nil Send timeout
-SO_ACCEPTCONN nil Socket has had listen() called on it
-SO_USELOOPBACK nil Bypass hardware when possible
-SO_ACCEPTFILTER nil There is an accept filter
-SO_DONTTRUNC nil Retain unread data
-SO_WANTMORE nil Give a hint when more data is ready
-SO_WANTOOBFLAG nil OOB data is wanted in MSG_FLAG on receive
-SO_NREAD nil Get first packet byte count
-SO_NKE nil Install socket-level Network Kernel Extension
-SO_NOSIGPIPE nil Don't SIGPIPE on EPIPE
-SO_SECURITY_AUTHENTICATION
-SO_SECURITY_ENCRYPTION_TRANSPORT
-SO_SECURITY_ENCRYPTION_NETWORK
-SO_BINDTODEVICE nil Only send packets from the given interface
-SO_ATTACH_FILTER nil Attach an accept filter
-SO_DETACH_FILTER nil Detach an accept filter
-SO_PEERNAME nil Name of the connecting user
-SO_TIMESTAMP nil Receive timestamp with datagrams (timeval)
-SO_TIMESTAMPNS nil Receive nanosecond timestamp with datagrams (timespec)
-SO_BINTIME nil Receive timestamp with datagrams (bintime)
-SO_RECVUCRED nil Receive user credentials with datagram
-SO_MAC_EXEMPT nil Mandatory Access Control exemption for unlabeled peers
-SO_ALLZONES nil Bypass zone boundaries
-
-SOPRI_INTERACTIVE nil Interactive socket priority
-SOPRI_NORMAL nil Normal socket priority
-SOPRI_BACKGROUND nil Background socket priority
-
-IPX_TYPE
-
-TCP_NODELAY nil Don't delay sending to coalesce packets
-TCP_MAXSEG nil Set maximum segment size
-TCP_CORK nil Don't send partial frames
-TCP_DEFER_ACCEPT nil Don't notify a listening socket until data is ready
-TCP_INFO nil Retrieve information about this socket
-TCP_KEEPCNT nil Maximum number of keepalive probes allowed before dropping a connection
-TCP_KEEPIDLE nil Idle time before keepalive probes are sent
-TCP_KEEPINTVL nil Time between keepalive probes
-TCP_LINGER2 nil Lifetime of orphaned FIN_WAIT2 sockets
-TCP_MD5SIG nil Use MD5 digests (RFC2385)
-TCP_NOOPT nil Don't use TCP options
-TCP_NOPUSH nil Don't push the last block of write
-TCP_QUICKACK nil Enable quickack mode
-TCP_SYNCNT nil Number of SYN retransmits before a connection is dropped
-TCP_WINDOW_CLAMP nil Clamp the size of the advertised window
-
-UDP_CORK nil Don't send partial frames
-
-EAI_ADDRFAMILY nil Address family for hostname not supported
-EAI_AGAIN nil Temporary failure in name resolution
-EAI_BADFLAGS nil Invalid flags
-EAI_FAIL nil Non-recoverable failure in name resolution
-EAI_FAMILY nil Address family not supported
-EAI_MEMORY nil Memory allocation failure
-EAI_NODATA nil No address associated with hostname
-EAI_NONAME nil Hostname nor servname, or not known
-EAI_OVERFLOW nil Argument buffer overflow
-EAI_SERVICE nil Servname not supported for socket type
-EAI_SOCKTYPE nil Socket type not supported
-EAI_SYSTEM nil System error returned in errno
-EAI_BADHINTS nil Invalid value for hints
-EAI_PROTOCOL nil Resolved protocol is unknown
-EAI_MAX nil Maximum error code from getaddrinfo
-
-AI_PASSIVE nil Get address to use with bind()
-AI_CANONNAME nil Fill in the canonical name
-AI_NUMERICHOST nil Prevent host name resolution
-AI_NUMERICSERV nil Prevent service name resolution
-AI_MASK nil Valid flag mask for getaddrinfo (not for application use)
-AI_ALL nil Allow all addresses
-AI_V4MAPPED_CFG nil Accept IPv4 mapped addresses if the kernel supports it
-AI_ADDRCONFIG nil Accept only if any address is assigned
-AI_V4MAPPED nil Accept IPv4-mapped IPv6 addresses
-AI_DEFAULT nil Default flags for getaddrinfo
-
-NI_MAXHOST nil Maximum length of a hostname
-NI_MAXSERV nil Maximum length of a service name
-NI_NOFQDN nil An FQDN is not required for local hosts, return only the local part
-NI_NUMERICHOST nil Return a numeric address
-NI_NAMEREQD nil A name is required
-NI_NUMERICSERV nil Return the service name as a digit string
-NI_DGRAM nil The service specified is a datagram service (looks up UDP ports)
-
-SHUT_RD 0 Shut down the reading side of the socket
-SHUT_WR 1 Shut down the writing side of the socket
-SHUT_RDWR 2 Shut down the both sides of the socket
-
-IPV6_JOIN_GROUP nil Join a group membership
-IPV6_LEAVE_GROUP nil Leave a group membership
-IPV6_MULTICAST_HOPS nil IP6 multicast hops
-IPV6_MULTICAST_IF nil IP6 multicast interface
-IPV6_MULTICAST_LOOP nil IP6 multicast loopback
-IPV6_UNICAST_HOPS nil IP6 unicast hops
-IPV6_V6ONLY nil Only bind IPv6 with a wildcard bind
-IPV6_CHECKSUM nil Checksum offset for raw sockets
-IPV6_DONTFRAG nil Don't fragment packets
-IPV6_DSTOPTS nil Destination option
-IPV6_HOPLIMIT nil Hop limit
-IPV6_HOPOPTS nil Hop-by-hop option
-IPV6_NEXTHOP nil Next hop address
-IPV6_PATHMTU nil Retrieve current path MTU
-IPV6_PKTINFO nil Receive packet information with datagram
-IPV6_RECVDSTOPTS nil Receive all IP6 options for response
-IPV6_RECVHOPLIMIT nil Receive hop limit with datagram
-IPV6_RECVHOPOPTS nil Receive hop-by-hop options
-IPV6_RECVPKTINFO nil Receive destination IP address and incoming interface
-IPV6_RECVRTHDR nil Receive routing header
-IPV6_RECVTCLASS nil Receive traffic class
-IPV6_RTHDR nil Allows removal of sticky routing headers
-IPV6_RTHDRDSTOPTS nil Allows removal of sticky destination options header
-IPV6_RTHDR_TYPE_0 nil Routing header type 0
-IPV6_RECVPATHMTU nil Receive current path MTU with datagram
-IPV6_TCLASS nil Specify the traffic class
-IPV6_USE_MIN_MTU nil Use the minimum MTU size
-
-INET_ADDRSTRLEN 16 Maximum length of an IPv4 address string
-INET6_ADDRSTRLEN 46 Maximum length of an IPv6 address string
-IFNAMSIZ nil Maximum interface name size
-IF_NAMESIZE nil Maximum interface name size
-
-SOMAXCONN nil Maximum connection requests that may be queued for a socket
-
-SCM_RIGHTS nil Access rights
-SCM_TIMESTAMP nil Timestamp (timeval)
-SCM_TIMESTAMPNS nil Timespec (timespec)
-SCM_BINTIME nil Timestamp (bintime)
-SCM_CREDENTIALS nil The sender's credentials
-SCM_CREDS nil Process credentials
-SCM_UCRED nil User credentials
-
-LOCAL_PEERCRED nil Retrieve peer credentials
-LOCAL_CREDS nil Pass credentials to receiver
-LOCAL_CONNWAIT nil Connect blocks until accepted