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