webui-dev / v-webui

Use any web browser as GUI, with V in the backend and modern web technologies in the frontend.
https://webui.me
MIT License
112 stars 11 forks source link

broken page (using setroot) #83

Open StephaneTy-Pro opened 1 month ago

StephaneTy-Pro commented 1 month ago

Description

page load but was broken (corrupted)

Expected Behavior

page is correctly loaded

Reproduction Steps

No response

Error Logs

No response

Possible Solution

in _webui_http_send_file() replace

/*
    if (WEBUI_FILE_OPEN(file, path, "rb") != 0 || !file) {
        #ifdef WEBUI_LOG
        printf("[Core]\t\t_webui_http_send_file() -> Can't open file [%s]\n", path);
        #endif
        return;
    }
*/
    if (WEBUI_FILE_OPEN(file, path, "rb") == NULL) {
        #ifdef WEBUI_LOG
        printf("[Core]\t\t_webui_http_send_file() -> Can't open file [%s]\n", path);
        #endif
    }

Version

2.5.0-beta2

Environment Details (OS name, version, etc.)

linux 5.10.0-12
AlbertShown commented 1 month ago

I don't know what you mean by corrupted... do you mean like content of file is corrupted?

StephaneTy-Pro commented 1 month ago

a blank white webpage is shown with text "Message Corrupt"

using log i could see that loading fail in _webui_http_send_file() ; it's the reason why i propose to correct the test

AlbertShown commented 1 month ago

You removed return;, that's mean the execution will continue even if opening the file is failed. How did this fix your issue?

StephaneTy-Pro commented 1 month ago

houps i forget the return, but the original problem was with expression

WEBUI_FILE_OPEN(file, path, "rb") != 0 || !file

Perhaps i m wrong but

WEBUI_FILE_OPEN(file, path, "rb") != 0 => check if file is open and we return if it was opened

i juste modifiy the test to return if WEBUI_FILE_OPEN was null (function return null or pointer)