LibC: Add more definitions to netinet/in.h

These are non-standard but a lot of UNIX-likes have them networking
software attempts to use them
This commit is contained in:
Bananymous 2025-06-02 11:33:22 +03:00
parent 022bb69782
commit 2ee8b6c8b4
1 changed files with 60 additions and 13 deletions

View File

@ -10,20 +10,54 @@ __BEGIN_DECLS
#include <bits/inet_common.h>
#include <sys/socket.h>
#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