|
@@ -1295,85 +1295,104 @@ PyObject *sr_apy_kemi_exec_func_ex(sr_kemi_t *ket, PyObject *self, PyObject *arg
|
|
|
}
|
|
|
break;
|
|
|
case 3:
|
|
|
- if(ket->ptypes[0]==SR_KEMIP_INT) {
|
|
|
- if(ket->ptypes[1]==SR_KEMIP_INT) {
|
|
|
- if(ket->ptypes[2]==SR_KEMIP_INT) {
|
|
|
- /* nnn */
|
|
|
- ret = ((sr_kemi_fmnnn_f)(ket->func))(lmsg,
|
|
|
- vps[0].n, vps[1].n, vps[2].n);
|
|
|
- return sr_kemi_apy_return_int(ket, ret);
|
|
|
- } else if(ket->ptypes[2]==SR_KEMIP_STR) {
|
|
|
- /* nns */
|
|
|
- ret = ((sr_kemi_fmnns_f)(ket->func))(lmsg,
|
|
|
- vps[0].n, vps[1].n, &vps[2].s);
|
|
|
- return sr_kemi_apy_return_int(ket, ret);
|
|
|
- } else {
|
|
|
- LM_ERR("invalid parameters for: %.*s\n",
|
|
|
- fname.len, fname.s);
|
|
|
- return sr_kemi_apy_return_false();
|
|
|
- }
|
|
|
- } else if(ket->ptypes[1]==SR_KEMIP_STR) {
|
|
|
- if(ket->ptypes[2]==SR_KEMIP_INT) {
|
|
|
- /* nsn */
|
|
|
- ret = ((sr_kemi_fmnsn_f)(ket->func))(lmsg,
|
|
|
- vps[0].n, &vps[1].s, vps[2].n);
|
|
|
- return sr_kemi_apy_return_int(ket, ret);
|
|
|
- } else if(ket->ptypes[2]==SR_KEMIP_STR) {
|
|
|
- /* nss */
|
|
|
- ret = ((sr_kemi_fmnss_f)(ket->func))(lmsg,
|
|
|
- vps[0].n, &vps[1].s, &vps[2].s);
|
|
|
- return sr_kemi_apy_return_int(ket, ret);
|
|
|
- } else {
|
|
|
- LM_ERR("invalid parameters for: %.*s\n",
|
|
|
- fname.len, fname.s);
|
|
|
- return sr_kemi_apy_return_false();
|
|
|
- }
|
|
|
+ if(ket->ptypes[0]==SR_KEMIP_STR
|
|
|
+ && ket->ptypes[1]==SR_KEMIP_STR
|
|
|
+ && ket->ptypes[2]==SR_KEMIP_STR) {
|
|
|
+ if(ket->rtype==SR_KEMIP_XVAL) {
|
|
|
+ xret = ((sr_kemi_xfmsss_f)(ket->func))(lmsg,
|
|
|
+ &vps[0].s, &vps[1].s, &vps[2].s);
|
|
|
+ return sr_kemi_apy_return_xval(ket, xret);
|
|
|
} else {
|
|
|
- LM_ERR("invalid parameters for: %.*s\n",
|
|
|
- fname.len, fname.s);
|
|
|
- return sr_kemi_apy_return_false();
|
|
|
+ ret = ((sr_kemi_fmsss_f)(ket->func))(lmsg,
|
|
|
+ &vps[0].s, &vps[1].s, &vps[2].s);
|
|
|
+ return sr_kemi_apy_return_int(ket, ret);
|
|
|
}
|
|
|
- } else if(ket->ptypes[0]==SR_KEMIP_STR) {
|
|
|
- if(ket->ptypes[1]==SR_KEMIP_INT) {
|
|
|
- if(ket->ptypes[2]==SR_KEMIP_INT) {
|
|
|
- /* snn */
|
|
|
- ret = ((sr_kemi_fmsnn_f)(ket->func))(lmsg,
|
|
|
- &vps[0].s, vps[1].n, vps[2].n);
|
|
|
- return sr_kemi_apy_return_int(ket, ret);
|
|
|
- } else if(ket->ptypes[2]==SR_KEMIP_STR) {
|
|
|
- /* sns */
|
|
|
- ret = ((sr_kemi_fmsns_f)(ket->func))(lmsg,
|
|
|
- &vps[0].s, vps[1].n, &vps[2].s);
|
|
|
- return sr_kemi_apy_return_int(ket, ret);
|
|
|
- } else {
|
|
|
- LM_ERR("invalid parameters for: %.*s\n",
|
|
|
- fname.len, fname.s);
|
|
|
- return sr_kemi_apy_return_false();
|
|
|
- }
|
|
|
- } else if(ket->ptypes[1]==SR_KEMIP_STR) {
|
|
|
- if(ket->ptypes[2]==SR_KEMIP_INT) {
|
|
|
- /* ssn */
|
|
|
- ret = ((sr_kemi_fmssn_f)(ket->func))(lmsg,
|
|
|
- &vps[0].s, &vps[1].s, vps[2].n);
|
|
|
- return sr_kemi_apy_return_int(ket, ret);
|
|
|
- } else if(ket->ptypes[2]==SR_KEMIP_STR) {
|
|
|
- /* sss */
|
|
|
- ret = ((sr_kemi_fmsss_f)(ket->func))(lmsg,
|
|
|
- &vps[0].s, &vps[1].s, &vps[2].s);
|
|
|
- return sr_kemi_apy_return_int(ket, ret);
|
|
|
- } else {
|
|
|
- LM_ERR("invalid parameters for: %.*s\n",
|
|
|
- fname.len, fname.s);
|
|
|
- return sr_kemi_apy_return_false();
|
|
|
- }
|
|
|
+ } else if(ket->ptypes[0]==SR_KEMIP_STR
|
|
|
+ && ket->ptypes[1]==SR_KEMIP_STR
|
|
|
+ && ket->ptypes[2]==SR_KEMIP_INT) {
|
|
|
+ if(ket->rtype==SR_KEMIP_XVAL) {
|
|
|
+ xret = ((sr_kemi_xfmssn_f)(ket->func))(lmsg,
|
|
|
+ &vps[0].s, &vps[1].s, vps[2].n);
|
|
|
+ return sr_kemi_apy_return_xval(ket, xret);
|
|
|
} else {
|
|
|
- LM_ERR("invalid parameters for: %.*s\n",
|
|
|
- fname.len, fname.s);
|
|
|
- return sr_kemi_apy_return_false();
|
|
|
+ ret = ((sr_kemi_fmssn_f)(ket->func))(lmsg,
|
|
|
+ &vps[0].s, &vps[1].s, vps[2].n);
|
|
|
+ return sr_kemi_apy_return_int(ket, ret);
|
|
|
+ }
|
|
|
+ } else if(ket->ptypes[0]==SR_KEMIP_STR
|
|
|
+ && ket->ptypes[1]==SR_KEMIP_INT
|
|
|
+ && ket->ptypes[2]==SR_KEMIP_STR) {
|
|
|
+ if(ket->rtype==SR_KEMIP_XVAL) {
|
|
|
+ xret = ((sr_kemi_xfmsns_f)(ket->func))(lmsg,
|
|
|
+ &vps[0].s, vps[1].n, &vps[2].s);
|
|
|
+ return sr_kemi_apy_return_xval(ket, xret);
|
|
|
+ } else {
|
|
|
+ ret = ((sr_kemi_fmsns_f)(ket->func))(lmsg,
|
|
|
+ &vps[0].s, vps[1].n, &vps[2].s);
|
|
|
+ return sr_kemi_apy_return_int(ket, ret);
|
|
|
+ }
|
|
|
+ } else if(ket->ptypes[0]==SR_KEMIP_STR
|
|
|
+ && ket->ptypes[1]==SR_KEMIP_INT
|
|
|
+ && ket->ptypes[2]==SR_KEMIP_INT) {
|
|
|
+ if(ket->rtype==SR_KEMIP_XVAL) {
|
|
|
+ xret = ((sr_kemi_xfmsnn_f)(ket->func))(lmsg,
|
|
|
+ &vps[0].s, vps[1].n, vps[2].n);
|
|
|
+ return sr_kemi_apy_return_xval(ket, xret);
|
|
|
+ } else {
|
|
|
+ ret = ((sr_kemi_fmsnn_f)(ket->func))(lmsg,
|
|
|
+ &vps[0].s, vps[1].n, vps[2].n);
|
|
|
+ return sr_kemi_apy_return_int(ket, ret);
|
|
|
+ }
|
|
|
+ } else if(ket->ptypes[0]==SR_KEMIP_INT
|
|
|
+ && ket->ptypes[1]==SR_KEMIP_STR
|
|
|
+ && ket->ptypes[2]==SR_KEMIP_STR) {
|
|
|
+ if(ket->rtype==SR_KEMIP_XVAL) {
|
|
|
+ xret = ((sr_kemi_xfmnss_f)(ket->func))(lmsg,
|
|
|
+ vps[0].n, &vps[1].s, &vps[2].s);
|
|
|
+ return sr_kemi_apy_return_xval(ket, xret);
|
|
|
+ } else {
|
|
|
+ ret = ((sr_kemi_fmnss_f)(ket->func))(lmsg,
|
|
|
+ vps[0].n, &vps[1].s, &vps[2].s);
|
|
|
+ return sr_kemi_apy_return_int(ket, ret);
|
|
|
+ }
|
|
|
+ } else if(ket->ptypes[0]==SR_KEMIP_INT
|
|
|
+ && ket->ptypes[1]==SR_KEMIP_STR
|
|
|
+ && ket->ptypes[2]==SR_KEMIP_INT) {
|
|
|
+ if(ket->rtype==SR_KEMIP_XVAL) {
|
|
|
+ xret = ((sr_kemi_xfmnsn_f)(ket->func))(lmsg,
|
|
|
+ vps[0].n, &vps[1].s, vps[2].n);
|
|
|
+ return sr_kemi_apy_return_xval(ket, xret);
|
|
|
+ } else {
|
|
|
+ ret = ((sr_kemi_fmnsn_f)(ket->func))(lmsg,
|
|
|
+ vps[0].n, &vps[1].s, vps[2].n);
|
|
|
+ return sr_kemi_apy_return_int(ket, ret);
|
|
|
+ }
|
|
|
+ } else if(ket->ptypes[0]==SR_KEMIP_INT
|
|
|
+ && ket->ptypes[1]==SR_KEMIP_INT
|
|
|
+ && ket->ptypes[2]==SR_KEMIP_STR) {
|
|
|
+ if(ket->rtype==SR_KEMIP_XVAL) {
|
|
|
+ xret = ((sr_kemi_xfmnns_f)(ket->func))(lmsg,
|
|
|
+ vps[0].n, vps[1].n, &vps[2].s);
|
|
|
+ return sr_kemi_apy_return_xval(ket, xret);
|
|
|
+ } else {
|
|
|
+ ret = ((sr_kemi_fmnns_f)(ket->func))(lmsg,
|
|
|
+ vps[0].n, vps[1].n, &vps[2].s);
|
|
|
+ return sr_kemi_apy_return_int(ket, ret);
|
|
|
+ }
|
|
|
+ } else if(ket->ptypes[0]==SR_KEMIP_INT
|
|
|
+ && ket->ptypes[1]==SR_KEMIP_INT
|
|
|
+ && ket->ptypes[2]==SR_KEMIP_INT) {
|
|
|
+ if(ket->rtype==SR_KEMIP_XVAL) {
|
|
|
+ xret = ((sr_kemi_xfmnnn_f)(ket->func))(lmsg,
|
|
|
+ vps[0].n, vps[1].n, vps[2].n);
|
|
|
+ return sr_kemi_apy_return_xval(ket, xret);
|
|
|
+ } else {
|
|
|
+ ret = ((sr_kemi_fmnnn_f)(ket->func))(lmsg,
|
|
|
+ vps[0].n, vps[1].n, vps[2].n);
|
|
|
+ return sr_kemi_apy_return_int(ket, ret);
|
|
|
}
|
|
|
} else {
|
|
|
- LM_ERR("invalid parameters for: %.*s\n",
|
|
|
- fname.len, fname.s);
|
|
|
+ LM_ERR("invalid parameters for: %.*s\n", fname.len, fname.s);
|
|
|
return sr_kemi_apy_return_false();
|
|
|
}
|
|
|
break;
|