summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Gianforcaro <bgianf@serenityos.org>2021-12-28 00:10:49 -0800
committerAndreas Kling <kling@serenityos.org>2021-12-28 11:00:51 +0100
commit4fdff1ba632be8d2ae81563578f1b998d6dc28c5 (patch)
tree11285420b795b871203c7895babdee6e2d620036
parentfb8df01036dc5d2b427f58e13ab819d8ad7235d4 (diff)
downloadserenity-4fdff1ba632be8d2ae81563578f1b998d6dc28c5.zip
LibC: Add in6addr_loopback and IN6ADDR_LOOPBACK_INIT constant
Much like the existing in6addr_any global and the IN6ADDR_ANY_INIT macro, our LibC is also expected to export the in6addr_loopback global and the IN6ADDR_LOOPBACK_INIT constant. These were found by the stress-ng port.
-rw-r--r--Kernel/API/POSIX/netinet/in.h8
-rw-r--r--Userland/Libraries/LibC/net.cpp3
2 files changed, 9 insertions, 2 deletions
diff --git a/Kernel/API/POSIX/netinet/in.h b/Kernel/API/POSIX/netinet/in.h
index ae8eed6523..be3d1aba6a 100644
--- a/Kernel/API/POSIX/netinet/in.h
+++ b/Kernel/API/POSIX/netinet/in.h
@@ -95,7 +95,13 @@ struct in6_addr {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \
}
-extern struct in6_addr in6addr_any;
+#define IN6ADDR_LOOPBACK_INIT \
+ { \
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 \
+ }
+
+extern const struct in6_addr in6addr_any;
+extern const struct in6_addr in6addr_loopback;
struct sockaddr_in6 {
sa_family_t sin6_family; // AF_INET6.
diff --git a/Userland/Libraries/LibC/net.cpp b/Userland/Libraries/LibC/net.cpp
index 145ef4b153..aa76ec0a6c 100644
--- a/Userland/Libraries/LibC/net.cpp
+++ b/Userland/Libraries/LibC/net.cpp
@@ -8,7 +8,8 @@
#include <LibC/net/if.h>
#include <LibC/netinet/in.h>
-in6_addr in6addr_any = IN6ADDR_ANY_INIT;
+const in6_addr in6addr_any = IN6ADDR_ANY_INIT;
+const in6_addr in6addr_loopback = IN6ADDR_LOOPBACK_INIT;
unsigned int if_nametoindex([[maybe_unused]] const char* ifname)
{