From 762660d7c6100980c8d2039d2df5a48d32b7785f Mon Sep 17 00:00:00 2001 From: UnknownShadow200 Date: Thu, 18 Nov 2021 22:20:11 +1100 Subject: [PATCH] Add option to customise skin server --- src/Http_Web.c | 2 +- src/Http_Worker.c | 3 +-- src/Options.h | 1 + src/_HttpBase.h | 10 +++++++++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/Http_Web.c b/src/Http_Web.c index 1865c98b8..ec78856b7 100644 --- a/src/Http_Web.c +++ b/src/Http_Web.c @@ -113,7 +113,7 @@ static void HttpBackend_Add(struct HttpRequest* req, cc_bool priority) { *-----------------------------------------------------Http component------------------------------------------------------* *#########################################################################################################################*/ static void Http_Init(void) { - ScheduledTask_Add(30, Http_CleanCacheTask); + Http_InitCommon(); /* If this webpage is https://, browsers deny any http:// downloading */ httpsOnly = interop_IsHttpsOnly(); diff --git a/src/Http_Worker.c b/src/Http_Worker.c index 542314739..e05a08bfb 100644 --- a/src/Http_Worker.c +++ b/src/Http_Worker.c @@ -902,8 +902,7 @@ static void WorkerLoop(void) { *-----------------------------------------------------Http component------------------------------------------------------* *#########################################################################################################################*/ static void Http_Init(void) { - httpOnly = Options_GetBool(OPT_HTTP_ONLY, false); - ScheduledTask_Add(30, Http_CleanCacheTask); + Http_InitCommon(); /* Http component gets initialised multiple times on Android */ if (workerThread) return; diff --git a/src/Options.h b/src/Options.h index b47898889..88e254125 100644 --- a/src/Options.h +++ b/src/Options.h @@ -71,6 +71,7 @@ #define OPT_TOUCH_BUTTONS "gui-touchbuttons" #define OPT_TOUCH_SCALE "gui-touchscale" #define OPT_HTTP_ONLY "http-no-https" +#define OPT_SKIN_SERVER "http-skinserver" #define OPT_RAW_INPUT "win-raw-input" #define LOPT_SESSION "launcher-session" diff --git a/src/_HttpBase.h b/src/_HttpBase.h index 77bf52cdb..e32d8dfd9 100644 --- a/src/_HttpBase.h +++ b/src/_HttpBase.h @@ -9,6 +9,9 @@ #include "Options.h" static cc_bool httpsOnly, httpOnly; +static char skinServer_buffer[128]; +static cc_string skinServer = String_FromArray(skinServer_buffer); + /* Frees data from a HTTP request. */ static void HttpRequest_Free(struct HttpRequest* request) { Mem_Free(request->data); @@ -212,7 +215,7 @@ int Http_AsyncGetSkin(const cc_string* skinName) { if (Utils_IsUrlPrefix(skinName)) { String_Copy(&url, skinName); } else { - String_Format1(&url, SKINS_SERVER "/%s.png", skinName); + String_Format2(&url, "%s/%s.png", &skinServer, skinName); } return Http_AsyncGetData(&url, false); } @@ -263,6 +266,11 @@ void Http_UrlEncodeUtf8(cc_string* dst, const cc_string* src) { /*########################################################################################################################* *-----------------------------------------------------Http component------------------------------------------------------* *#########################################################################################################################*/ +static void Http_InitCommon(void) { + httpOnly = Options_GetBool(OPT_HTTP_ONLY, false); + Options_Get(OPT_SKIN_SERVER, &skinServer, SKINS_SERVER); + ScheduledTask_Add(30, Http_CleanCacheTask); +} static void Http_Init(void); struct IGameComponent Http_Component = {