feat(libSceNet): export in6addr_any and in6addr_loopback

libSceNet exports the IPv6 wildcard and loopback addresses as data.
This commit is contained in:
kjhq 2026-10-07 10:43:24 +00:00
parent 0d3c1eec89
commit 63af67138f
2 changed files with 9 additions and 0 deletions

View File

@ -1058,4 +1058,7 @@ int APS5_VABI sceNetResolverStartNtoaMultipleRecords() {
return 0;
}
extern const std::uint8_t in6addr_any_nid_postfix[16] = {};
extern const std::uint8_t in6addr_loopback_nid_postfix[16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1};
}

View File

@ -9,6 +9,8 @@
#include <thread>
extern "C" {
extern const std::uint8_t in6addr_any_nid_postfix[16];
extern const std::uint8_t in6addr_loopback_nid_postfix[16];
int APS5_VABI sceNetInit_nid_postfix(void);
int APS5_VABI sceNetSocket(const char*, int, int, int);
int APS5_VABI sceNetBind_nid_postfix(int, const void*, std::uint32_t);
@ -143,6 +145,10 @@ static void CheckAddressText(int family, const char* text) {
}
int main() {
for (int i = 0; i < 16; ++i) {
Require(in6addr_any_nid_postfix[i] == 0);
Require(in6addr_loopback_nid_postfix[i] == (i == 15 ? 1 : 0));
}
Require(sceNetInit_nid_postfix() == 0);
CheckAddressText(2, "127.0.0.1");
CheckAddressText(2, "255.255.255.255");