Module: kamailio
Branch: master
Commit: a5286513c56f2a6e94385cb75bff1fdca3110e93
URL:
https://github.com/kamailio/kamailio/commit/a5286513c56f2a6e94385cb75bff1fd…
Author: Camille Oudot <camille.oudot(a)orange.com>
Committer: Federico Cabiddu <fcabiddu(a)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/a5286513c56f2a6e94385cb75bff1fd…
Patch:
https://github.com/kamailio/kamailio/commit/a5286513c56f2a6e94385cb75bff1fd…
---
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(a)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(a)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*);