]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- Fix #333: Unbound Segmentation Fault w/ log_info Functions From
authorW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Thu, 22 Oct 2020 06:47:40 +0000 (08:47 +0200)
committerW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Thu, 22 Oct 2020 06:47:40 +0000 (08:47 +0200)
  Python Mod.

doc/Changelog
pythonmod/interface.i

index d3aa5d2adb8a3ce2c9a82194a3f36e7e668490a8..776643c46571ba5e8f9e603ff3f1a27d54c7a9f3 100644 (file)
@@ -1,3 +1,7 @@
+22 October 2020: Wouter
+       - Fix #333: Unbound Segmentation Fault w/ log_info Functions From
+         Python Mod.
+
 21 October 2020: George
        - Fix #327: net/if.h check fails on some darwin versions; contribution by
          Joshua Root.
index 71f2bf774d0ff444c80ebd42b4651047b447212b..cbee4f7147643ca4cc31e6f432fae11f589f2038 100644 (file)
@@ -1413,6 +1413,19 @@ struct delegpt* find_delegation(struct module_qstate* qstate, char *nm, size_t n
 /******************************
  * Various debugging functions *
  ******************************/
+
+/* rename the variadic functions because python does the formatting already*/
+%rename (unbound_log_info) log_info;
+%rename (unbound_log_err) log_err;
+%rename (unbound_log_warn) log_warn;
+%rename (unbound_verbose) verbose;
+/* provide functions that take one string as argument, so python can cook
+the string */
+%rename (log_info) pymod_log_info;
+%rename (log_warn) pymod_log_warn;
+%rename (log_err) pymod_log_err;
+%rename (verbose) pymod_verbose;
+
 void verbose(enum verbosity_value level, const char* format, ...);
 void log_info(const char* format, ...);
 void log_err(const char* format, ...);
@@ -1422,6 +1435,19 @@ void log_dns_msg(const char* str, struct query_info* qinfo, struct reply_info* r
 void log_query_info(enum verbosity_value v, const char* str, struct query_info* qinf);
 void regional_log_stats(struct regional *r);
 
+/* the one argument string log functions */
+void pymod_log_info(const char* str);
+void pymod_log_err(const char* str);
+void pymod_log_warn(const char* str);
+void pymod_verbose(enum verbosity_value level, const char* str);
+%{
+void pymod_log_info(const char* str) { log_info("%s", str); }
+void pymod_log_err(const char* str) { log_err("%s", str); }
+void pymod_log_warn(const char* str) { log_warn("%s", str); }
+void pymod_verbose(enum verbosity_value level, const char* str) {
+        verbose(level, "%s", str); }
+%}
+
 /***************************************************************************
  * Free allocated memory from marked sources returning corresponding types *
  ***************************************************************************/