Redirect ResolverStartNtoaMultipleRecords

This commit is contained in:
Marcin Mikołajczyk 2025-07-12 15:42:56 +01:00
parent f40ea8851c
commit 82ed8bb43f
2 changed files with 39 additions and 4 deletions

View File

@ -1686,9 +1686,25 @@ int PS4_SYSV_ABI sceNetResolverStartNtoa6() {
return ORBIS_OK; return ORBIS_OK;
} }
int PS4_SYSV_ABI sceNetResolverStartNtoaMultipleRecords() { int PS4_SYSV_ABI sceNetResolverStartNtoaMultipleRecords(OrbisNetId resolverid, const char* hostname,
LOG_ERROR(Lib_Net, "(STUBBED) called"); OrbisNetResolverInfo* info, int timeout, int retry, int flags) {
return ORBIS_OK; LOG_WARNING(Lib_Net, "redirected to sceNetResolverStartNtoa");
OrbisNetInAddr addr{};
auto result = sceNetResolverStartNtoa(resolverid, hostname, &addr, timeout, retry, flags);
if (result == ORBIS_OK) {
info->addrs[0] = {
.u = {
.addr = addr
},
.af = ORBIS_NET_AF_INET
};
info->records = 1;
info->recordsv4 = 1;
}
return result;
} }
int PS4_SYSV_ABI sceNetResolverStartNtoaMultipleRecordsEx() { int PS4_SYSV_ABI sceNetResolverStartNtoaMultipleRecordsEx() {

View File

@ -152,6 +152,24 @@ struct OrbisNetEpollEvent {
OrbisNetEpollData data; OrbisNetEpollData data;
}; };
union OrbisNetAddrUnion {
OrbisNetInAddr addr;
u8 addr6[16];
};
struct OrbisNetResolverAddr {
OrbisNetAddrUnion u;
u32 af;
u32 pad[3];
};
struct OrbisNetResolverInfo {
OrbisNetResolverAddr addrs[10];
u32 records;
u32 recordsv4;
u32 pad[14];
};
int PS4_SYSV_ABI in6addr_any(); int PS4_SYSV_ABI in6addr_any();
int PS4_SYSV_ABI in6addr_loopback(); int PS4_SYSV_ABI in6addr_loopback();
int PS4_SYSV_ABI sce_net_dummy(); int PS4_SYSV_ABI sce_net_dummy();
@ -331,7 +349,8 @@ int PS4_SYSV_ABI sceNetResolverStartAton6();
int PS4_SYSV_ABI sceNetResolverStartNtoa(OrbisNetId resolverid, const char* hostname, int PS4_SYSV_ABI sceNetResolverStartNtoa(OrbisNetId resolverid, const char* hostname,
OrbisNetInAddr* addr, int timeout, int retry, int flags); OrbisNetInAddr* addr, int timeout, int retry, int flags);
int PS4_SYSV_ABI sceNetResolverStartNtoa6(); int PS4_SYSV_ABI sceNetResolverStartNtoa6();
int PS4_SYSV_ABI sceNetResolverStartNtoaMultipleRecords(); int PS4_SYSV_ABI sceNetResolverStartNtoaMultipleRecords(OrbisNetId resolverid, const char* hostname,
OrbisNetResolverInfo* info, int timeout, int retry, int flags);
int PS4_SYSV_ABI sceNetResolverStartNtoaMultipleRecordsEx(); int PS4_SYSV_ABI sceNetResolverStartNtoaMultipleRecordsEx();
int PS4_SYSV_ABI sceNetSend(OrbisNetId s, const void* buf, u64 len, int flags); int PS4_SYSV_ABI sceNetSend(OrbisNetId s, const void* buf, u64 len, int flags);
int PS4_SYSV_ABI sceNetSendmsg(OrbisNetId s, const OrbisNetMsghdr* msg, int flags); int PS4_SYSV_ABI sceNetSendmsg(OrbisNetId s, const OrbisNetMsghdr* msg, int flags);