diff options
author | Gunnar Beutner <gbeutner@serenityos.org> | 2021-05-09 19:50:26 +0200 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2021-05-09 21:16:11 +0200 |
commit | e4339be13b0ae45ebc8048c2c926c0bec4c83963 (patch) | |
tree | b764da14d3a8b060bafefbc4a6052c21057ed8d2 /Userland/Libraries/LibC/netinet | |
parent | 1bd6705636bed166934c92096360d52b896e0e0a (diff) | |
download | serenity-e4339be13b0ae45ebc8048c2c926c0bec4c83963.zip |
LibC: Add definitions/stubs for IPv6 functionality
This lets us build some of the ports without patching out any of their
IPv6 stuff.
Diffstat (limited to 'Userland/Libraries/LibC/netinet')
-rw-r--r-- | Userland/Libraries/LibC/netinet/in.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/Userland/Libraries/LibC/netinet/in.h b/Userland/Libraries/LibC/netinet/in.h index 7d7bc6c938..da5e5e08a3 100644 --- a/Userland/Libraries/LibC/netinet/in.h +++ b/Userland/Libraries/LibC/netinet/in.h @@ -25,6 +25,12 @@ in_addr_t inet_addr(const char*); #define IP_MULTICAST_LOOP 3 #define IP_ADD_MEMBERSHIP 4 #define IP_DROP_MEMBERSHIP 5 +#define IP_MULTICAST_IF 6 +#define IP_MULTICAST_TTL 7 + +/* Make sure these don't overlap with any other IPv4 and IPv6 options */ +#define MCAST_JOIN_SOURCE_GROUP 100 +#define MCAST_LEAVE_SOURCE_GROUP 101 #define IPPORT_RESERVED 1024 #define IPPORT_USERRESERVED 5000 @@ -47,10 +53,39 @@ struct ip_mreq { struct in_addr imr_interface; }; +struct group_source_req { + uint32_t gsr_interface; + struct sockaddr_storage gsr_group; + struct sockaddr_storage gsr_source; +}; + +struct ip_mreq_source { + struct in_addr imr_multiaddr; + struct in_addr imr_sourceaddr; + struct in_addr imr_interface; +}; + +#define IPV6_UNICAST_HOPS 1 +#define IPV6_MULTICAST_HOPS 2 +#define IPV6_MULTICAST_LOOP 3 +#define IPV6_MULTICAST_IF 4 +#define IPV6_ADD_MEMBERSHIP 5 +#define IPV6_DROP_MEMBERSHIP 6 +#define IP_ADD_SOURCE_MEMBERSHIP 7 +#define IP_DROP_SOURCE_MEMBERSHIP 8 +#define IPV6_V6ONLY 9 + struct in6_addr { uint8_t s6_addr[16]; }; +#define IN6ADDR_ANY_INIT \ + { \ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ + } + +extern struct in6_addr in6addr_any; + struct sockaddr_in6 { sa_family_t sin6_family; // AF_INET6. in_port_t sin6_port; // Port number. @@ -59,4 +94,9 @@ struct sockaddr_in6 { uint32_t sin6_scope_id; // Set of interfaces for a scop }; +struct ipv6_mreq { + struct in6_addr ipv6mr_multiaddr; + uint32_t ipv6mr_interface; +}; + __END_DECLS |