luci-base: http.uc: fix invoking Lua file upload callbacks

In case a callback is installed from Lua code, the received callback
argument is not a callable function but a resource object with a call
method. Attempts to call it will leading to a `Type error: left-hand
side is not a function` error.

To solve this issue, invoke the internally set filehandler instead
which wraps the resource if needed.

Fixes: #6067
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
Jo-Philipp Wich 2022-11-02 09:04:25 +01:00
parent da41c11971
commit d967bbaa92

View file

@ -432,7 +432,7 @@ const Class = {
let data = value.fd.read(1024);
let eof = (data == null || data == '');
callback(value, data, eof);
this.filehandler(value, data, eof);
if (eof) {
value.fd.close();