]> git.kaiwu.me - njs.git/commitdiff
Making ngx_js_logger() reusable by QuickJS code.
authorDmitry Volyntsev <xeioex@nginx.com>
Tue, 9 Jul 2024 06:38:28 +0000 (23:38 -0700)
committerDmitry Volyntsev <xeioexception@gmail.com>
Fri, 16 Aug 2024 15:26:45 +0000 (08:26 -0700)
nginx/ngx_js.c
nginx/ngx_js.h

index 9a20a6848e507563cc1e8a748b15fceebde9a755..4c1f29f3ab97153cbf46b18f6ae9f1fbceb0aae2 100644 (file)
@@ -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;
     }
 }
index beccbfdfe383dd9ca5269f479e776a908f2b9ee1..aad88b54c115c18dfc122f770258ab019e376ae3 100644 (file)
@@ -192,7 +192,7 @@ njs_int_t ngx_js_ext_log(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
     njs_index_t level, njs_value_t *retval);
 void ngx_js_log(njs_vm_t *vm, njs_external_ptr_t external,
     ngx_uint_t level, const char *fmt, ...);
-void ngx_js_logger(njs_vm_t *vm, njs_external_ptr_t external, ngx_uint_t level,
+void ngx_js_logger(ngx_connection_t *c, ngx_uint_t level,
     const u_char *start, size_t length);
 char * ngx_js_import(ngx_conf_t *cf, ngx_command_t *cmd, void *conf);
 char * ngx_js_preload_object(ngx_conf_t *cf, ngx_command_t *cmd, void *conf);