From f490cdf35765813ea23b15ae248853f76a5da172 Mon Sep 17 00:00:00 2001 From: WJ Liu <2306079+multiSnow@users.noreply.github.com> Date: Wed, 3 May 2023 21:04:23 +0800 Subject: Add alert function to pacrunner (#196) * add alert function to pacrunners * code style and commentgoit --- .../plugins/pacrunner-duktape/pacrunner-duktape.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/backend/plugins/pacrunner-duktape/pacrunner-duktape.c b/src/backend/plugins/pacrunner-duktape/pacrunner-duktape.c index 3676e48..3845fca 100644 --- a/src/backend/plugins/pacrunner-duktape/pacrunner-duktape.c +++ b/src/backend/plugins/pacrunner-duktape/pacrunner-duktape.c @@ -103,6 +103,24 @@ my_ip_address (duk_context *ctx) return duk_error (ctx, DUK_ERR_ERROR, "Unable to find hostname!"); } +static duk_ret_t +alert (duk_context *ctx) +{ + const char *str = NULL; + + /* do nothing if PX_DEBUG_PACALERT environment is not set */ + if (!getenv ("PX_DEBUG_PACALERT")) + return 0; + + /* only get first argument of alert() as string */ + str = duk_get_string (ctx, 0); + if (!str) + return 0; + + fprintf (stderr, "PAC-alert: %s\n", str); + return 0; +} + static void px_pacrunner_duktape_init (PxPacRunnerDuktape *self) { @@ -116,6 +134,9 @@ px_pacrunner_duktape_init (PxPacRunnerDuktape *self) duk_push_c_function (self->ctx, my_ip_address, 1); duk_put_global_string (self->ctx, "myIpAddress"); + duk_push_c_function (self->ctx, alert, 1); + duk_put_global_string (self->ctx, "alert"); + duk_push_string (self->ctx, JAVASCRIPT_ROUTINES); if (duk_peval_noresult (self->ctx)) goto error; -- cgit v1.2.1