diff options
author | WJ Liu <2306079+multiSnow@users.noreply.github.com> | 2023-05-03 21:04:23 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-03 15:04:23 +0200 |
commit | f490cdf35765813ea23b15ae248853f76a5da172 (patch) | |
tree | eefc449d717ed1946c530a8eea206b082e554f0d | |
parent | 74d02dd846d446003dc49356411ec45b4109503c (diff) | |
download | libproxy-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.c | 21 |
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; |