diff --git a/userspace/libraries/LibC/include/netinet/in.h b/userspace/libraries/LibC/include/netinet/in.h index 38de5ece..b2539d4e 100644 --- a/userspace/libraries/LibC/include/netinet/in.h +++ b/userspace/libraries/LibC/include/netinet/in.h @@ -10,20 +10,54 @@ __BEGIN_DECLS #include #include -#define IPPROTO_IP 1 -#define IPPROTO_IPV6 2 -#define IPPROTO_ICMP 3 -#define IPPROTO_RAW 4 -#define IPPROTO_TCP 5 -#define IPPROTO_UDP 6 +#define IPPROTO_IP 1 +#define IPPROTO_IPV6 2 +#define IPPROTO_ICMP 3 +#define IPPROTO_RAW 4 +#define IPPROTO_TCP 5 +#define IPPROTO_UDP 6 -#define IPV6_JOIN_GROUP 1 -#define IPV6_LEAVE_GROUP 2 -#define IPV6_MULTICAST_HOPS 3 -#define IPV6_MULTICAST_IF 4 -#define IPV6_MULTICAST_LOOP 5 -#define IPV6_UNICAST_HOPS 6 -#define IPV6_V6ONLY 7 +enum +{ + IP_ADD_MEMBERSHIP, +#define IP_ADD_MEMBERSHIP IP_ADD_MEMBERSHIP + IP_ADD_SOURCE_MEMBERSHIP, +#define IP_ADD_SOURCE_MEMBERSHIP IP_ADD_SOURCE_MEMBERSHIP + IP_DROP_MEMBERSHIP, +#define IP_DROP_MEMBERSHIP IP_DROP_MEMBERSHIP + IP_DROP_SOURCE_MEMBERSHIP, +#define IP_DROP_SOURCE_MEMBERSHIP IP_DROP_SOURCE_MEMBERSHIP + IP_MULTICAST_IF, +#define IP_MULTICAST_IF IP_MULTICAST_IF + IP_MULTICAST_LOOP, +#define IP_MULTICAST_LOOP IP_MULTICAST_LOOP + IP_MULTICAST_TTL, +#define IP_MULTICAST_TTL IP_MULTICAST_TTL + IP_TTL, +#define IP_TTL IP_TTL +}; + +enum +{ + IPV6_ADD_MEMBERSHIP, +#define IPV6_ADD_MEMBERSHIP IPV6_ADD_MEMBERSHIP + IPV6_DROP_MEMBERSHIP, +#define IPV6_DROP_MEMBERSHIP IPV6_DROP_MEMBERSHIP + IPV6_JOIN_GROUP, +#define IPV6_JOIN_GROUP IPV6_JOIN_GROUP + IPV6_LEAVE_GROUP, +#define IPV6_LEAVE_GROUP IPV6_LEAVE_GROUP + IPV6_MULTICAST_HOPS, +#define IPV6_MULTICAST_HOPS IPV6_MULTICAST_HOPS + IPV6_MULTICAST_IF, +#define IPV6_MULTICAST_IF IPV6_MULTICAST_IF + IPV6_MULTICAST_LOOP, +#define IPV6_MULTICAST_LOOP IPV6_MULTICAST_LOOP + IPV6_UNICAST_HOPS, +#define IPV6_UNICAST_HOPS IPV6_UNICAST_HOPS + IPV6_V6ONLY, +#define IPV6_V6ONLY IPV6_V6ONLY +}; #define INADDR_ANY 0 #define INADDR_NONE 0xFFFFFFFF @@ -78,6 +112,19 @@ struct ipv6_mreq unsigned ipv6mr_interface; /* Interface index. */ }; +struct ip_mreq +{ + struct in_addr imr_multiaddr; /* IP multicast group address. */ + struct in_addr imr_interface; /* IP address of local interface. */ +}; + +struct ip_mreq_source +{ + struct in_addr imr_multiaddr; /* IP multicast group address. */ + struct in_addr imr_interface; /* IP address of local interface. */ + struct in_addr imr_sourceaddr; /* IP address of multicast source. */ +}; + __END_DECLS #endif