summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWJ Liu <2306079+multiSnow@users.noreply.github.com>2023-05-03 21:04:23 +0800
committerGitHub <noreply@github.com>2023-05-03 15:04:23 +0200
commitf490cdf35765813ea23b15ae248853f76a5da172 (patch)
treeeefc449d717ed1946c530a8eea206b082e554f0d
parent74d02dd846d446003dc49356411ec45b4109503c (diff)
downloadlibproxy-git-f490cdf35765813ea23b15ae248853f76a5da172.tar.gz
Add alert function to pacrunner (#196)
* add alert function to pacrunners * code style and commentgoit
-rw-r--r--src/backend/plugins/pacrunner-duktape/pacrunner-duktape.c21
1 files changed, 21 insertions, 0 deletions
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;