Browse code

app_jsdt: implemented the handling of KEMI functions with 5 parameters

Daniel-Constantin Mierla authored on 16/05/2019 07:09:44
Showing 1 changed files
... ...
@@ -1297,8 +1297,47 @@ int sr_kemi_jsdt_exec_func_ex(duk_context *J, sr_kemi_t *ket)
1297 1297
 					&& ket->ptypes[3]==SR_KEMIP_STR
1298 1298
 					&& ket->ptypes[4]==SR_KEMIP_STR) {
1299 1299
 				ret = ((sr_kemi_fmsssss_f)(ket->func))(env_J->msg,
1300
-						&vps[0].s, &vps[1].s, &vps[2].s, &vps[3].s,
1301
-						&vps[4].s);
1300
+						&vps[0].s, &vps[1].s, &vps[2].s, &vps[3].s, &vps[4].s);
1301
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1302
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1303
+					&& ket->ptypes[1]==SR_KEMIP_STR
1304
+					&& ket->ptypes[2]==SR_KEMIP_STR
1305
+					&& ket->ptypes[3]==SR_KEMIP_STR
1306
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1307
+				ret = ((sr_kemi_fmssssn_f)(ket->func))(env_J->msg,
1308
+						&vps[0].s, &vps[1].s, &vps[2].s, &vps[3].s, vps[4].n);
1309
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1310
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1311
+					&& ket->ptypes[1]==SR_KEMIP_STR
1312
+					&& ket->ptypes[2]==SR_KEMIP_STR
1313
+					&& ket->ptypes[3]==SR_KEMIP_INT
1314
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
1315
+				ret = ((sr_kemi_fmsssns_f)(ket->func))(env_J->msg,
1316
+						&vps[0].s, &vps[1].s, &vps[2].s, vps[3].n, &vps[4].s);
1317
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1318
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1319
+					&& ket->ptypes[1]==SR_KEMIP_STR
1320
+					&& ket->ptypes[2]==SR_KEMIP_STR
1321
+					&& ket->ptypes[3]==SR_KEMIP_INT
1322
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1323
+				ret = ((sr_kemi_fmsssnn_f)(ket->func))(env_J->msg,
1324
+						&vps[0].s, &vps[1].s, &vps[2].s, vps[3].n, vps[4].n);
1325
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1326
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1327
+					&& ket->ptypes[1]==SR_KEMIP_STR
1328
+					&& ket->ptypes[2]==SR_KEMIP_INT
1329
+					&& ket->ptypes[3]==SR_KEMIP_STR
1330
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
1331
+				ret = ((sr_kemi_fmssnss_f)(ket->func))(env_J->msg,
1332
+						&vps[0].s, &vps[1].s, vps[2].n, &vps[3].s, &vps[4].s);
1333
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1334
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1335
+					&& ket->ptypes[1]==SR_KEMIP_STR
1336
+					&& ket->ptypes[2]==SR_KEMIP_INT
1337
+					&& ket->ptypes[3]==SR_KEMIP_STR
1338
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1339
+				ret = ((sr_kemi_fmssnsn_f)(ket->func))(env_J->msg,
1340
+						&vps[0].s, &vps[1].s, vps[2].n, &vps[3].s, vps[4].n);
1302 1341
 				return sr_kemi_jsdt_return_int(J, ket, ret);
1303 1342
 			} else if(ket->ptypes[0]==SR_KEMIP_STR
1304 1343
 					&& ket->ptypes[1]==SR_KEMIP_STR
... ...
@@ -1306,13 +1345,210 @@ int sr_kemi_jsdt_exec_func_ex(duk_context *J, sr_kemi_t *ket)
1306 1306
 					&& ket->ptypes[3]==SR_KEMIP_INT
1307 1307
 					&& ket->ptypes[4]==SR_KEMIP_STR) {
1308 1308
 				ret = ((sr_kemi_fmssnns_f)(ket->func))(env_J->msg,
1309
-						&vps[0].s, &vps[1].s, vps[2].n, vps[3].n,
1310
-						&vps[4].s);
1309
+						&vps[0].s, &vps[1].s, vps[2].n, vps[3].n, &vps[4].s);
1310
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1311
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1312
+					&& ket->ptypes[1]==SR_KEMIP_STR
1313
+					&& ket->ptypes[2]==SR_KEMIP_INT
1314
+					&& ket->ptypes[3]==SR_KEMIP_INT
1315
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1316
+				ret = ((sr_kemi_fmssnnn_f)(ket->func))(env_J->msg,
1317
+						&vps[0].s, &vps[1].s, vps[2].n, vps[3].n, vps[4].n);
1318
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1319
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1320
+					&& ket->ptypes[1]==SR_KEMIP_INT
1321
+					&& ket->ptypes[2]==SR_KEMIP_STR
1322
+					&& ket->ptypes[3]==SR_KEMIP_STR
1323
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
1324
+				ret = ((sr_kemi_fmsnsss_f)(ket->func))(env_J->msg,
1325
+						&vps[0].s, vps[1].n, &vps[2].s, &vps[3].s, &vps[4].s);
1326
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1327
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1328
+					&& ket->ptypes[1]==SR_KEMIP_INT
1329
+					&& ket->ptypes[2]==SR_KEMIP_STR
1330
+					&& ket->ptypes[3]==SR_KEMIP_STR
1331
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1332
+				ret = ((sr_kemi_fmsnssn_f)(ket->func))(env_J->msg,
1333
+						&vps[0].s, vps[1].n, &vps[2].s, &vps[3].s, vps[4].n);
1334
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1335
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1336
+					&& ket->ptypes[1]==SR_KEMIP_INT
1337
+					&& ket->ptypes[2]==SR_KEMIP_STR
1338
+					&& ket->ptypes[3]==SR_KEMIP_INT
1339
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
1340
+				ret = ((sr_kemi_fmsnsns_f)(ket->func))(env_J->msg,
1341
+						&vps[0].s, vps[1].n, &vps[2].s, vps[3].n, &vps[4].s);
1342
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1343
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1344
+					&& ket->ptypes[1]==SR_KEMIP_INT
1345
+					&& ket->ptypes[2]==SR_KEMIP_STR
1346
+					&& ket->ptypes[3]==SR_KEMIP_INT
1347
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1348
+				ret = ((sr_kemi_fmsnsnn_f)(ket->func))(env_J->msg,
1349
+						&vps[0].s, vps[1].n, &vps[2].s, vps[3].n, vps[4].n);
1350
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1351
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1352
+					&& ket->ptypes[1]==SR_KEMIP_INT
1353
+					&& ket->ptypes[2]==SR_KEMIP_INT
1354
+					&& ket->ptypes[3]==SR_KEMIP_STR
1355
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
1356
+				ret = ((sr_kemi_fmsnnss_f)(ket->func))(env_J->msg,
1357
+						&vps[0].s, vps[1].n, vps[2].n, &vps[3].s, &vps[4].s);
1358
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1359
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1360
+					&& ket->ptypes[1]==SR_KEMIP_INT
1361
+					&& ket->ptypes[2]==SR_KEMIP_INT
1362
+					&& ket->ptypes[3]==SR_KEMIP_STR
1363
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1364
+				ret = ((sr_kemi_fmsnnsn_f)(ket->func))(env_J->msg,
1365
+						&vps[0].s, vps[1].n, vps[2].n, &vps[3].s, vps[4].n);
1366
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1367
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1368
+					&& ket->ptypes[1]==SR_KEMIP_INT
1369
+					&& ket->ptypes[2]==SR_KEMIP_INT
1370
+					&& ket->ptypes[3]==SR_KEMIP_INT
1371
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
1372
+				ret = ((sr_kemi_fmsnnns_f)(ket->func))(env_J->msg,
1373
+						&vps[0].s, vps[1].n, vps[2].n, vps[3].n, &vps[4].s);
1374
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1375
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1376
+					&& ket->ptypes[1]==SR_KEMIP_INT
1377
+					&& ket->ptypes[2]==SR_KEMIP_INT
1378
+					&& ket->ptypes[3]==SR_KEMIP_INT
1379
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1380
+				ret = ((sr_kemi_fmsnnnn_f)(ket->func))(env_J->msg,
1381
+						&vps[0].s, vps[1].n, vps[2].n, vps[3].n, vps[4].n);
1382
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1383
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1384
+					&& ket->ptypes[1]==SR_KEMIP_STR
1385
+					&& ket->ptypes[2]==SR_KEMIP_STR
1386
+					&& ket->ptypes[3]==SR_KEMIP_STR
1387
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
1388
+				ret = ((sr_kemi_fmnssss_f)(ket->func))(env_J->msg,
1389
+						vps[0].n, &vps[1].s, &vps[2].s, &vps[3].s, &vps[4].s);
1390
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1391
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1392
+					&& ket->ptypes[1]==SR_KEMIP_STR
1393
+					&& ket->ptypes[2]==SR_KEMIP_STR
1394
+					&& ket->ptypes[3]==SR_KEMIP_STR
1395
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1396
+				ret = ((sr_kemi_fmnsssn_f)(ket->func))(env_J->msg,
1397
+						vps[0].n, &vps[1].s, &vps[2].s, &vps[3].s, vps[4].n);
1398
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1399
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1400
+					&& ket->ptypes[1]==SR_KEMIP_STR
1401
+					&& ket->ptypes[2]==SR_KEMIP_STR
1402
+					&& ket->ptypes[3]==SR_KEMIP_INT
1403
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
1404
+				ret = ((sr_kemi_fmnssns_f)(ket->func))(env_J->msg,
1405
+						vps[0].n, &vps[1].s, &vps[2].s, vps[3].n, &vps[4].s);
1406
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1407
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1408
+					&& ket->ptypes[1]==SR_KEMIP_STR
1409
+					&& ket->ptypes[2]==SR_KEMIP_STR
1410
+					&& ket->ptypes[3]==SR_KEMIP_INT
1411
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1412
+				ret = ((sr_kemi_fmnssnn_f)(ket->func))(env_J->msg,
1413
+						vps[0].n, &vps[1].s, &vps[2].s, vps[3].n, vps[4].n);
1414
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1415
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1416
+					&& ket->ptypes[1]==SR_KEMIP_STR
1417
+					&& ket->ptypes[2]==SR_KEMIP_INT
1418
+					&& ket->ptypes[3]==SR_KEMIP_STR
1419
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
1420
+				ret = ((sr_kemi_fmnsnss_f)(ket->func))(env_J->msg,
1421
+						vps[0].n, &vps[1].s, vps[2].n, &vps[3].s, &vps[4].s);
1422
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1423
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1424
+					&& ket->ptypes[1]==SR_KEMIP_STR
1425
+					&& ket->ptypes[2]==SR_KEMIP_INT
1426
+					&& ket->ptypes[3]==SR_KEMIP_STR
1427
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1428
+				ret = ((sr_kemi_fmnsnsn_f)(ket->func))(env_J->msg,
1429
+						vps[0].n, &vps[1].s, vps[2].n, &vps[3].s, vps[4].n);
1430
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1431
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1432
+					&& ket->ptypes[1]==SR_KEMIP_STR
1433
+					&& ket->ptypes[2]==SR_KEMIP_INT
1434
+					&& ket->ptypes[3]==SR_KEMIP_INT
1435
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
1436
+				ret = ((sr_kemi_fmnsnns_f)(ket->func))(env_J->msg,
1437
+						vps[0].n, &vps[1].s, vps[2].n, vps[3].n, &vps[4].s);
1438
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1439
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1440
+					&& ket->ptypes[1]==SR_KEMIP_STR
1441
+					&& ket->ptypes[2]==SR_KEMIP_INT
1442
+					&& ket->ptypes[3]==SR_KEMIP_INT
1443
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1444
+				ret = ((sr_kemi_fmnsnnn_f)(ket->func))(env_J->msg,
1445
+						vps[0].n, &vps[1].s, vps[2].n, vps[3].n, vps[4].n);
1446
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1447
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1448
+					&& ket->ptypes[1]==SR_KEMIP_INT
1449
+					&& ket->ptypes[2]==SR_KEMIP_STR
1450
+					&& ket->ptypes[3]==SR_KEMIP_STR
1451
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
1452
+				ret = ((sr_kemi_fmnnsss_f)(ket->func))(env_J->msg,
1453
+						vps[0].n, vps[1].n, &vps[2].s, &vps[3].s, &vps[4].s);
1454
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1455
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1456
+					&& ket->ptypes[1]==SR_KEMIP_INT
1457
+					&& ket->ptypes[2]==SR_KEMIP_STR
1458
+					&& ket->ptypes[3]==SR_KEMIP_STR
1459
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1460
+				ret = ((sr_kemi_fmnnssn_f)(ket->func))(env_J->msg,
1461
+						vps[0].n, vps[1].n, &vps[2].s, &vps[3].s, vps[4].n);
1462
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1463
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1464
+					&& ket->ptypes[1]==SR_KEMIP_INT
1465
+					&& ket->ptypes[2]==SR_KEMIP_STR
1466
+					&& ket->ptypes[3]==SR_KEMIP_INT
1467
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
1468
+				ret = ((sr_kemi_fmnnsns_f)(ket->func))(env_J->msg,
1469
+						vps[0].n, vps[1].n, &vps[2].s, vps[3].n, &vps[4].s);
1470
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1471
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1472
+					&& ket->ptypes[1]==SR_KEMIP_INT
1473
+					&& ket->ptypes[2]==SR_KEMIP_STR
1474
+					&& ket->ptypes[3]==SR_KEMIP_INT
1475
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1476
+				ret = ((sr_kemi_fmnnsnn_f)(ket->func))(env_J->msg,
1477
+						vps[0].n, vps[1].n, &vps[2].s, vps[3].n, vps[4].n);
1478
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1479
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1480
+					&& ket->ptypes[1]==SR_KEMIP_INT
1481
+					&& ket->ptypes[2]==SR_KEMIP_INT
1482
+					&& ket->ptypes[3]==SR_KEMIP_STR
1483
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
1484
+				ret = ((sr_kemi_fmnnnss_f)(ket->func))(env_J->msg,
1485
+						vps[0].n, vps[1].n, vps[2].n, &vps[3].s, &vps[4].s);
1486
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1487
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1488
+					&& ket->ptypes[1]==SR_KEMIP_INT
1489
+					&& ket->ptypes[2]==SR_KEMIP_INT
1490
+					&& ket->ptypes[3]==SR_KEMIP_STR
1491
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1492
+				ret = ((sr_kemi_fmnnnsn_f)(ket->func))(env_J->msg,
1493
+						vps[0].n, vps[1].n, vps[2].n, &vps[3].s, vps[4].n);
1494
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1495
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1496
+					&& ket->ptypes[1]==SR_KEMIP_INT
1497
+					&& ket->ptypes[2]==SR_KEMIP_INT
1498
+					&& ket->ptypes[3]==SR_KEMIP_INT
1499
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
1500
+				ret = ((sr_kemi_fmnnnns_f)(ket->func))(env_J->msg,
1501
+						vps[0].n, vps[1].n, vps[2].n, vps[3].n, &vps[4].s);
1502
+				return sr_kemi_jsdt_return_int(J, ket, ret);
1503
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1504
+					&& ket->ptypes[1]==SR_KEMIP_INT
1505
+					&& ket->ptypes[2]==SR_KEMIP_INT
1506
+					&& ket->ptypes[3]==SR_KEMIP_INT
1507
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1508
+				ret = ((sr_kemi_fmnnnnn_f)(ket->func))(env_J->msg,
1509
+						vps[0].n, vps[1].n, vps[2].n, vps[3].n, vps[4].n);
1311 1510
 				return sr_kemi_jsdt_return_int(J, ket, ret);
1312
-
1313 1511
 			} else {
1314
-				LM_ERR("invalid parameters for: %.*s\n",
1315
-						fname->len, fname->s);
1512
+				LM_ERR("invalid parameters for: %.*s\n", fname->len, fname->s);
1316 1513
 				return app_jsdt_return_false(J);
1317 1514
 			}
1318 1515
 		break;