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