http override

This commit is contained in:
Tester23
2025-07-09 21:13:27 +02:00
parent 7f0b7b75d3
commit ce465a15e6
3 changed files with 39 additions and 1 deletions

View File

@ -831,6 +831,16 @@ int HTTP_ProcessPacket(http_request_t* request) {
return 0;
}
#if ENABLE_HTTP_OVERRIDE
bool HTTP_checkLFSOverride(http_request_t* request, const char *ext);
if (HTTP_checkLFSOverride(request,".html")) {
return 1;
}
if (HTTP_checkLFSOverride(request, "")) {
return 1;
}
#endif
if (http_checkUrlBase(urlStr, "")) return http_fn_empty_url(request);
if (http_checkUrlBase(urlStr, "testmsg")) return http_fn_testmsg(request);

View File

@ -639,8 +639,8 @@ static int http_rest_get_lfs_file(http_request_t* request) {
else {
ADDLOG_DEBUG(LOG_FEATURE_API, "LFS open [%s] gives %d", fpath, lfsres);
if (lfsres >= 0) {
const char* mimetype = httpMimeTypeBinary;
char* ext = fpath;
const char *mimetype = httpMimeTypeBinary;
if (isGzip) {
// find original extension (e.g., .js from .js.gz)
@ -717,6 +717,33 @@ static int http_rest_get_lfs_file(http_request_t* request) {
if (buff) os_free(buff);
return 0;
}
bool HTTP_checkLFSOverride(http_request_t* request, const char *ext) {
char tmp[64];
//sprintf_s(tmp, sizeof(tmp), "override/%s", request->url);
sprintf_s(tmp, sizeof(tmp), "%s%s", request->url, ext);
char *fix = strchr(tmp, '?');
if (fix) {
*fix = 0;
}
lfs_file_t* file;
file = os_malloc(sizeof(lfs_file_t));
memset(file,0, sizeof(lfs_file_t));
int lfsres = lfs_file_open(&lfs, file, tmp, LFS_O_RDONLY);
if (lfsres == 0) {
lfs_file_close(&lfs, file);
free(file);
sprintf_s(tmp, sizeof(tmp), "api/lfs/%s%s", request->url, ext);
char *oldURL = request->url;
request->url = tmp;
http_rest_get_lfs_file(request);
request->url = oldURL;
// "api/lfs/", 8)) {
// "api/run/", 8)) {
return 1;
}
free(file);
return 0;
}
static int http_rest_get_lfs_delete(http_request_t* request) {
char* fpath;
int lfsres;