[sr-dev] git:master: modules_k/alias_db: exported alias_db API for use in app_lua

Peter Dunkley peter.dunkley at crocodile-rcs.com
Wed Oct 19 12:50:00 CEST 2011


Module: sip-router
Branch: master
Commit: ac560678f44064bffb263e199f66029da926162b
URL:    http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=ac560678f44064bffb263e199f66029da926162b

Author: pd <peter.dunkley at crocodile-rcs.com>
Committer: pd <peter.dunkley at crocodile-rcs.com>
Date:   Wed Oct 19 11:40:20 2011 +0100

modules_k/alias_db: exported alias_db API for use in app_lua

---

 modules_k/alias_db/alias_db.c |   30 +++++++++++++++++++++++++++++-
 modules_k/alias_db/alookup.c  |   10 ++--------
 modules_k/alias_db/alookup.h  |    2 +-
 3 files changed, 32 insertions(+), 10 deletions(-)

diff --git a/modules_k/alias_db/alias_db.c b/modules_k/alias_db/alias_db.c
index 0606cd9..c36ce1f 100644
--- a/modules_k/alias_db/alias_db.c
+++ b/modules_k/alias_db/alias_db.c
@@ -38,6 +38,7 @@
 #include "../../mod_fix.h"
 
 #include "alookup.h"
+#include "api.h"
 
 MODULE_VERSION
 
@@ -53,6 +54,7 @@ static int child_init(int rank);
 /* Module initialization function prototype */
 static int mod_init(void);
 
+static int w_alias_db_lookup(struct sip_msg* _msg, char* _table, char* _str2);
 
 /* Module parameter variables */
 static str db_url       = str_init(DEFAULT_RODB_URL);
@@ -69,8 +71,10 @@ db_func_t adbf;  /* DB functions */
 
 /* Exported functions */
 static cmd_export_t cmds[] = {
-	{"alias_db_lookup", (cmd_function)alias_db_lookup, 1, fixup_spve_null, 0,
+	{"alias_db_lookup", (cmd_function)w_alias_db_lookup, 1, fixup_spve_null, 0,
 		REQUEST_ROUTE|FAILURE_ROUTE},
+	{"bind_alias_db",   (cmd_function)bind_alias_db, 1, 0, 0,
+		0},
 	{0, 0, 0, 0, 0, 0}
 };
 
@@ -166,3 +170,27 @@ static void destroy(void)
 	}
 }
 
+static int w_alias_db_lookup(struct sip_msg* _msg, char* _table, char* _str2)
+{
+        str table_s;
+
+        if(_table==NULL || fixup_get_svalue(_msg, (gparam_p)_table, &table_s)!=0)
+        {
+                LM_ERR("invalid table parameter\n");
+                return -1;
+        }
+
+        return alias_db_lookup(_msg, table_s);
+}
+
+int bind_alias_db(struct alias_db_binds *pxb)
+{
+        if (pxb == NULL)
+        {
+                LM_WARN("bind_alias_db: Cannot load alias_db API into a NULL pointer\n");
+                return -1;
+        }
+
+        pxb->alias_db_lookup = alias_db_lookup;
+        return 0;
+}
diff --git a/modules_k/alias_db/alookup.c b/modules_k/alias_db/alookup.c
index 33bb65a..f353981 100644
--- a/modules_k/alias_db/alookup.c
+++ b/modules_k/alias_db/alookup.c
@@ -70,20 +70,14 @@ static inline int rewrite_ruri(struct sip_msg* _m, char* _s)
 /**
  *
  */
-int alias_db_lookup(struct sip_msg* _msg, char* _table, char* _str2)
+int alias_db_lookup(struct sip_msg* _msg, str table_s)
 {
-	str user_s, table_s;
+	str user_s;
 	db_key_t db_keys[2] = {&alias_user_column, &alias_domain_column};
 	db_val_t db_vals[2];
 	db_key_t db_cols[] = {&user_column, &domain_column};
 	db1_res_t* db_res = NULL;
 	int i;
-	
-	if(_table==NULL || fixup_get_svalue(_msg, (gparam_p)_table, &table_s)!=0)
-	{
-		LM_ERR("invalid table parameter\n");
-		return -1;
-	}
 
 	if (parse_sip_msg_uri(_msg) < 0)
 		return -1;
diff --git a/modules_k/alias_db/alookup.h b/modules_k/alias_db/alookup.h
index 0ff0d0d..e397186 100644
--- a/modules_k/alias_db/alookup.h
+++ b/modules_k/alias_db/alookup.h
@@ -32,6 +32,6 @@
 
 #include "../../parser/msg_parser.h"
 
-int alias_db_lookup(struct sip_msg* _msg, char* _table, char* _str2);
+int alias_db_lookup(struct sip_msg* _msg, str _table);
 
 #endif /* _ALOOKUP_H_ */




More information about the sr-dev mailing list