summaryrefslogtreecommitdiffstats
path: root/sbin/ifconfig/af_atalk.c
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2007-02-24 23:55:46 +0000
committersam <sam@FreeBSD.org>2007-02-24 23:55:46 +0000
commitcd822ec72803ef63ba2d56e1fcdc837cd656a1b5 (patch)
treec3dc617e94bd4dffc5a8ead0c6679f2de41ca65d /sbin/ifconfig/af_atalk.c
parenta95c51b9e7cc53e67b4c98f5bbf806aa8df2e32c (diff)
downloadFreeBSD-src-cd822ec72803ef63ba2d56e1fcdc837cd656a1b5.zip
FreeBSD-src-cd822ec72803ef63ba2d56e1fcdc837cd656a1b5.tar.gz
use getifaddrs from libc instead of private code
Reviewed by: bms MFC after: 1 month
Diffstat (limited to 'sbin/ifconfig/af_atalk.c')
-rw-r--r--sbin/ifconfig/af_atalk.c20
1 files changed, 9 insertions, 11 deletions
diff --git a/sbin/ifconfig/af_atalk.c b/sbin/ifconfig/af_atalk.c
index 0ceb8b9..9accc75 100644
--- a/sbin/ifconfig/af_atalk.c
+++ b/sbin/ifconfig/af_atalk.c
@@ -36,7 +36,6 @@ static const char rcsid[] =
#include <sys/ioctl.h>
#include <sys/socket.h>
#include <net/if.h>
-#include <net/route.h> /* for RTX_IFA */
#include <netatalk/at.h>
@@ -45,6 +44,7 @@ static const char rcsid[] =
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <ifaddrs.h>
#include <arpa/inet.h>
@@ -81,32 +81,30 @@ setatphase(const char *phase, int dummy __unused, int s,
}
static void
-at_status(int s __unused, const struct rt_addrinfo * info)
+at_status(int s __unused, const struct ifaddrs *ifa)
{
struct sockaddr_at *sat, null_sat;
struct netrange *nr;
memset(&null_sat, 0, sizeof(null_sat));
- sat = (struct sockaddr_at *)info->rti_info[RTAX_IFA];
+ sat = (struct sockaddr_at *)ifa->ifa_addr;
if (sat == NULL)
return;
nr = &sat->sat_range.r_netrange;
printf("\tatalk %d.%d range %d-%d phase %d",
ntohs(sat->sat_addr.s_net), sat->sat_addr.s_node,
ntohs(nr->nr_firstnet), ntohs(nr->nr_lastnet), nr->nr_phase);
- if (flags & IFF_POINTOPOINT) {
- /* note RTAX_BRD overlap with IFF_BROADCAST */
- sat = (struct sockaddr_at *)info->rti_info[RTAX_BRD];
- if (!sat)
+ if (ifa->ifa_flags & IFF_POINTOPOINT) {
+ sat = (struct sockaddr_at *)ifa->ifa_dstaddr;
+ if (sat == NULL)
sat = &null_sat;
printf("--> %d.%d",
ntohs(sat->sat_addr.s_net), sat->sat_addr.s_node);
}
- if (flags & IFF_BROADCAST) {
- /* note RTAX_BRD overlap with IFF_POINTOPOINT */
- sat = (struct sockaddr_at *)info->rti_info[RTAX_BRD];
- if (sat)
+ if (ifa->ifa_flags & IFF_BROADCAST) {
+ sat = (struct sockaddr_at *)ifa->ifa_broadaddr;
+ if (sat != NULL)
printf(" broadcast %d.%d",
ntohs(sat->sat_addr.s_net),
sat->sat_addr.s_node);
OpenPOWER on IntegriCloud