quickjs-tart

quickjs-based runtime for wallet-core logic
Log | Files | Refs | README | LICENSE

commit 5ae4ad7f3acc035d10e6050dd58b26f8754e32f2
parent f7b6b6bbafd589774e7f439c12e92415db0cae50
Author: Iván Ávalos <avalos@disroot.org>
Date:   Fri, 24 May 2024 20:47:22 -0600

inject request ID into os.fetchHttp cancelFn

Diffstat:
Mquickjs/quickjs-libc.c | 10++++++----
1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/quickjs/quickjs-libc.c b/quickjs/quickjs-libc.c @@ -2287,14 +2287,16 @@ static void handle_http_resp(void *cls, struct JSHttpResponseInfo *resp_info) return; } -static JSValue cancel_http_req(JSContext *ctx, JSValueConst this_val, int argc, JSValueConst *argv) +static JSValue cancel_http_req(JSContext *ctx, JSValueConst this_val, + int argc, JSValueConst *argv, int magic, + JSValue *func_data) { JSRuntime *rt = JS_GetRuntime(ctx); JSThreadState *ts = JS_GetRuntimeOpaque(rt); int req_id; int ret; - JS_ToInt32(ctx, &req_id, argv[0]); + JS_ToInt32(ctx, &req_id, func_data[0]); // cancel HTTP request ret = ts->http_client_impl->req_cancel(ts->http_client_impl->cls, req_id); @@ -2362,7 +2364,6 @@ exception: /** * fetchHttp(url, { method, headers, body }): { - * requestId: number, * response: Promise<Response>, * cancelFn: () => void, * } @@ -2503,7 +2504,8 @@ static JSValue js_os_fetchHttp(JSContext *ctx, JSValueConst this_val, req_context->reject_func = resolving_funs[1]; // cancelFn: () => void - JSValue cancelFn = JS_NewCFunction(ctx, &cancel_http_req, "cancelFn", 1); + JSValue cancelCls = JS_NewInt32(ctx, ret); + JSValue cancelFn = JS_NewCFunctionData(ctx, &cancel_http_req, 0, 0, 1, &cancelCls); ret_val = JS_NewObject(ctx); JS_SetPropertyStr(ctx, ret_val, "requestId", requestId);