89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
OF_SOCKET_ADDRESS_FAMILY_IPV4,
/** IPv6 */
OF_SOCKET_ADDRESS_FAMILY_IPV6,
/** IPX */
OF_SOCKET_ADDRESS_FAMILY_IPX,
/** Any address family */
OF_SOCKET_ADDRESS_FAMILY_ANY = 255
} of_socket_address_family_t;
#ifndef OF_HAVE_IPV6
struct sockaddr_in6 {
sa_family_t sin6_family;
in_port_t sin6_port;
uint32_t sin6_flowinfo;
struct in6_addr {
|
|
|
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
OF_SOCKET_ADDRESS_FAMILY_IPV4,
/** IPv6 */
OF_SOCKET_ADDRESS_FAMILY_IPV6,
/** IPX */
OF_SOCKET_ADDRESS_FAMILY_IPX,
/** Any address family */
OF_SOCKET_ADDRESS_FAMILY_ANY = 255
} OFSocketAddressFamily;
#ifndef OF_HAVE_IPV6
struct sockaddr_in6 {
sa_family_t sin6_family;
in_port_t sin6_port;
uint32_t sin6_flowinfo;
struct in6_addr {
|
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
/*
* Even though struct sockaddr contains the family, we need to use our
* own family, as we need to support storing an IPv6 address on systems
* that don't support IPv6. These may not have AF_INET6 defined and we
* can't just define it, as the value is system-dependent and might
* clash with an existing value.
*/
of_socket_address_family_t family;
union {
struct sockaddr sockaddr;
struct sockaddr_in in;
struct sockaddr_in6 in6;
struct sockaddr_ipx ipx;
} sockaddr;
socklen_t length;
|
|
|
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
/*
* Even though struct sockaddr contains the family, we need to use our
* own family, as we need to support storing an IPv6 address on systems
* that don't support IPv6. These may not have AF_INET6 defined and we
* can't just define it, as the value is system-dependent and might
* clash with an existing value.
*/
OFSocketAddressFamily family;
union {
struct sockaddr sockaddr;
struct sockaddr_in in;
struct sockaddr_in6 in6;
struct sockaddr_ipx ipx;
} sockaddr;
socklen_t length;
|