[sr-dev] git:master:77bf2478: core: select - added function to print select for error purposes

Daniel-Constantin Mierla miconda at gmail.com
Sat Jan 21 19:55:40 CET 2017


Module: kamailio
Branch: master
Commit: 77bf2478893bb935e0ca09d93df75b404417d3bd
URL: https://github.com/kamailio/kamailio/commit/77bf2478893bb935e0ca09d93df75b404417d3bd

Author: Daniel-Constantin Mierla <miconda at gmail.com>
Committer: Daniel-Constantin Mierla <miconda at gmail.com>
Date: 2017-01-21T19:49:47+01:00

core: select - added function to print select for error purposes

---

Modified: src/core/select.c
Modified: src/core/select.h

---

Diff:  https://github.com/kamailio/kamailio/commit/77bf2478893bb935e0ca09d93df75b404417d3bd.diff
Patch: https://github.com/kamailio/kamailio/commit/77bf2478893bb935e0ca09d93df75b404417d3bd.patch

---

diff --git a/src/core/select.c b/src/core/select.c
index 1bf1e6a..bf3e567 100644
--- a/src/core/select.c
+++ b/src/core/select.c
@@ -428,18 +428,28 @@ int run_select(str* res, select_t* s, struct sip_msg* msg)
 	return ret;
 }
 
-void print_select(select_t* s)
+void log_select(select_t* s, int level)
 {
 	int i;
-	DBG("select(");
+	LOG(level, "select(");
 	for(i = 0; i < s->n; i++) {
 		if (s->params[i].type == SEL_PARAM_INT) {
-			DBG("%d,", s->params[i].v.i);
+			LOG(level, "%d,", s->params[i].v.i);
 		} else {
-			DBG("%.*s,", s->params[i].v.s.len, s->params[i].v.s.s);
+			LOG(level, "%.*s,", s->params[i].v.s.len, s->params[i].v.s.s);
 		}
 	}
-	DBG(")\n");
+	LOG(level, ")\n");
+}
+
+void print_select(select_t* s)
+{
+	log_select(s, L_DBG);
+}
+
+void err_select(select_t* s)
+{
+	log_select(s, L_ERR);
 }
 
 int register_select_table(select_row_t* mod_tab)
diff --git a/src/core/select.h b/src/core/select.h
index 5d639d6..74c68e4 100644
--- a/src/core/select.h
+++ b/src/core/select.h
@@ -13,8 +13,8 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  *
- * You should have received a copy of the GNU General Public License 
- * along with this program; if not, write to the Free Software 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  *
  */
@@ -26,7 +26,7 @@
  * Module: \ref core
  */
 
- 
+
 #ifndef _SELECT_H
 #define _SELECT_H
 
@@ -36,7 +36,7 @@
 #define MAX_SELECT_PARAMS 32
 #define MAX_NESTED_CALLS  4
 
-/* Flags for parser table FLAG bitfiels 
+/* Flags for parser table FLAG bitfiels
  */
 #define DIVERSION_MASK   0x00FF
 
@@ -75,12 +75,12 @@
 
 /* left function is noted to be called
  * rigth function continues in resolution
- * NOTE: the parameter is not consumed for PARENT, 
+ * NOTE: the parameter is not consumed for PARENT,
  * so you can leave it as ..,SEL_PARAM_INT, 0,..
  *
  * run_select then calls all functions with PARENT flag
- * in the order of resolution until the final call or 
- * the result is != 0 (<0 error, 1 null str) 
+ * in the order of resolution until the final call or
+ * the result is != 0 (<0 error, 1 null str)
  * the only one parameter passed between nested calls
  * is the result str*
  */
@@ -102,13 +102,13 @@ typedef enum {
 	SEL_PARAM_DIV,  /* Integer value got from parsing table */
 	SEL_PARAM_PTR   /* void* data got from e.g. fixup call */
 } select_param_type_t;
-	
+
 typedef union {
 	int i;  /* Integer value */
 	str s;  /* String value */
 	void* p;/* Any data ptr */
 } select_param_value_t;
-	
+
 typedef struct sel_param {
         select_param_type_t type;
         select_param_value_t v;
@@ -164,11 +164,16 @@ int resolve_select(select_t* s);
 int run_select(str* res, select_t* s, struct sip_msg* msg);
 
 /*
- * Print select for debugging purposes 
+ * Print select for debugging purposes
  */
 void print_select(select_t* s);
 
 /*
+ * Print select for error purposes
+ */
+void err_select(select_t* s);
+
+/*
  * Register modules' own select parser table
  */
 int register_select_table(select_row_t *table);
@@ -191,7 +196,7 @@ int parse_select (char** p, select_t** s);
 void free_select(select_t *s);
 /*
  * Select parser, result is stored in SHARED memory
- * 
+ *
  * If you call this, you must ensure, that the string which
  * is beeing parsed MUST be at the same place for all child
  * processes, e.g. allocated in the shared memory as well




More information about the sr-dev mailing list