From 5d2bf1525c56ab411887f0b66902a68631f701cf Mon Sep 17 00:00:00 2001 From: fangrong Date: Fri, 7 Mar 2025 10:40:59 +0800 Subject: [PATCH 1/2] acu: Added GetProxyHost, minor tweak --- libctru/include/3ds/services/ac.h | 8 ++++- libctru/source/services/ac.c | 52 ++++++++++++++++++++----------- 2 files changed, 41 insertions(+), 19 deletions(-) diff --git a/libctru/include/3ds/services/ac.h b/libctru/include/3ds/services/ac.h index a88dddc2a..6f3590c37 100644 --- a/libctru/include/3ds/services/ac.h +++ b/libctru/include/3ds/services/ac.h @@ -81,11 +81,17 @@ Result ACU_GetSSIDLength(u32 *out); */ Result ACU_GetProxyEnable(bool *enable); +/** + * @brief Gets the connected network's proxy host. + * @param host Pointer to output the proxy host to. + */ +Result ACU_GetProxyHost(char *host); + /** * @brief Gets the connected network's proxy port. * @param out Pointer to output the proxy port to. */ -Result ACU_GetProxyPort(u32 *out); +Result ACU_GetProxyPort(u16 *out); /** * @brief Gets the connected network's proxy username. diff --git a/libctru/source/services/ac.c b/libctru/source/services/ac.c index db04f0794..3f4aa175a 100644 --- a/libctru/source/services/ac.c +++ b/libctru/source/services/ac.c @@ -187,22 +187,6 @@ Result ACU_SetRequestEulaVersion(acuConfig* config) return (Result)cmdbuf[1]; } -Result ACU_GetProxyPassword(char *password) -{ - Result ret=0; - u32 *cmdbuf = getThreadCommandBuffer(); - u32 *staticbufs = getThreadStaticBuffers(); - - cmdbuf[0] = IPC_MakeHeader(0x3B,0,0); // 0x3B0000 - - staticbufs[0] = IPC_Desc_StaticBuffer(0x20, 0); - staticbufs[1] = (u32)password; - - if(R_FAILED(ret = svcSendSyncRequest(acHandle)))return ret; - - return (Result)cmdbuf[1]; -} - Result ACU_GetSecurityMode(acSecurityMode *mode) { Result ret=0; @@ -261,7 +245,23 @@ Result ACU_GetProxyEnable(bool *enable) return (Result)cmdbuf[1]; } -Result ACU_GetProxyPort(u32 *out) +Result ACU_GetProxyHost(char *host) +{ + Result ret=0; + u32 *cmdbuf = getThreadCommandBuffer(); + u32 *staticbufs = getThreadStaticBuffers(); + + cmdbuf[0] = IPC_MakeHeader(0x39,0,0); // 0x390000 + + staticbufs[0] = IPC_Desc_StaticBuffer(0x100, 0); + staticbufs[1] = (u32)host; + + if(R_FAILED(ret = svcSendSyncRequest(acHandle))) return ret; + + return (Result)cmdbuf[1]; +} + +Result ACU_GetProxyPort(u16 *out) { Result ret=0; u32 *cmdbuf = getThreadCommandBuffer(); @@ -270,7 +270,7 @@ Result ACU_GetProxyPort(u32 *out) if(R_FAILED(ret = svcSendSyncRequest(acHandle)))return ret; - *out = cmdbuf[2]; + *out = (u16)cmdbuf[2]; return (Result)cmdbuf[1]; } @@ -291,6 +291,22 @@ Result ACU_GetProxyUserName(char *username) return (Result)cmdbuf[1]; } +Result ACU_GetProxyPassword(char *password) +{ + Result ret=0; + u32 *cmdbuf = getThreadCommandBuffer(); + u32 *staticbufs = getThreadStaticBuffers(); + + cmdbuf[0] = IPC_MakeHeader(0x3B,0,0); // 0x3B0000 + + staticbufs[0] = IPC_Desc_StaticBuffer(0x20, 0); + staticbufs[1] = (u32)password; + + if(R_FAILED(ret = svcSendSyncRequest(acHandle)))return ret; + + return (Result)cmdbuf[1]; +} + Result ACI_LoadNetworkSetting(u32 slot) { u32 *cmdbuf = getThreadCommandBuffer(); From 1d969fe1db8c005bca632775c790f9b1ebd8bbb7 Mon Sep 17 00:00:00 2001 From: TY <47445484+R-YaTian@users.noreply.github.com> Date: Tue, 18 Mar 2025 09:05:10 +0800 Subject: [PATCH 2/2] ac.h: Update docstring for GetProxyHost --- libctru/include/3ds/services/ac.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libctru/include/3ds/services/ac.h b/libctru/include/3ds/services/ac.h index 6f3590c37..776d18ddd 100644 --- a/libctru/include/3ds/services/ac.h +++ b/libctru/include/3ds/services/ac.h @@ -83,7 +83,7 @@ Result ACU_GetProxyEnable(bool *enable); /** * @brief Gets the connected network's proxy host. - * @param host Pointer to output the proxy host to. + * @param host Pointer to output the proxy host to. (The size must be at least 0x100-bytes) */ Result ACU_GetProxyHost(char *host);