From 8deb91d95656ce00b75b7bbf5b424aa7b9d7faff Mon Sep 17 00:00:00 2001 From: deraadt <> Date: Wed, 23 Jun 1999 22:17:32 +0000 Subject: net_addrcmp(); needs man page --- src/lib/libc/net/Makefile.inc | 6 ++++-- src/lib/libc/net/net_addrcmp.c | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 src/lib/libc/net/net_addrcmp.c 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 @@ -# $OpenBSD: Makefile.inc,v 1.18 1999/06/23 21:55:28 cmetz Exp $ +# $OpenBSD: Makefile.inc,v 1.19 1999/06/23 22:17:32 deraadt Exp $ # net sources .PATH: ${LIBCSRCDIR}/arch/${MACHINE_ARCH}/net ${LIBCSRCDIR}/net @@ -13,7 +13,9 @@ SRCS+= __siocgifconf.c base64.c freeaddrinfo.c gai_strerror.c getaddrinfo.c \ inet_lnaof.c inet_makeaddr.c inet_neta.c inet_netof.c inet_network.c \ inet_net_ntop.c inet_net_pton.c inet_ntoa.c inet_ntop.c inet_pton.c \ ipx_addr.c ipx_ntoa.c iso_addr.c linkaddr.c ns_addr.c ns_ntoa.c \ - nsap_addr.c rcmd.c recv.c res_comp.c res_data.c res_debug.c \ + nsap_addr.c \ + net_addrcmp.c \ + rcmd.c recv.c res_comp.c res_data.c res_debug.c \ res_init.c res_mkquery.c res_query.c res_random.c res_send.c send.c \ sethostent.c ethers.c rcmdsh.c 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 @@ +#include +#include +#include +#include +#include +#include + +int +net_addrcmp(sa1, sa2) + struct sockaddr *sa1; + struct sockaddr *sa2; +{ + if (sa1->sa_len != sa2->sa_len) + return (sa1->sa_len < sa2->sa_len) ? -1 : 1; + if (sa1->sa_family != sa2->sa_family) + return (sa1->sa_family < sa2->sa_family) ? -1 : 1; + + switch(sa1->sa_family) { + case AF_INET: + return (memcmp(&((struct sockaddr_in *)sa1)->sin_addr, + &((struct sockaddr_in *)sa2)->sin_addr, + sizeof(struct in_addr))); + case AF_INET6: + return (memcmp(&((struct sockaddr_in6 *)sa1)->sin6_addr, + &((struct sockaddr_in6 *)sa2)->sin6_addr, + sizeof(struct in6_addr))); + case AF_NS: + return (memcmp(&((struct sockaddr_ns *)sa1)->sns_addr, + &((struct sockaddr_ns *)sa2)->sns_addr, + sizeof(struct ns_addr))); + case AF_UNIX: + return (strcmp(((struct sockaddr_un *)sa1)->sun_path, + ((struct sockaddr_un *)sa1)->sun_path)); + default: + return -1; + } +} -- cgit v1.2.3-55-g6feb