Browse code

app_jsdt: completed the handling of KEMI functions with 4 parameters

Daniel-Constantin Mierla authored on 16/05/2019 07:15:48
Showing 1 changed files
... ...
@@ -1245,12 +1245,40 @@ int sr_kemi_jsdt_exec_func_ex(duk_context *J, sr_kemi_t *ket)
1245 1245
 			} else if(ket->ptypes[0]==SR_KEMIP_STR
1246 1246
 					&& ket->ptypes[1]==SR_KEMIP_STR
1247 1247
 					&& ket->ptypes[2]==SR_KEMIP_INT
1248
+					&& ket->ptypes[3]==SR_KEMIP_STR) {
1249
+				ret = ((sr_kemi_fmssns_f)(ket->func))(env_J->msg,
1250
+						&vps[0].s, &vps[1].s, vps[2].n, &vps[3].s);
1251
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1252
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1253
+					&& ket->ptypes[1]==SR_KEMIP_STR
1254
+					&& ket->ptypes[2]==SR_KEMIP_INT
1248 1255
 					&& ket->ptypes[3]==SR_KEMIP_INT) {
1249 1256
 				ret = ((sr_kemi_fmssnn_f)(ket->func))(env_J->msg,
1250 1257
 						&vps[0].s, &vps[1].s, vps[2].n, vps[3].n);
1251 1258
 				return sr_kemi_jsdt_return_int(J, ket, ret);
1252 1259
 			} else if(ket->ptypes[0]==SR_KEMIP_STR
1253 1260
 					&& ket->ptypes[1]==SR_KEMIP_INT
1261
+					&& ket->ptypes[2]==SR_KEMIP_STR
1262
+					&& ket->ptypes[3]==SR_KEMIP_STR) {
1263
+				ret = ((sr_kemi_fmsnss_f)(ket->func))(env_J->msg,
1264
+						&vps[0].s, vps[1].n, &vps[2].s, &vps[3].s);
1265
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1266
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1267
+					&& ket->ptypes[1]==SR_KEMIP_INT
1268
+					&& ket->ptypes[2]==SR_KEMIP_STR
1269
+					&& ket->ptypes[3]==SR_KEMIP_INT) {
1270
+				ret = ((sr_kemi_fmsnsn_f)(ket->func))(env_J->msg,
1271
+						&vps[0].s, vps[1].n, &vps[2].s, vps[3].n);
1272
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1273
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1274
+					&& ket->ptypes[1]==SR_KEMIP_INT
1275
+					&& ket->ptypes[2]==SR_KEMIP_INT
1276
+					&& ket->ptypes[3]==SR_KEMIP_STR) {
1277
+				ret = ((sr_kemi_fmsnns_f)(ket->func))(env_J->msg,
1278
+						&vps[0].s, vps[1].n, vps[2].n, &vps[3].s);
1279
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1280
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1281
+					&& ket->ptypes[1]==SR_KEMIP_INT
1254 1282
 					&& ket->ptypes[2]==SR_KEMIP_INT
1255 1283
 					&& ket->ptypes[3]==SR_KEMIP_INT) {
1256 1284
 				ret = ((sr_kemi_fmsnnn_f)(ket->func))(env_J->msg,
... ...
@@ -1264,6 +1292,27 @@ int sr_kemi_jsdt_exec_func_ex(duk_context *J, sr_kemi_t *ket)
1264 1264
 						vps[0].n, &vps[1].s, &vps[2].s, &vps[3].s);
1265 1265
 				return sr_kemi_jsdt_return_int(J, ket, ret);
1266 1266
 			} else if(ket->ptypes[0]==SR_KEMIP_INT
1267
+					&& ket->ptypes[1]==SR_KEMIP_STR
1268
+					&& ket->ptypes[2]==SR_KEMIP_STR
1269
+					&& ket->ptypes[3]==SR_KEMIP_INT) {
1270
+				ret = ((sr_kemi_fmnssn_f)(ket->func))(env_J->msg,
1271
+						vps[0].n, &vps[1].s, &vps[2].s, vps[3].n);
1272
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1273
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1274
+					&& ket->ptypes[1]==SR_KEMIP_STR
1275
+					&& ket->ptypes[2]==SR_KEMIP_INT
1276
+					&& ket->ptypes[3]==SR_KEMIP_STR) {
1277
+				ret = ((sr_kemi_fmnsns_f)(ket->func))(env_J->msg,
1278
+						vps[0].n, &vps[1].s, vps[2].n, &vps[3].s);
1279
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1280
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1281
+					&& ket->ptypes[1]==SR_KEMIP_STR
1282
+					&& ket->ptypes[2]==SR_KEMIP_INT
1283
+					&& ket->ptypes[3]==SR_KEMIP_INT) {
1284
+				ret = ((sr_kemi_fmnsnn_f)(ket->func))(env_J->msg,
1285
+						vps[0].n, &vps[1].s, vps[2].n, vps[3].n);
1286
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1287
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1267 1288
 					&& ket->ptypes[1]==SR_KEMIP_INT
1268 1289
 					&& ket->ptypes[2]==SR_KEMIP_STR
1269 1290
 					&& ket->ptypes[3]==SR_KEMIP_STR) {
... ...
@@ -1272,6 +1321,13 @@ int sr_kemi_jsdt_exec_func_ex(duk_context *J, sr_kemi_t *ket)
1272 1272
 				return sr_kemi_jsdt_return_int(J, ket, ret);
1273 1273
 			} else if(ket->ptypes[0]==SR_KEMIP_INT
1274 1274
 					&& ket->ptypes[1]==SR_KEMIP_INT
1275
+					&& ket->ptypes[2]==SR_KEMIP_STR
1276
+					&& ket->ptypes[3]==SR_KEMIP_INT) {
1277
+				ret = ((sr_kemi_fmnnsn_f)(ket->func))(env_J->msg,
1278
+						vps[0].n, vps[1].n, &vps[2].s, vps[3].n);
1279
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1280
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1281
+					&& ket->ptypes[1]==SR_KEMIP_INT
1275 1282
 					&& ket->ptypes[2]==SR_KEMIP_INT
1276 1283
 					&& ket->ptypes[3]==SR_KEMIP_STR) {
1277 1284
 				ret = ((sr_kemi_fmnnns_f)(ket->func))(env_J->msg,
... ...
@@ -1285,8 +1341,7 @@ int sr_kemi_jsdt_exec_func_ex(duk_context *J, sr_kemi_t *ket)
1285 1285
 						vps[0].n, vps[1].n, vps[2].n, vps[3].n);
1286 1286
 				return sr_kemi_jsdt_return_int(J, ket, ret);
1287 1287
 			} else {
1288
-				LM_ERR("invalid parameters for: %.*s\n",
1289
-						fname->len, fname->s);
1288
+				LM_ERR("invalid parameters for: %.*s\n", fname->len, fname->s);
1290 1289
 				return app_jsdt_return_false(J);
1291 1290
 			}
1292 1291
 		break;