From 7ff08c140d5205ebecba3adb22c05e4a8486b64d Mon Sep 17 00:00:00 2001 From: Daniel-Constantin Mierla Date: Wed, 25 Sep 2019 15:11:30 +0200 Subject: [PATCH] app_python: implement missing types for 3 params (cherry picked from commit 261cb0f91e7a85bf56c64bbf929673c46197efcf) (cherry picked from commit 695bdaf4a0501c9b5d455052141f42f9f7d8b349) --- src/modules/app_python/apy_kemi.c | 47 +++++++++++++++++++++++-------- 1 file changed, 36 insertions(+), 11 deletions(-) diff --git a/src/modules/app_python/apy_kemi.c b/src/modules/app_python/apy_kemi.c index f998a544249..746a91b67bb 100644 --- a/src/modules/app_python/apy_kemi.c +++ b/src/modules/app_python/apy_kemi.c @@ -288,16 +288,16 @@ PyObject *sr_apy_kemi_exec_func(PyObject *self, PyObject *args, int idx) } LM_DBG("params[%d] for: %.*s are int-int-int: [%d] [%d] [%d]\n", i, fname.len, fname.s, vps[0].n, vps[1].n, vps[2].n); - } else if(ket->ptypes[0]==SR_KEMIP_INT && ket->ptypes[1]==SR_KEMIP_INT - && ket->ptypes[2]==SR_KEMIP_STR) { - if(!PyArg_ParseTuple(args, "iis:kemi-param-nns", &vps[0].n, - &vps[1].n, &vps[2].s.s)) { - LM_ERR("unable to retrieve int-int-str params %d\n", i); - return sr_kemi_apy_return_false(); - } - vps[2].s.len = strlen(vps[2].s.s); - LM_DBG("params[%d] for: %.*s are int-int-str: [%d] [%d] [%.*s]\n", i, - fname.len, fname.s, vps[0].n, vps[1].n, vps[2].s.len, vps[2].s.s); + } else if(ket->ptypes[0]==SR_KEMIP_INT && ket->ptypes[1]==SR_KEMIP_INT + && ket->ptypes[2]==SR_KEMIP_STR) { + if(!PyArg_ParseTuple(args, "iis:kemi-param-nns", &vps[0].n, + &vps[1].n, &vps[2].s.s)) { + LM_ERR("unable to retrieve int-int-str params %d\n", i); + return sr_kemi_apy_return_false(); + } + vps[2].s.len = strlen(vps[2].s.s); + LM_DBG("params[%d] for: %.*s are int-int-str: [%d] [%d] [%.*s]\n", i, + fname.len, fname.s, vps[0].n, vps[1].n, vps[2].s.len, vps[2].s.s); } else if(ket->ptypes[0]==SR_KEMIP_INT && ket->ptypes[1]==SR_KEMIP_STR && ket->ptypes[2]==SR_KEMIP_INT) { if(!PyArg_ParseTuple(args, "isi:kemi-param-nsn", &vps[0].n, @@ -308,6 +308,18 @@ PyObject *sr_apy_kemi_exec_func(PyObject *self, PyObject *args, int idx) vps[1].s.len = strlen(vps[1].s.s); LM_DBG("params[%d] for: %.*s are int-str-int: [%d] [%.*s] [%d]\n", i, fname.len, fname.s, vps[0].n, vps[1].s.len, vps[1].s.s, vps[2].n); + } else if(ket->ptypes[0]==SR_KEMIP_INT && ket->ptypes[1]==SR_KEMIP_STR + && ket->ptypes[2]==SR_KEMIP_STR) { + if(!PyArg_ParseTuple(args, "iss:kemi-param-nss", &vps[0].n, + &vps[1].s.s, &vps[2].s.s)) { + LM_ERR("unable to retrieve int-str-str param %d\n", i); + return sr_kemi_apy_return_false(); + } + vps[1].s.len = strlen(vps[1].s.s); + vps[2].s.len = strlen(vps[2].s.s); + LM_DBG("params[%d] for: %.*s are int-str-str: [%d] [%.*s]" + " [%.*s]\n", i, fname.len, fname.s, + vps[0].n, vps[1].s.len, vps[1].s.s, vps[2].s.len, vps[2].s.s); } else if(ket->ptypes[0]==SR_KEMIP_STR && ket->ptypes[1]==SR_KEMIP_INT && ket->ptypes[2]==SR_KEMIP_INT) { if(!PyArg_ParseTuple(args, "sii:kemi-param-snn", &vps[0].s.s, @@ -319,6 +331,19 @@ PyObject *sr_apy_kemi_exec_func(PyObject *self, PyObject *args, int idx) LM_DBG("params[%d] for: %.*s are str-int: [%.*s] [%d] [%d]\n", i, fname.len, fname.s, vps[0].s.len, vps[0].s.s, vps[1].n, vps[2].n); + } else if(ket->ptypes[0]==SR_KEMIP_STR && ket->ptypes[1]==SR_KEMIP_INT + && ket->ptypes[2]==SR_KEMIP_STR) { + if(!PyArg_ParseTuple(args, "sis:kemi-param-ssn", &vps[0].s.s, + &vps[1].n, &vps[2].s.s)) { + LM_ERR("unable to retrieve str-int-str param %d\n", i); + return sr_kemi_apy_return_false(); + } + vps[0].s.len = strlen(vps[0].s.s); + vps[2].s.len = strlen(vps[2].s.s); + LM_DBG("params[%d] for: %.*s are str-str-int: [%.*s] [%d] [%.*s]\n", + i, fname.len, fname.s, + vps[0].s.len, vps[0].s.s, + vps[1].n, vps[2].s.len, vps[2].s.s); } else if(ket->ptypes[0]==SR_KEMIP_STR && ket->ptypes[1]==SR_KEMIP_STR && ket->ptypes[2]==SR_KEMIP_INT) { if(!PyArg_ParseTuple(args, "ssi:kemi-param-ssn", &vps[0].s.s, @@ -342,7 +367,7 @@ PyObject *sr_apy_kemi_exec_func(PyObject *self, PyObject *args, int idx) vps[0].s.len = strlen(vps[0].s.s); vps[1].s.len = strlen(vps[1].s.s); vps[2].s.len = strlen(vps[2].s.s); - LM_DBG("params[%d] for: %.*s are str-str-int: [%.*s] [%.*s]" + LM_DBG("params[%d] for: %.*s are str-str-str: [%.*s] [%.*s]" " [%.*s]\n", i, fname.len, fname.s, vps[0].s.len, vps[0].s.s, vps[1].s.len, vps[1].s.s, vps[2].s.len, vps[2].s.s);