[sr-dev] git:master:a5286513: pv: export some PV functions

Federico Cabiddu fcabiddu at libon.com
Wed Feb 3 15:30:39 CET 2016


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

Author: Camille Oudot <camille.oudot at orange.com>
Committer: Federico Cabiddu <fcabiddu at libon.com>
Date: 2016-02-03T14:51:27+01:00

pv: export some PV functions

---

Added: modules/pv/pv_api.c
Added: modules/pv/pv_api.h
Modified: modules/pv/pv.c

---

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

---

diff --git a/modules/pv/pv.c b/modules/pv/pv.c
index 2ccc4ae..e8e717b 100644
--- a/modules/pv/pv.c
+++ b/modules/pv/pv.c
@@ -40,6 +40,7 @@
 #ifdef WITH_XAVP
 #include "pv_xavp.h"
 #endif
+#include "pv_api.h"
 
 MODULE_VERSION
 
@@ -502,6 +503,7 @@ static int w_var_to_xavp(sip_msg_t *msg, char *p1, char *p2);
 static int w_xavp_to_var(sip_msg_t *msg, char *p1);
 
 static int pv_init_rpc(void);
+int pv_register_api(pv_api_t*);
 
 static cmd_export_t cmds[]={
 	{"pv_isset",  (cmd_function)pv_isset,  1, fixup_pvar_null, 0, 
@@ -533,7 +535,8 @@ static cmd_export_t cmds[]={
 		ANY_ROUTE },
 	{"sbranch_reset",     (cmd_function)w_sbranch_reset,     0, 0, 0,
 		ANY_ROUTE },
-
+	/* API exports */
+	{"pv_register_api",   (cmd_function)pv_register_api,     NO_SCRIPT, 0, 0},
 	{0,0,0,0,0,0}
 };
 
diff --git a/modules/pv/pv_api.c b/modules/pv/pv_api.c
new file mode 100644
index 0000000..e153756
--- /dev/null
+++ b/modules/pv/pv_api.c
@@ -0,0 +1,41 @@
+/**
+ * Copyright 2016 (C) Orange
+ * <camille.oudot at orange.com>
+ *
+ * This file is part of Kamailio, a free SIP server.
+ *
+ * This file is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version
+ *
+ *
+ * This file is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * 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
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ */
+
+#include "pv_api.h"
+#include "pv_core.h"
+
+int pv_register_api(pv_api_t* api)
+{
+	if (!api)
+		return 0;
+
+	api->get_body_size = pv_get_body_size;
+	api->get_hdr = pv_get_hdr;
+	api->get_msg_body = pv_get_msg_body;
+	api->get_msg_buf = pv_get_msg_buf;
+	api->get_msg_len = pv_get_msg_len;
+	api->get_reason = pv_get_reason;
+	api->get_status = pv_get_status;
+	api->parse_hdr_name = pv_parse_hdr_name;
+	return 1;
+}
diff --git a/modules/pv/pv_api.h b/modules/pv/pv_api.h
new file mode 100644
index 0000000..2f1de8b
--- /dev/null
+++ b/modules/pv/pv_api.h
@@ -0,0 +1,37 @@
+/**
+ * Copyright 2016 (C) Orange
+ * <camille.oudot at orange.com>
+ *
+ * This file is part of Kamailio, a free SIP server.
+ *
+ * This file is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version
+ *
+ *
+ * This file is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * 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
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ */
+
+#include "../../pvar.h"
+
+typedef struct _pv_api {
+	pv_getf_t get_reason;
+	pv_getf_t get_hdr;
+	pv_parse_name_f parse_hdr_name;
+	pv_getf_t get_status;
+	pv_getf_t get_msg_body;
+	pv_getf_t get_body_size;
+	pv_getf_t get_msg_buf;
+	pv_getf_t get_msg_len;
+} pv_api_t;
+
+typedef int (*pv_register_api_t)(pv_api_t*);




More information about the sr-dev mailing list