98 #include <sys/socket.h>
99 #include <netinet/in.h>
110 const struct sockaddr *sb)
112 if (sa->sa_family != sb->sa_family)
113 return (sa->sa_family - sb->sa_family);
120 if (sa->sa_family == AF_INET) {
123 }
else if (sa->sa_family == AF_INET6) {
124 return (memcmp((
void *) &(SOCK_ADDR_IN6_ADDR(sa)),
125 (
void *) &(SOCK_ADDR_IN6_ADDR(sb)),
126 sizeof(SOCK_ADDR_IN6_ADDR(sa))));
129 msg_panic(
"sock_addr_cmp_addr: unsupported address family %d",
137 const struct sockaddr *sb)
139 if (sa->sa_family != sb->sa_family)
140 return (sa->sa_family - sb->sa_family);
142 if (sa->sa_family == AF_INET) {
145 }
else if (sa->sa_family == AF_INET6) {
146 return (SOCK_ADDR_IN6_PORT(sa) - SOCK_ADDR_IN6_PORT(sb));
149 msg_panic(
"sock_addr_cmp_port: unsupported address family %d",
158 unsigned long inaddr;
160 if (sa->sa_family == AF_INET) {
162 return (IN_CLASSA(inaddr)
163 && ((inaddr & IN_CLASSA_NET) >> IN_CLASSA_NSHIFT)
166 }
else if (sa->sa_family == AF_INET6) {
167 return (IN6_IS_ADDR_LOOPBACK(&SOCK_ADDR_IN6_ADDR(sa)));
170 msg_panic(
"sock_addr_in_loopback: unsupported address family %d",
int sock_addr_cmp_addr(const struct sockaddr *sa, const struct sockaddr *sb)
NORETURN msg_panic(const char *fmt,...)
int sock_addr_in_loopback(const struct sockaddr *sa)
int sock_addr_cmp_port(const struct sockaddr *sa, const struct sockaddr *sb)
#define SOCK_ADDR_IN_ADDR(sa)
#define SOCK_ADDR_IN_PORT(sa)