aboutsummaryrefslogtreecommitdiff
path: root/nginx/ngx_js.c
diff options
context:
space:
mode:
authorDmitry Volyntsev <xeioex@nginx.com>2024-07-08 23:38:28 -0700
committerDmitry Volyntsev <xeioexception@gmail.com>2024-08-16 08:26:45 -0700
commitd47f7beda262a63d0eef72839c5b2b545b0699d9 (patch)
treea287b0a7329df0e4dbe1a3ec4062eac8bcfa9841 /nginx/ngx_js.c
parent58b581461d8cc77037de9000e1dde9b74e314aee (diff)
downloadnjs-d47f7beda262a63d0eef72839c5b2b545b0699d9.tar.gz
njs-d47f7beda262a63d0eef72839c5b2b545b0699d9.zip
Making ngx_js_logger() reusable by QuickJS code.
Diffstat (limited to 'nginx/ngx_js.c')
-rw-r--r--nginx/ngx_js.c39
1 files changed, 24 insertions, 15 deletions
diff --git a/nginx/ngx_js.c b/nginx/ngx_js.c
index 9a20a684..4c1f29f3 100644
--- a/nginx/ngx_js.c
+++ b/nginx/ngx_js.c
@@ -815,10 +815,11 @@ njs_int_t
ngx_js_ext_log(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
njs_index_t magic, njs_value_t *retval)
{
- char *p;
- ngx_int_t lvl;
- njs_str_t msg;
- njs_uint_t n, level;
+ char *p;
+ ngx_int_t lvl;
+ njs_str_t msg;
+ njs_uint_t n, level;
+ ngx_connection_t *c;
p = njs_vm_external(vm, NJS_PROTO_ID_ANY, njs_argument(args, 0));
if (p == NULL) {
@@ -840,6 +841,8 @@ ngx_js_ext_log(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
n = 1;
}
+ c = ngx_external_connection(vm, p);
+
for (; n < nargs; n++) {
if (njs_vm_value_dump(vm, &msg, njs_argument(args, n), 1,
!!(magic & NGX_JS_LOG_DUMP))
@@ -848,7 +851,7 @@ ngx_js_ext_log(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
return NJS_ERROR;
}
- ngx_js_logger(vm, p, level, msg.start, msg.length);
+ ngx_js_logger(c, level, msg.start, msg.length);
}
njs_value_undefined_set(retval);
@@ -1185,30 +1188,36 @@ void
ngx_js_log(njs_vm_t *vm, njs_external_ptr_t external, ngx_uint_t level,
const char *fmt, ...)
{
- u_char *p;
- va_list args;
- u_char buf[NGX_MAX_ERROR_STR];
+ u_char *p;
+ va_list args;
+ ngx_connection_t *c;
+ u_char buf[NGX_MAX_ERROR_STR];
va_start(args, fmt);
p = njs_vsprintf(buf, buf + sizeof(buf), fmt, args);
va_end(args);
- ngx_js_logger(vm, external, level, buf, p - buf);
+ if (external != NULL) {
+ c = ngx_external_connection(vm, external);
+
+ } else {
+ c = NULL;
+ }
+
+ ngx_js_logger(c, level, buf, p - buf);
}
void
-ngx_js_logger(njs_vm_t *vm, njs_external_ptr_t external, ngx_uint_t level,
- const u_char *start, size_t length)
+ngx_js_logger(ngx_connection_t *c, ngx_uint_t level, const u_char *start,
+ size_t length)
{
ngx_log_t *log;
- ngx_connection_t *c;
ngx_log_handler_pt handler;
handler = NULL;
- if (external != NULL) {
- c = ngx_external_connection(vm, external);
+ if (c != NULL) {
log = c->log;
handler = log->handler;
log->handler = NULL;
@@ -1222,7 +1231,7 @@ ngx_js_logger(njs_vm_t *vm, njs_external_ptr_t external, ngx_uint_t level,
ngx_log_error(level, log, 0, "js: %*s", length, start);
- if (external != NULL) {
+ if (c != NULL) {
log->handler = handler;
}
}