This is an automated email from the ASF dual-hosted git repository.

mxmanghi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tcl-rivet.git


The following commit(s) were added to refs/heads/master by this push:
     new d7175c5  add current loglevel in server array
d7175c5 is described below

commit d7175c5e5a684057e3f27895f267c2f3a858c51c
Author: Massimo Manghi <mxman...@apache.org>
AuthorDate: Tue Apr 13 16:49:28 2021 +0200

    add current loglevel in server array
---
 ChangeLog                       |   4 ++
 src/mod_rivet_ng/rivetInspect.c | 135 ++++++++++++++++++----------------------
 2 files changed, 66 insertions(+), 73 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 5d1b270..f6a1a6d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2021-04-13 Massimo Manghi <mxman...@apache.org>
+    * src/mod_rivet_ng/rivetInspect.c: add server current loglevel. Removed
+    unneeded ref count management in the server array construction
+
 2021-03-07 Massimo Manghi <mxman...@apache.org>
     * VERSION: bumped version as 3.2.1
     * src/mod_rivet_ng/mod_rivet.c: more linear determination of the bridge 
name
diff --git a/src/mod_rivet_ng/rivetInspect.c b/src/mod_rivet_ng/rivetInspect.c
index 1451768..ef7614f 100644
--- a/src/mod_rivet_ng/rivetInspect.c
+++ b/src/mod_rivet_ng/rivetInspect.c
@@ -34,56 +34,69 @@
 #include "http_main.h"
 #include "util_script.h"
 #include "http_config.h"
+#include "http_log.h"
 
 #include "mod_rivet.h"
 
+static const char* loglevel_defs[] =
+{
+    "emerg",
+    "alert",
+    "crit",
+    "err",
+    "warning",
+    "notice",
+    "info",
+    "debug",
+};
+
 /* These arrays must be kept aligned. confDirectives must be NULL terminated */
 
 static const char* confDirectives[] = 
 { 
-                    "ServerInitScript", 
-                    "GlobalInitScript",
-                    "ChildInitScript",
-                    "ChildExitScript",
-                    "BeforeScript",
-                    "AfterScript",
-                    "AfterEveryScript",
-                    "AbortScript",
-                    "ErrorScript",
-                    "UploadMaxSize",
-                    "UploadDirectory",
-                    "UploadFilesToVar",
-                    "SeparateVirtualInterps",
-                    "SeparateChannels",
-                    "HonorHeaderOnlyRequests",
-                    "MpmBridge",
-                    "RequestHandler",
-                    "ExportRivetNS",
-                    "ImportRivetNS",
-                    NULL 
+    "ServerInitScript", 
+    "GlobalInitScript",
+    "ChildInitScript",
+    "ChildExitScript",
+    "BeforeScript",
+    "AfterScript",
+    "AfterEveryScript",
+    "AbortScript",
+    "ErrorScript",
+    "UploadMaxSize",
+    "UploadDirectory",
+    "UploadFilesToVar",
+    "SeparateVirtualInterps",
+    "SeparateChannels",
+    "HonorHeaderOnlyRequests",
+    "MpmBridge",
+    "RequestHandler",
+    "ExportRivetNS",
+    "ImportRivetNS",
+    NULL 
 };
 
 enum confIndices {
-                    server_init_script,
-                    global_init_script,
-                    child_init_script,
-                    child_exit_script,
-                    before_script,
-                    after_script,
-                    after_every_script,
-                    abort_script,
-                    error_script,
-                    upload_max,
-                    upload_directory,
-                    upload_files_to_var,
-                    separate_virtual_interps,
-                    separate_channels,
-                    honor_header_only_requests,
-                    mpm_bridge,
-                    request_handler,
-                    export_rivet_ns,
-                    import_rivet_ns,
-                    conf_index_terminator 
+    server_init_script,
+    global_init_script,
+    child_init_script,
+    child_exit_script,
+    before_script,
+    after_script,
+    after_every_script,
+    abort_script,
+    error_script,
+    upload_max,
+    upload_directory,
+    upload_files_to_var,
+    separate_virtual_interps,
+    separate_channels,
+    honor_header_only_requests,
+    mpm_bridge,
+    request_handler,
+    export_rivet_ns,
+    import_rivet_ns,
+    conf_index_terminator 
 };
 
 extern mod_rivet_globals* module_globals;
@@ -150,13 +163,14 @@ Rivet_ReadConfParameter ( Tcl_Interp*        interp,
         default: return NULL;
     }
 
-    /* this case is a bit convoluted and needs a more linear coding. 
-     * Basically: if the function hasn't returned (default branch in the 
'switch' selector)
-     * that means the arguent was valid. Since any integer parameter would 
produce a valid Tcl_Obj
-     * pointer if both the int_value and string_value pointers are NULL that 
means the value
-     * was a NULL pointer to a string value. We therefore return an empty 
string 
+    /*
+     * In the configuration record any integer valued parameter has a defined 
integer default, whereas
+     * string parameters have NULL as default. If we got here but both the 
these pointers are NULL
+     * it means a valid string valued configuration parameter was inspected 
but since it's NULL we
+     * return an empty string
      */
 
+
     if ((string_value == NULL) && (int_value == NULL))
     {
         return Tcl_NewStringObj("",-1);
@@ -399,52 +413,27 @@ Rivet_CurrentServerRec (Tcl_Interp* interp, server_rec* s 
)
 
     field_value = Tcl_NewStringObj(s->server_hostname,-1);
     field_name  = Tcl_NewStringObj("hostname",-1);
-    Tcl_IncrRefCount(field_value);
-    Tcl_IncrRefCount(field_name);
-
     Tcl_DictObjPut(interp,dictObj,field_name,field_value);
 
-    Tcl_DecrRefCount(field_value);
-    Tcl_DecrRefCount(field_name);
-
     field_value = Tcl_NewStringObj(s->error_fname,-1);
     field_name  = Tcl_NewStringObj("errorlog",-1);
-    Tcl_IncrRefCount(field_value);
-    Tcl_IncrRefCount(field_name);
-
     Tcl_DictObjPut(interp,dictObj,field_name,field_value);
 
-    Tcl_DecrRefCount(field_value);
-    Tcl_DecrRefCount(field_name);
-
     field_value = Tcl_NewStringObj(s->server_admin,-1);
     field_name  = Tcl_NewStringObj("admin",-1);
-    Tcl_IncrRefCount(field_value);
-    Tcl_IncrRefCount(field_name);
-
     Tcl_DictObjPut(interp,dictObj,field_name,field_value);
 
-    Tcl_DecrRefCount(field_value);
-    Tcl_DecrRefCount(field_name);
-
     field_value = Tcl_NewStringObj(s->path,-1);
     field_name  = Tcl_NewStringObj("server_path",-1);
-    Tcl_IncrRefCount(field_value);
-    Tcl_IncrRefCount(field_name);
-
     Tcl_DictObjPut(interp,dictObj,field_name,field_value);
 
-    Tcl_DecrRefCount(field_value);
-    Tcl_DecrRefCount(field_name);
-
     field_value = Tcl_NewIntObj(s->is_virtual);
     field_name  = Tcl_NewStringObj("virtual",-1);
-    Tcl_IncrRefCount(field_value);
-    Tcl_IncrRefCount(field_name);
+    Tcl_DictObjPut(interp,dictObj,field_name,field_value);
 
+    field_value = Tcl_NewStringObj(loglevel_defs[s->log.level],-1);
+    field_name  = Tcl_NewStringObj("loglevel",-1);
     Tcl_DictObjPut(interp,dictObj,field_name,field_value);
 
-    Tcl_DecrRefCount(field_value);
-    Tcl_DecrRefCount(field_name);
     return dictObj;
 }

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@tcl.apache.org
For additional commands, e-mail: commits-h...@tcl.apache.org

Reply via email to