summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorderaadt <>1999-06-23 22:17:32 +0000
committerderaadt <>1999-06-23 22:17:32 +0000
commit8deb91d95656ce00b75b7bbf5b424aa7b9d7faff (patch)
tree807986cb72df5ab5337c624d1911a9b071978c34
parentc9acd185820380c6eedba713cb86eaf97af03d53 (diff)
downloadopenbsd-8deb91d95656ce00b75b7bbf5b424aa7b9d7faff.tar.gz
openbsd-8deb91d95656ce00b75b7bbf5b424aa7b9d7faff.tar.bz2
openbsd-8deb91d95656ce00b75b7bbf5b424aa7b9d7faff.zip
net_addrcmp(); needs man page
-rw-r--r--src/lib/libc/net/Makefile.inc6
-rw-r--r--src/lib/libc/net/net_addrcmp.c37
2 files changed, 41 insertions, 2 deletions
diff --git a/src/lib/libc/net/Makefile.inc b/src/lib/libc/net/Makefile.inc
index b4b94ad763..3727045c1d 100644
--- a/src/lib/libc/net/Makefile.inc
+++ b/src/lib/libc/net/Makefile.inc
@@ -1,4 +1,4 @@
1# $OpenBSD: Makefile.inc,v 1.18 1999/06/23 21:55:28 cmetz Exp $ 1# $OpenBSD: Makefile.inc,v 1.19 1999/06/23 22:17:32 deraadt Exp $
2 2
3# net sources 3# net sources
4.PATH: ${LIBCSRCDIR}/arch/${MACHINE_ARCH}/net ${LIBCSRCDIR}/net 4.PATH: ${LIBCSRCDIR}/arch/${MACHINE_ARCH}/net ${LIBCSRCDIR}/net
@@ -13,7 +13,9 @@ SRCS+= __siocgifconf.c base64.c freeaddrinfo.c gai_strerror.c getaddrinfo.c \
13 inet_lnaof.c inet_makeaddr.c inet_neta.c inet_netof.c inet_network.c \ 13 inet_lnaof.c inet_makeaddr.c inet_neta.c inet_netof.c inet_network.c \
14 inet_net_ntop.c inet_net_pton.c inet_ntoa.c inet_ntop.c inet_pton.c \ 14 inet_net_ntop.c inet_net_pton.c inet_ntoa.c inet_ntop.c inet_pton.c \
15 ipx_addr.c ipx_ntoa.c iso_addr.c linkaddr.c ns_addr.c ns_ntoa.c \ 15 ipx_addr.c ipx_ntoa.c iso_addr.c linkaddr.c ns_addr.c ns_ntoa.c \
16 nsap_addr.c rcmd.c recv.c res_comp.c res_data.c res_debug.c \ 16 nsap_addr.c \
17 net_addrcmp.c \
18 rcmd.c recv.c res_comp.c res_data.c res_debug.c \
17 res_init.c res_mkquery.c res_query.c res_random.c res_send.c send.c \ 19 res_init.c res_mkquery.c res_query.c res_random.c res_send.c send.c \
18 sethostent.c ethers.c rcmdsh.c 20 sethostent.c ethers.c rcmdsh.c
19 21
diff --git a/src/lib/libc/net/net_addrcmp.c b/src/lib/libc/net/net_addrcmp.c
new file mode 100644
index 0000000000..003b2567e9
--- /dev/null
+++ b/src/lib/libc/net/net_addrcmp.c
@@ -0,0 +1,37 @@
1#include <sys/types.h>
2#include <sys/socket.h>
3#include <sys/un.h>
4#include <netinet/in.h>
5#include <netns/ns.h>
6#include <string.h>
7
8int
9net_addrcmp(sa1, sa2)
10 struct sockaddr *sa1;
11 struct sockaddr *sa2;
12{
13 if (sa1->sa_len != sa2->sa_len)
14 return (sa1->sa_len < sa2->sa_len) ? -1 : 1;
15 if (sa1->sa_family != sa2->sa_family)
16 return (sa1->sa_family < sa2->sa_family) ? -1 : 1;
17
18 switch(sa1->sa_family) {
19 case AF_INET:
20 return (memcmp(&((struct sockaddr_in *)sa1)->sin_addr,
21 &((struct sockaddr_in *)sa2)->sin_addr,
22 sizeof(struct in_addr)));
23 case AF_INET6:
24 return (memcmp(&((struct sockaddr_in6 *)sa1)->sin6_addr,
25 &((struct sockaddr_in6 *)sa2)->sin6_addr,
26 sizeof(struct in6_addr)));
27 case AF_NS:
28 return (memcmp(&((struct sockaddr_ns *)sa1)->sns_addr,
29 &((struct sockaddr_ns *)sa2)->sns_addr,
30 sizeof(struct ns_addr)));
31 case AF_UNIX:
32 return (strcmp(((struct sockaddr_un *)sa1)->sun_path,
33 ((struct sockaddr_un *)sa1)->sun_path));
34 default:
35 return -1;
36 }
37}