summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorGeorge Joseph <gjoseph@digium.com>2017-01-26 18:52:31 -0600
committerGerrit Code Review <gerrit2@gerrit.digium.api>2017-01-26 18:52:31 -0600
commitb39c04fc02015ef66aa37f427bbd5c311ef10ae7 (patch)
treefcbacfa5886f1faf50a946acb48e39752d11f0dd /include
parentf5b31cb2ae8f67d0d3e1ded8fc78efe39631b8db (diff)
parent30cb4eb57fe25e14a14e99008f5706b0f994d10b (diff)
Merge "PJPROJECT logging: Fix detection of max supported log level." into 13
Diffstat (limited to 'include')
-rw-r--r--include/asterisk/options.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/include/asterisk/options.h b/include/asterisk/options.h
index 0f8c6f87e..950764e15 100644
--- a/include/asterisk/options.h
+++ b/include/asterisk/options.h
@@ -143,6 +143,33 @@ enum ast_option_flags {
*/
#define DEFAULT_PJ_LOG_MAX_LEVEL 2
+/*!
+ * \brief Get maximum log level pjproject was compiled with.
+ *
+ * \details
+ * Determine the maximum log level the pjproject we are running
+ * with supports.
+ *
+ * When pjproject is initially loaded the default log level in
+ * effect is the maximum log level the library was compiled to
+ * generate. We must save this value off somewhere before we
+ * change it to what we want to use as the default level.
+ *
+ * \note This must be done before calling pj_init() so the level
+ * we want to use as the default level is in effect while the
+ * library initializes.
+ */
+#define AST_PJPROJECT_INIT_LOG_LEVEL() \
+ do { \
+ if (ast_pjproject_max_log_level < 0) { \
+ ast_pjproject_max_log_level = pj_log_get_level(); \
+ } \
+ pj_log_set_level(ast_option_pjproject_log_level); \
+ } while (0)
+
+/*! Current linked pjproject maximum logging level */
+extern int ast_pjproject_max_log_level;
+
/*! Current pjproject logging level */
extern int ast_option_pjproject_log_level;