diff options
author | Brian Gianforcaro <bgianf@serenityos.org> | 2021-12-28 00:10:49 -0800 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2021-12-28 11:00:51 +0100 |
commit | 4fdff1ba632be8d2ae81563578f1b998d6dc28c5 (patch) | |
tree | 11285420b795b871203c7895babdee6e2d620036 | |
parent | fb8df01036dc5d2b427f58e13ab819d8ad7235d4 (diff) | |
download | serenity-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.h | 8 | ||||
-rw-r--r-- | Userland/Libraries/LibC/net.cpp | 3 |
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) { |