diff --git a/libctru/include/3ds/services/httpc.h b/libctru/include/3ds/services/httpc.h index 63acf80..f6a41f9 100644 --- a/libctru/include/3ds/services/httpc.h +++ b/libctru/include/3ds/services/httpc.h @@ -252,3 +252,10 @@ Result httpcCloseClientCertContext(u32 ClientCert_contexthandle); */ Result httpcDownloadData(httpcContext *context, u8* buffer, u32 size, u32 *downloadedsize); +/** + * @brief Sets Keep-Alive for the context. + * @param context Context to set flags on. + * @param options Keep-Alive option flags. + */ +Result httpcSetKeepAlive(httpcContext *context, u32 options); + diff --git a/libctru/source/services/httpc.c b/libctru/source/services/httpc.c index 3490751..d216a05 100644 --- a/libctru/source/services/httpc.c +++ b/libctru/source/services/httpc.c @@ -649,3 +649,17 @@ Result httpcCloseClientCertContext(u32 ClientCert_contexthandle) return cmdbuf[1]; } + +Result httpcSetKeepAlive(httpcContext *context, u32 options) +{ + u32* cmdbuf=getThreadCommandBuffer(); + + cmdbuf[0]=IPC_MakeHeader(0x37,2,0); // 0x370080 + cmdbuf[1]=context->httphandle; + cmdbuf[2]=options; + + Result ret=0; + if(R_FAILED(ret=svcSendSyncRequest(context->servhandle)))return ret; + + return cmdbuf[1]; +}