From 0627a89874c9a449a2aa1cf37d0e754c6bd688d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Miko=C5=82ajczyk?= Date: Fri, 11 Jul 2025 19:37:34 +0100 Subject: [PATCH] NetCtl: run provided callbacks --- src/core/libraries/network/netctl.cpp | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/core/libraries/network/netctl.cpp b/src/core/libraries/network/netctl.cpp index 80850785b..1537f705b 100644 --- a/src/core/libraries/network/netctl.cpp +++ b/src/core/libraries/network/netctl.cpp @@ -96,7 +96,9 @@ int PS4_SYSV_ABI sceNetCtlUnregisterCallbackV6() { } int PS4_SYSV_ABI sceNetCtlCheckCallback() { - LOG_DEBUG(Lib_NetCtl, "(STUBBED) called"); + LOG_DEBUG(Lib_NetCtl, "called"); + + netctl.CheckCallback(); return ORBIS_OK; } @@ -299,7 +301,7 @@ int PS4_SYSV_ABI sceNetCtlGetWifiType() { } int PS4_SYSV_ABI sceNetCtlInit() { - LOG_ERROR(Lib_NetCtl, "(STUBBED) called"); + LOG_DEBUG(Lib_NetCtl, "called"); return ORBIS_OK; } @@ -312,12 +314,17 @@ int PS4_SYSV_ABI sceNetCtlRegisterCallback(OrbisNetCtlCallback func, void* arg, if (!func || !cid) { return ORBIS_NET_CTL_ERROR_INVALID_ADDR; } + s32 result = netctl.RegisterCallback(func, arg); + if (result < 0) { + LOG_DEBUG(Lib_NetCtl, "failed with {:#x}", result); return result; } else { + LOG_DEBUG(Lib_NetCtl, "*cid = {}", result); *cid = result; } + return ORBIS_OK; } @@ -387,7 +394,9 @@ int PS4_SYSV_ABI Func_D8DCB6973537A3DC() { } int PS4_SYSV_ABI sceNetCtlCheckCallbackForNpToolkit() { - LOG_DEBUG(Lib_NetCtl, "(STUBBED) called"); + LOG_DEBUG(Lib_NetCtl, "called"); + + netctl.CheckNpToolkitCallback(); return ORBIS_OK; } @@ -401,10 +410,14 @@ int PS4_SYSV_ABI sceNetCtlRegisterCallbackForNpToolkit(OrbisNetCtlCallbackForNpT if (!func || !cid) { return ORBIS_NET_CTL_ERROR_INVALID_ADDR; } + s32 result = netctl.RegisterNpToolkitCallback(func, arg); + if (result < 0) { + LOG_WARNING(Lib_NetCtl, "failed with {:#x}", result); return result; } else { + LOG_DEBUG(Lib_NetCtl, "*cid = {}", result); *cid = result; } return ORBIS_OK;