From 04b605477e69b1095937a0acb789b3827a8843be Mon Sep 17 00:00:00 2001 From: Jonas 'Sortie' Termansen Date: Sun, 28 Jan 2024 16:12:06 +0100 Subject: [PATCH] Add IFF_UP to getifaddrs(3). --- libc/ifaddrs/getifaddrs.c | 3 ++- libc/include/ifaddrs.h | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/libc/ifaddrs/getifaddrs.c b/libc/ifaddrs/getifaddrs.c index 58de0e63..dfdec8fa 100644 --- a/libc/ifaddrs/getifaddrs.c +++ b/libc/ifaddrs/getifaddrs.c @@ -66,6 +66,7 @@ int getifaddrs(struct ifaddrs** ifas_ptr) freeifaddrs(ifas); return -1; } + struct if_status status; struct if_config cfg; if ( ioctl(fd, NIOC_GETCONFIG, &cfg) < 0 ) { @@ -89,7 +90,7 @@ int getifaddrs(struct ifaddrs** ifas_ptr) ifas = &ifa->pub; strlcpy(ifa->name, netif->if_name, sizeof(ifa->name)); ifa->pub.ifa_name = ifa->name; - ifa->pub.ifa_flags = 0; + ifa->pub.ifa_flags = status.flags & IF_STATUS_FLAGS_UP ? IFF_UP : 0; ifa->addr.in.sin_family = AF_INET; memcpy(&ifa->addr.in.sin_addr, &cfg.inet.address, sizeof(struct in_addr)); diff --git a/libc/include/ifaddrs.h b/libc/include/ifaddrs.h index 44b0b8db..6e3b7137 100644 --- a/libc/include/ifaddrs.h +++ b/libc/include/ifaddrs.h @@ -24,6 +24,8 @@ #include +#define IFF_UP (1 << 0) + #ifndef __socklen_t_defined #define __socklen_t_defined typedef __socklen_t socklen_t;