Browse code

app_python3: implemented the handling of KEMI functions with 5 parameters

Daniel-Constantin Mierla authored on 16/05/2019 09:49:53
Showing 1 changed files
... ...
@@ -416,9 +416,8 @@ PyObject *sr_apy_kemi_exec_func_ex(sr_kemi_t *ket, PyObject *self, PyObject *arg
416 416
 				&& ket->ptypes[3]==SR_KEMIP_STR
417 417
 				&& ket->ptypes[4]==SR_KEMIP_STR) {
418 418
 			if(!PyArg_ParseTuple(args, "sssss:kemi-param-sssss",
419
-						&vps[0].s.s, &vps[1].s.s, &vps[2].s.s, &vps[3].s.s,
420
-						&vps[4].s.s)) {
421
-				LM_ERR("unable to retrieve str-str-str-str params %d\n", i);
419
+					&vps[0].s.s, &vps[1].s.s, &vps[2].s.s, &vps[3].s.s, &vps[4].s.s)) {
420
+				LM_ERR("unable to retrieve sssss params %d\n", i);
422 421
 				return sr_kemi_apy_return_false();
423 422
 			}
424 423
 			vps[0].s.len = strlen(vps[0].s.s);
... ...
@@ -426,32 +425,521 @@ PyObject *sr_apy_kemi_exec_func_ex(sr_kemi_t *ket, PyObject *self, PyObject *arg
426 426
 			vps[2].s.len = strlen(vps[2].s.s);
427 427
 			vps[3].s.len = strlen(vps[3].s.s);
428 428
 			vps[4].s.len = strlen(vps[4].s.s);
429
-			LM_DBG("params[%d] for: %.*s are str: [%.*s] [%.*s]"
430
-					" [%.*s] [%.*s] [%.*s]\n", i,
431
-				fname.len, fname.s, vps[0].s.len, vps[0].s.s,
432
-				vps[1].s.len, vps[1].s.s, vps[2].s.len, vps[2].s.s,
433
-				vps[3].s.len, vps[3].s.s, vps[4].s.len, vps[4].s.s);
429
+
430
+			LM_DBG("params[%d] for: %.*s are: [%s] [%s] [%s] [%s] [%s]\n",
431
+					i, fname.len, fname.s,
432
+					vps[0].s.s, vps[1].s.s, vps[2].s.s, vps[3].s.s, vps[4].s.s);
433
+		} else if(ket->ptypes[0]==SR_KEMIP_STR
434
+				&& ket->ptypes[1]==SR_KEMIP_STR
435
+				&& ket->ptypes[2]==SR_KEMIP_STR
436
+				&& ket->ptypes[3]==SR_KEMIP_STR
437
+				&& ket->ptypes[4]==SR_KEMIP_INT) {
438
+			if(!PyArg_ParseTuple(args, "ssssn:kemi-param-ssssn",
439
+					&vps[0].s.s, &vps[1].s.s, &vps[2].s.s, &vps[3].s.s, &vps[4].n)) {
440
+				LM_ERR("unable to retrieve ssssn params %d\n", i);
441
+				return sr_kemi_apy_return_false();
442
+			}
443
+			vps[0].s.len = strlen(vps[0].s.s);
444
+			vps[1].s.len = strlen(vps[1].s.s);
445
+			vps[2].s.len = strlen(vps[2].s.s);
446
+			vps[3].s.len = strlen(vps[3].s.s);
447
+
448
+			LM_DBG("params[%d] for: %.*s are: [%s] [%s] [%s] [%s] [%d]\n",
449
+					i, fname.len, fname.s,
450
+					vps[0].s.s, vps[1].s.s, vps[2].s.s, vps[3].s.s, vps[4].n);
451
+		} else if(ket->ptypes[0]==SR_KEMIP_STR
452
+				&& ket->ptypes[1]==SR_KEMIP_STR
453
+				&& ket->ptypes[2]==SR_KEMIP_STR
454
+				&& ket->ptypes[3]==SR_KEMIP_INT
455
+				&& ket->ptypes[4]==SR_KEMIP_STR) {
456
+			if(!PyArg_ParseTuple(args, "sssns:kemi-param-sssns",
457
+					&vps[0].s.s, &vps[1].s.s, &vps[2].s.s, &vps[3].n, &vps[4].s.s)) {
458
+				LM_ERR("unable to retrieve sssns params %d\n", i);
459
+				return sr_kemi_apy_return_false();
460
+			}
461
+			vps[0].s.len = strlen(vps[0].s.s);
462
+			vps[1].s.len = strlen(vps[1].s.s);
463
+			vps[2].s.len = strlen(vps[2].s.s);
464
+			vps[4].s.len = strlen(vps[4].s.s);
465
+
466
+			LM_DBG("params[%d] for: %.*s are: [%s] [%s] [%s] [%d] [%s]\n",
467
+					i, fname.len, fname.s,
468
+					vps[0].s.s, vps[1].s.s, vps[2].s.s, vps[3].n, vps[4].s.s);
469
+		} else if(ket->ptypes[0]==SR_KEMIP_STR
470
+				&& ket->ptypes[1]==SR_KEMIP_STR
471
+				&& ket->ptypes[2]==SR_KEMIP_STR
472
+				&& ket->ptypes[3]==SR_KEMIP_INT
473
+				&& ket->ptypes[4]==SR_KEMIP_INT) {
474
+			if(!PyArg_ParseTuple(args, "sssnn:kemi-param-sssnn",
475
+					&vps[0].s.s, &vps[1].s.s, &vps[2].s.s, &vps[3].n, &vps[4].n)) {
476
+				LM_ERR("unable to retrieve sssnn params %d\n", i);
477
+				return sr_kemi_apy_return_false();
478
+			}
479
+			vps[0].s.len = strlen(vps[0].s.s);
480
+			vps[1].s.len = strlen(vps[1].s.s);
481
+			vps[2].s.len = strlen(vps[2].s.s);
482
+
483
+			LM_DBG("params[%d] for: %.*s are: [%s] [%s] [%s] [%d] [%d]\n",
484
+					i, fname.len, fname.s,
485
+					vps[0].s.s, vps[1].s.s, vps[2].s.s, vps[3].n, vps[4].n);
486
+		} else if(ket->ptypes[0]==SR_KEMIP_STR
487
+				&& ket->ptypes[1]==SR_KEMIP_STR
488
+				&& ket->ptypes[2]==SR_KEMIP_INT
489
+				&& ket->ptypes[3]==SR_KEMIP_STR
490
+				&& ket->ptypes[4]==SR_KEMIP_STR) {
491
+			if(!PyArg_ParseTuple(args, "ssnss:kemi-param-ssnss",
492
+					&vps[0].s.s, &vps[1].s.s, &vps[2].n, &vps[3].s.s, &vps[4].s.s)) {
493
+				LM_ERR("unable to retrieve ssnss params %d\n", i);
494
+				return sr_kemi_apy_return_false();
495
+			}
496
+			vps[0].s.len = strlen(vps[0].s.s);
497
+			vps[1].s.len = strlen(vps[1].s.s);
498
+			vps[3].s.len = strlen(vps[3].s.s);
499
+			vps[4].s.len = strlen(vps[4].s.s);
500
+
501
+			LM_DBG("params[%d] for: %.*s are: [%s] [%s] [%d] [%s] [%s]\n",
502
+					i, fname.len, fname.s,
503
+					vps[0].s.s, vps[1].s.s, vps[2].n, vps[3].s.s, vps[4].s.s);
504
+		} else if(ket->ptypes[0]==SR_KEMIP_STR
505
+				&& ket->ptypes[1]==SR_KEMIP_STR
506
+				&& ket->ptypes[2]==SR_KEMIP_INT
507
+				&& ket->ptypes[3]==SR_KEMIP_STR
508
+				&& ket->ptypes[4]==SR_KEMIP_INT) {
509
+			if(!PyArg_ParseTuple(args, "ssnsn:kemi-param-ssnsn",
510
+					&vps[0].s.s, &vps[1].s.s, &vps[2].n, &vps[3].s.s, &vps[4].n)) {
511
+				LM_ERR("unable to retrieve ssnsn params %d\n", i);
512
+				return sr_kemi_apy_return_false();
513
+			}
514
+			vps[0].s.len = strlen(vps[0].s.s);
515
+			vps[1].s.len = strlen(vps[1].s.s);
516
+			vps[3].s.len = strlen(vps[3].s.s);
517
+
518
+			LM_DBG("params[%d] for: %.*s are: [%s] [%s] [%d] [%s] [%d]\n",
519
+					i, fname.len, fname.s,
520
+					vps[0].s.s, vps[1].s.s, vps[2].n, vps[3].s.s, vps[4].n);
434 521
 		} else if(ket->ptypes[0]==SR_KEMIP_STR
435 522
 				&& ket->ptypes[1]==SR_KEMIP_STR
436 523
 				&& ket->ptypes[2]==SR_KEMIP_INT
437 524
 				&& ket->ptypes[3]==SR_KEMIP_INT
438 525
 				&& ket->ptypes[4]==SR_KEMIP_STR) {
439
-			if(!PyArg_ParseTuple(args, "ssiis:kemi-param-ssnns",
440
-						&vps[0].s.s, &vps[1].s.s, &vps[2].n, &vps[3].n,
441
-						&vps[4].s.s)) {
442
-				LM_ERR("unable to retrieve str-str-int-int-str params %d\n", i);
526
+			if(!PyArg_ParseTuple(args, "ssnns:kemi-param-ssnns",
527
+					&vps[0].s.s, &vps[1].s.s, &vps[2].n, &vps[3].n, &vps[4].s.s)) {
528
+				LM_ERR("unable to retrieve ssnns params %d\n", i);
443 529
 				return sr_kemi_apy_return_false();
444 530
 			}
445 531
 			vps[0].s.len = strlen(vps[0].s.s);
446 532
 			vps[1].s.len = strlen(vps[1].s.s);
447 533
 			vps[4].s.len = strlen(vps[4].s.s);
448
-			LM_DBG("params[%d] for: %.*s are str: [%.*s] [%.*s]"
449
-					" [%d] [%d] [%.*s]\n", i,
450
-				fname.len, fname.s, vps[0].s.len, vps[0].s.s,
451
-				vps[1].s.len, vps[1].s.s, vps[2].n, vps[3].n,
452
-				vps[4].s.len, vps[4].s.s);
534
+
535
+			LM_DBG("params[%d] for: %.*s are: [%s] [%s] [%d] [%d] [%s]\n",
536
+					i, fname.len, fname.s,
537
+					vps[0].s.s, vps[1].s.s, vps[2].n, vps[3].n, vps[4].s.s);
538
+		} else if(ket->ptypes[0]==SR_KEMIP_STR
539
+				&& ket->ptypes[1]==SR_KEMIP_STR
540
+				&& ket->ptypes[2]==SR_KEMIP_INT
541
+				&& ket->ptypes[3]==SR_KEMIP_INT
542
+				&& ket->ptypes[4]==SR_KEMIP_INT) {
543
+			if(!PyArg_ParseTuple(args, "ssnnn:kemi-param-ssnnn",
544
+					&vps[0].s.s, &vps[1].s.s, &vps[2].n, &vps[3].n, &vps[4].n)) {
545
+				LM_ERR("unable to retrieve ssnnn params %d\n", i);
546
+				return sr_kemi_apy_return_false();
547
+			}
548
+			vps[0].s.len = strlen(vps[0].s.s);
549
+			vps[1].s.len = strlen(vps[1].s.s);
550
+
551
+			LM_DBG("params[%d] for: %.*s are: [%s] [%s] [%d] [%d] [%d]\n",
552
+					i, fname.len, fname.s,
553
+					vps[0].s.s, vps[1].s.s, vps[2].n, vps[3].n, vps[4].n);
554
+		} else if(ket->ptypes[0]==SR_KEMIP_STR
555
+				&& ket->ptypes[1]==SR_KEMIP_INT
556
+				&& ket->ptypes[2]==SR_KEMIP_STR
557
+				&& ket->ptypes[3]==SR_KEMIP_STR
558
+				&& ket->ptypes[4]==SR_KEMIP_STR) {
559
+			if(!PyArg_ParseTuple(args, "snsss:kemi-param-snsss",
560
+					&vps[0].s.s, &vps[1].n, &vps[2].s.s, &vps[3].s.s, &vps[4].s.s)) {
561
+				LM_ERR("unable to retrieve snsss params %d\n", i);
562
+				return sr_kemi_apy_return_false();
563
+			}
564
+			vps[0].s.len = strlen(vps[0].s.s);
565
+			vps[2].s.len = strlen(vps[2].s.s);
566
+			vps[3].s.len = strlen(vps[3].s.s);
567
+			vps[4].s.len = strlen(vps[4].s.s);
568
+
569
+			LM_DBG("params[%d] for: %.*s are: [%s] [%d] [%s] [%s] [%s]\n",
570
+					i, fname.len, fname.s,
571
+					vps[0].s.s, vps[1].n, vps[2].s.s, vps[3].s.s, vps[4].s.s);
572
+		} else if(ket->ptypes[0]==SR_KEMIP_STR
573
+				&& ket->ptypes[1]==SR_KEMIP_INT
574
+				&& ket->ptypes[2]==SR_KEMIP_STR
575
+				&& ket->ptypes[3]==SR_KEMIP_STR
576
+				&& ket->ptypes[4]==SR_KEMIP_INT) {
577
+			if(!PyArg_ParseTuple(args, "snssn:kemi-param-snssn",
578
+					&vps[0].s.s, &vps[1].n, &vps[2].s.s, &vps[3].s.s, &vps[4].n)) {
579
+				LM_ERR("unable to retrieve snssn params %d\n", i);
580
+				return sr_kemi_apy_return_false();
581
+			}
582
+			vps[0].s.len = strlen(vps[0].s.s);
583
+			vps[2].s.len = strlen(vps[2].s.s);
584
+			vps[3].s.len = strlen(vps[3].s.s);
585
+
586
+			LM_DBG("params[%d] for: %.*s are: [%s] [%d] [%s] [%s] [%d]\n",
587
+					i, fname.len, fname.s,
588
+					vps[0].s.s, vps[1].n, vps[2].s.s, vps[3].s.s, vps[4].n);
589
+		} else if(ket->ptypes[0]==SR_KEMIP_STR
590
+				&& ket->ptypes[1]==SR_KEMIP_INT
591
+				&& ket->ptypes[2]==SR_KEMIP_STR
592
+				&& ket->ptypes[3]==SR_KEMIP_INT
593
+				&& ket->ptypes[4]==SR_KEMIP_STR) {
594
+			if(!PyArg_ParseTuple(args, "snsns:kemi-param-snsns",
595
+					&vps[0].s.s, &vps[1].n, &vps[2].s.s, &vps[3].n, &vps[4].s.s)) {
596
+				LM_ERR("unable to retrieve snsns params %d\n", i);
597
+				return sr_kemi_apy_return_false();
598
+			}
599
+			vps[0].s.len = strlen(vps[0].s.s);
600
+			vps[2].s.len = strlen(vps[2].s.s);
601
+			vps[4].s.len = strlen(vps[4].s.s);
602
+
603
+			LM_DBG("params[%d] for: %.*s are: [%s] [%d] [%s] [%d] [%s]\n",
604
+					i, fname.len, fname.s,
605
+					vps[0].s.s, vps[1].n, vps[2].s.s, vps[3].n, vps[4].s.s);
606
+		} else if(ket->ptypes[0]==SR_KEMIP_STR
607
+				&& ket->ptypes[1]==SR_KEMIP_INT
608
+				&& ket->ptypes[2]==SR_KEMIP_STR
609
+				&& ket->ptypes[3]==SR_KEMIP_INT
610
+				&& ket->ptypes[4]==SR_KEMIP_INT) {
611
+			if(!PyArg_ParseTuple(args, "snsnn:kemi-param-snsnn",
612
+					&vps[0].s.s, &vps[1].n, &vps[2].s.s, &vps[3].n, &vps[4].n)) {
613
+				LM_ERR("unable to retrieve snsnn params %d\n", i);
614
+				return sr_kemi_apy_return_false();
615
+			}
616
+			vps[0].s.len = strlen(vps[0].s.s);
617
+			vps[2].s.len = strlen(vps[2].s.s);
618
+
619
+			LM_DBG("params[%d] for: %.*s are: [%s] [%d] [%s] [%d] [%d]\n",
620
+					i, fname.len, fname.s,
621
+					vps[0].s.s, vps[1].n, vps[2].s.s, vps[3].n, vps[4].n);
622
+		} else if(ket->ptypes[0]==SR_KEMIP_STR
623
+				&& ket->ptypes[1]==SR_KEMIP_INT
624
+				&& ket->ptypes[2]==SR_KEMIP_INT
625
+				&& ket->ptypes[3]==SR_KEMIP_STR
626
+				&& ket->ptypes[4]==SR_KEMIP_STR) {
627
+			if(!PyArg_ParseTuple(args, "snnss:kemi-param-snnss",
628
+					&vps[0].s.s, &vps[1].n, &vps[2].n, &vps[3].s.s, &vps[4].s.s)) {
629
+				LM_ERR("unable to retrieve snnss params %d\n", i);
630
+				return sr_kemi_apy_return_false();
631
+			}
632
+			vps[0].s.len = strlen(vps[0].s.s);
633
+			vps[3].s.len = strlen(vps[3].s.s);
634
+			vps[4].s.len = strlen(vps[4].s.s);
635
+
636
+			LM_DBG("params[%d] for: %.*s are: [%s] [%d] [%d] [%s] [%s]\n",
637
+					i, fname.len, fname.s,
638
+					vps[0].s.s, vps[1].n, vps[2].n, vps[3].s.s, vps[4].s.s);
639
+		} else if(ket->ptypes[0]==SR_KEMIP_STR
640
+				&& ket->ptypes[1]==SR_KEMIP_INT
641
+				&& ket->ptypes[2]==SR_KEMIP_INT
642
+				&& ket->ptypes[3]==SR_KEMIP_STR
643
+				&& ket->ptypes[4]==SR_KEMIP_INT) {
644
+			if(!PyArg_ParseTuple(args, "snnsn:kemi-param-snnsn",
645
+					&vps[0].s.s, &vps[1].n, &vps[2].n, &vps[3].s.s, &vps[4].n)) {
646
+				LM_ERR("unable to retrieve snnsn params %d\n", i);
647
+				return sr_kemi_apy_return_false();
648
+			}
649
+			vps[0].s.len = strlen(vps[0].s.s);
650
+			vps[3].s.len = strlen(vps[3].s.s);
651
+
652
+			LM_DBG("params[%d] for: %.*s are: [%s] [%d] [%d] [%s] [%d]\n",
653
+					i, fname.len, fname.s,
654
+					vps[0].s.s, vps[1].n, vps[2].n, vps[3].s.s, vps[4].n);
655
+		} else if(ket->ptypes[0]==SR_KEMIP_STR
656
+				&& ket->ptypes[1]==SR_KEMIP_INT
657
+				&& ket->ptypes[2]==SR_KEMIP_INT
658
+				&& ket->ptypes[3]==SR_KEMIP_INT
659
+				&& ket->ptypes[4]==SR_KEMIP_STR) {
660
+			if(!PyArg_ParseTuple(args, "snnns:kemi-param-snnns",
661
+					&vps[0].s.s, &vps[1].n, &vps[2].n, &vps[3].n, &vps[4].s.s)) {
662
+				LM_ERR("unable to retrieve snnns params %d\n", i);
663
+				return sr_kemi_apy_return_false();
664
+			}
665
+			vps[0].s.len = strlen(vps[0].s.s);
666
+			vps[4].s.len = strlen(vps[4].s.s);
667
+
668
+			LM_DBG("params[%d] for: %.*s are: [%s] [%d] [%d] [%d] [%s]\n",
669
+					i, fname.len, fname.s,
670
+					vps[0].s.s, vps[1].n, vps[2].n, vps[3].n, vps[4].s.s);
671
+		} else if(ket->ptypes[0]==SR_KEMIP_STR
672
+				&& ket->ptypes[1]==SR_KEMIP_INT
673
+				&& ket->ptypes[2]==SR_KEMIP_INT
674
+				&& ket->ptypes[3]==SR_KEMIP_INT
675
+				&& ket->ptypes[4]==SR_KEMIP_INT) {
676
+			if(!PyArg_ParseTuple(args, "snnnn:kemi-param-snnnn",
677
+					&vps[0].s.s, &vps[1].n, &vps[2].n, &vps[3].n, &vps[4].n)) {
678
+				LM_ERR("unable to retrieve snnnn params %d\n", i);
679
+				return sr_kemi_apy_return_false();
680
+			}
681
+			vps[0].s.len = strlen(vps[0].s.s);
682
+
683
+			LM_DBG("params[%d] for: %.*s are: [%s] [%d] [%d] [%d] [%d]\n",
684
+					i, fname.len, fname.s,
685
+					vps[0].s.s, vps[1].n, vps[2].n, vps[3].n, vps[4].n);
686
+		} else if(ket->ptypes[0]==SR_KEMIP_INT
687
+				&& ket->ptypes[1]==SR_KEMIP_STR
688
+				&& ket->ptypes[2]==SR_KEMIP_STR
689
+				&& ket->ptypes[3]==SR_KEMIP_STR
690
+				&& ket->ptypes[4]==SR_KEMIP_STR) {
691
+			if(!PyArg_ParseTuple(args, "nssss:kemi-param-nssss",
692
+					&vps[0].n, &vps[1].s.s, &vps[2].s.s, &vps[3].s.s, &vps[4].s.s)) {
693
+				LM_ERR("unable to retrieve nssss params %d\n", i);
694
+				return sr_kemi_apy_return_false();
695
+			}
696
+			vps[1].s.len = strlen(vps[1].s.s);
697
+			vps[2].s.len = strlen(vps[2].s.s);
698
+			vps[3].s.len = strlen(vps[3].s.s);
699
+			vps[4].s.len = strlen(vps[4].s.s);
700
+
701
+			LM_DBG("params[%d] for: %.*s are: [%d] [%s] [%s] [%s] [%s]\n",
702
+					i, fname.len, fname.s,
703
+					vps[0].n, vps[1].s.s, vps[2].s.s, vps[3].s.s, vps[4].s.s);
704
+		} else if(ket->ptypes[0]==SR_KEMIP_INT
705
+				&& ket->ptypes[1]==SR_KEMIP_STR
706
+				&& ket->ptypes[2]==SR_KEMIP_STR
707
+				&& ket->ptypes[3]==SR_KEMIP_STR
708
+				&& ket->ptypes[4]==SR_KEMIP_INT) {
709
+			if(!PyArg_ParseTuple(args, "nsssn:kemi-param-nsssn",
710
+					&vps[0].n, &vps[1].s.s, &vps[2].s.s, &vps[3].s.s, &vps[4].n)) {
711
+				LM_ERR("unable to retrieve nsssn params %d\n", i);
712
+				return sr_kemi_apy_return_false();
713
+			}
714
+			vps[1].s.len = strlen(vps[1].s.s);
715
+			vps[2].s.len = strlen(vps[2].s.s);
716
+			vps[3].s.len = strlen(vps[3].s.s);
717
+
718
+			LM_DBG("params[%d] for: %.*s are: [%d] [%s] [%s] [%s] [%d]\n",
719
+					i, fname.len, fname.s,
720
+					vps[0].n, vps[1].s.s, vps[2].s.s, vps[3].s.s, vps[4].n);
721
+		} else if(ket->ptypes[0]==SR_KEMIP_INT
722
+				&& ket->ptypes[1]==SR_KEMIP_STR
723
+				&& ket->ptypes[2]==SR_KEMIP_STR
724
+				&& ket->ptypes[3]==SR_KEMIP_INT
725
+				&& ket->ptypes[4]==SR_KEMIP_STR) {
726
+			if(!PyArg_ParseTuple(args, "nssns:kemi-param-nssns",
727
+					&vps[0].n, &vps[1].s.s, &vps[2].s.s, &vps[3].n, &vps[4].s.s)) {
728
+				LM_ERR("unable to retrieve nssns params %d\n", i);
729
+				return sr_kemi_apy_return_false();
730
+			}
731
+			vps[1].s.len = strlen(vps[1].s.s);
732
+			vps[2].s.len = strlen(vps[2].s.s);
733
+			vps[4].s.len = strlen(vps[4].s.s);
734
+
735
+			LM_DBG("params[%d] for: %.*s are: [%d] [%s] [%s] [%d] [%s]\n",
736
+					i, fname.len, fname.s,
737
+					vps[0].n, vps[1].s.s, vps[2].s.s, vps[3].n, vps[4].s.s);
738
+		} else if(ket->ptypes[0]==SR_KEMIP_INT
739
+				&& ket->ptypes[1]==SR_KEMIP_STR
740
+				&& ket->ptypes[2]==SR_KEMIP_STR
741
+				&& ket->ptypes[3]==SR_KEMIP_INT
742
+				&& ket->ptypes[4]==SR_KEMIP_INT) {
743
+			if(!PyArg_ParseTuple(args, "nssnn:kemi-param-nssnn",
744
+					&vps[0].n, &vps[1].s.s, &vps[2].s.s, &vps[3].n, &vps[4].n)) {
745
+				LM_ERR("unable to retrieve nssnn params %d\n", i);
746
+				return sr_kemi_apy_return_false();
747
+			}
748
+			vps[1].s.len = strlen(vps[1].s.s);
749
+			vps[2].s.len = strlen(vps[2].s.s);
750
+
751
+			LM_DBG("params[%d] for: %.*s are: [%d] [%s] [%s] [%d] [%d]\n",
752
+					i, fname.len, fname.s,
753
+					vps[0].n, vps[1].s.s, vps[2].s.s, vps[3].n, vps[4].n);
754
+		} else if(ket->ptypes[0]==SR_KEMIP_INT
755
+				&& ket->ptypes[1]==SR_KEMIP_STR
756
+				&& ket->ptypes[2]==SR_KEMIP_INT
757
+				&& ket->ptypes[3]==SR_KEMIP_STR
758
+				&& ket->ptypes[4]==SR_KEMIP_STR) {
759
+			if(!PyArg_ParseTuple(args, "nsnss:kemi-param-nsnss",
760
+					&vps[0].n, &vps[1].s.s, &vps[2].n, &vps[3].s.s, &vps[4].s.s)) {
761
+				LM_ERR("unable to retrieve nsnss params %d\n", i);
762
+				return sr_kemi_apy_return_false();
763
+			}
764
+			vps[1].s.len = strlen(vps[1].s.s);
765
+			vps[3].s.len = strlen(vps[3].s.s);
766
+			vps[4].s.len = strlen(vps[4].s.s);
767
+
768
+			LM_DBG("params[%d] for: %.*s are: [%d] [%s] [%d] [%s] [%s]\n",
769
+					i, fname.len, fname.s,
770
+					vps[0].n, vps[1].s.s, vps[2].n, vps[3].s.s, vps[4].s.s);
771
+		} else if(ket->ptypes[0]==SR_KEMIP_INT
772
+				&& ket->ptypes[1]==SR_KEMIP_STR
773
+				&& ket->ptypes[2]==SR_KEMIP_INT
774
+				&& ket->ptypes[3]==SR_KEMIP_STR
775
+				&& ket->ptypes[4]==SR_KEMIP_INT) {
776
+			if(!PyArg_ParseTuple(args, "nsnsn:kemi-param-nsnsn",
777
+					&vps[0].n, &vps[1].s.s, &vps[2].n, &vps[3].s.s, &vps[4].n)) {
778
+				LM_ERR("unable to retrieve nsnsn params %d\n", i);
779
+				return sr_kemi_apy_return_false();
780
+			}
781
+			vps[1].s.len = strlen(vps[1].s.s);
782
+			vps[3].s.len = strlen(vps[3].s.s);
783
+
784
+			LM_DBG("params[%d] for: %.*s are: [%d] [%s] [%d] [%s] [%d]\n",
785
+					i, fname.len, fname.s,
786
+					vps[0].n, vps[1].s.s, vps[2].n, vps[3].s.s, vps[4].n);
787
+		} else if(ket->ptypes[0]==SR_KEMIP_INT
788
+				&& ket->ptypes[1]==SR_KEMIP_STR
789
+				&& ket->ptypes[2]==SR_KEMIP_INT
790
+				&& ket->ptypes[3]==SR_KEMIP_INT
791
+				&& ket->ptypes[4]==SR_KEMIP_STR) {
792
+			if(!PyArg_ParseTuple(args, "nsnns:kemi-param-nsnns",
793
+					&vps[0].n, &vps[1].s.s, &vps[2].n, &vps[3].n, &vps[4].s.s)) {
794
+				LM_ERR("unable to retrieve nsnns params %d\n", i);
795
+				return sr_kemi_apy_return_false();
796
+			}
797
+			vps[1].s.len = strlen(vps[1].s.s);
798
+			vps[4].s.len = strlen(vps[4].s.s);
799
+
800
+			LM_DBG("params[%d] for: %.*s are: [%d] [%s] [%d] [%d] [%s]\n",
801
+					i, fname.len, fname.s,
802
+					vps[0].n, vps[1].s.s, vps[2].n, vps[3].n, vps[4].s.s);
803
+		} else if(ket->ptypes[0]==SR_KEMIP_INT
804
+				&& ket->ptypes[1]==SR_KEMIP_STR
805
+				&& ket->ptypes[2]==SR_KEMIP_INT
806
+				&& ket->ptypes[3]==SR_KEMIP_INT
807
+				&& ket->ptypes[4]==SR_KEMIP_INT) {
808
+			if(!PyArg_ParseTuple(args, "nsnnn:kemi-param-nsnnn",
809
+					&vps[0].n, &vps[1].s.s, &vps[2].n, &vps[3].n, &vps[4].n)) {
810
+				LM_ERR("unable to retrieve nsnnn params %d\n", i);
811
+				return sr_kemi_apy_return_false();
812
+			}
813
+			vps[1].s.len = strlen(vps[1].s.s);
814
+
815
+			LM_DBG("params[%d] for: %.*s are: [%d] [%s] [%d] [%d] [%d]\n",
816
+					i, fname.len, fname.s,
817
+					vps[0].n, vps[1].s.s, vps[2].n, vps[3].n, vps[4].n);
818
+		} else if(ket->ptypes[0]==SR_KEMIP_INT
819
+				&& ket->ptypes[1]==SR_KEMIP_INT
820
+				&& ket->ptypes[2]==SR_KEMIP_STR
821
+				&& ket->ptypes[3]==SR_KEMIP_STR
822
+				&& ket->ptypes[4]==SR_KEMIP_STR) {
823
+			if(!PyArg_ParseTuple(args, "nnsss:kemi-param-nnsss",
824
+					&vps[0].n, &vps[1].n, &vps[2].s.s, &vps[3].s.s, &vps[4].s.s)) {
825
+				LM_ERR("unable to retrieve nnsss params %d\n", i);
826
+				return sr_kemi_apy_return_false();
827
+			}
828
+			vps[2].s.len = strlen(vps[2].s.s);
829
+			vps[3].s.len = strlen(vps[3].s.s);
830
+			vps[4].s.len = strlen(vps[4].s.s);
831
+
832
+			LM_DBG("params[%d] for: %.*s are: [%d] [%d] [%s] [%s] [%s]\n",
833
+					i, fname.len, fname.s,
834
+					vps[0].n, vps[1].n, vps[2].s.s, vps[3].s.s, vps[4].s.s);
835
+		} else if(ket->ptypes[0]==SR_KEMIP_INT
836
+				&& ket->ptypes[1]==SR_KEMIP_INT
837
+				&& ket->ptypes[2]==SR_KEMIP_STR
838
+				&& ket->ptypes[3]==SR_KEMIP_STR
839
+				&& ket->ptypes[4]==SR_KEMIP_INT) {
840
+			if(!PyArg_ParseTuple(args, "nnssn:kemi-param-nnssn",
841
+					&vps[0].n, &vps[1].n, &vps[2].s.s, &vps[3].s.s, &vps[4].n)) {
842
+				LM_ERR("unable to retrieve nnssn params %d\n", i);
843
+				return sr_kemi_apy_return_false();
844
+			}
845
+			vps[2].s.len = strlen(vps[2].s.s);
846
+			vps[3].s.len = strlen(vps[3].s.s);
847
+
848
+			LM_DBG("params[%d] for: %.*s are: [%d] [%d] [%s] [%s] [%d]\n",
849
+					i, fname.len, fname.s,
850
+					vps[0].n, vps[1].n, vps[2].s.s, vps[3].s.s, vps[4].n);
851
+		} else if(ket->ptypes[0]==SR_KEMIP_INT
852
+				&& ket->ptypes[1]==SR_KEMIP_INT
853
+				&& ket->ptypes[2]==SR_KEMIP_STR
854
+				&& ket->ptypes[3]==SR_KEMIP_INT
855
+				&& ket->ptypes[4]==SR_KEMIP_STR) {
856
+			if(!PyArg_ParseTuple(args, "nnsns:kemi-param-nnsns",
857
+					&vps[0].n, &vps[1].n, &vps[2].s.s, &vps[3].n, &vps[4].s.s)) {
858
+				LM_ERR("unable to retrieve nnsns params %d\n", i);
859
+				return sr_kemi_apy_return_false();
860
+			}
861
+			vps[2].s.len = strlen(vps[2].s.s);
862
+			vps[4].s.len = strlen(vps[4].s.s);
863
+
864
+			LM_DBG("params[%d] for: %.*s are: [%d] [%d] [%s] [%d] [%s]\n",
865
+					i, fname.len, fname.s,
866
+					vps[0].n, vps[1].n, vps[2].s.s, vps[3].n, vps[4].s.s);
867
+		} else if(ket->ptypes[0]==SR_KEMIP_INT
868
+				&& ket->ptypes[1]==SR_KEMIP_INT
869
+				&& ket->ptypes[2]==SR_KEMIP_STR
870
+				&& ket->ptypes[3]==SR_KEMIP_INT
871
+				&& ket->ptypes[4]==SR_KEMIP_INT) {
872
+			if(!PyArg_ParseTuple(args, "nnsnn:kemi-param-nnsnn",
873
+					&vps[0].n, &vps[1].n, &vps[2].s.s, &vps[3].n, &vps[4].n)) {
874
+				LM_ERR("unable to retrieve nnsnn params %d\n", i);
875
+				return sr_kemi_apy_return_false();
876
+			}
877
+			vps[2].s.len = strlen(vps[2].s.s);
878
+
879
+			LM_DBG("params[%d] for: %.*s are: [%d] [%d] [%s] [%d] [%d]\n",
880
+					i, fname.len, fname.s,
881
+					vps[0].n, vps[1].n, vps[2].s.s, vps[3].n, vps[4].n);
882
+		} else if(ket->ptypes[0]==SR_KEMIP_INT
883
+				&& ket->ptypes[1]==SR_KEMIP_INT
884
+				&& ket->ptypes[2]==SR_KEMIP_INT
885
+				&& ket->ptypes[3]==SR_KEMIP_STR
886
+				&& ket->ptypes[4]==SR_KEMIP_STR) {
887
+			if(!PyArg_ParseTuple(args, "nnnss:kemi-param-nnnss",
888
+					&vps[0].n, &vps[1].n, &vps[2].n, &vps[3].s.s, &vps[4].s.s)) {
889
+				LM_ERR("unable to retrieve nnnss params %d\n", i);
890
+				return sr_kemi_apy_return_false();
891
+			}
892
+			vps[3].s.len = strlen(vps[3].s.s);
893
+			vps[4].s.len = strlen(vps[4].s.s);
894
+
895
+			LM_DBG("params[%d] for: %.*s are: [%d] [%d] [%d] [%s] [%s]\n",
896
+					i, fname.len, fname.s,
897
+					vps[0].n, vps[1].n, vps[2].n, vps[3].s.s, vps[4].s.s);
898
+		} else if(ket->ptypes[0]==SR_KEMIP_INT
899
+				&& ket->ptypes[1]==SR_KEMIP_INT
900
+				&& ket->ptypes[2]==SR_KEMIP_INT
901
+				&& ket->ptypes[3]==SR_KEMIP_STR
902
+				&& ket->ptypes[4]==SR_KEMIP_INT) {
903
+			if(!PyArg_ParseTuple(args, "nnnsn:kemi-param-nnnsn",
904
+					&vps[0].n, &vps[1].n, &vps[2].n, &vps[3].s.s, &vps[4].n)) {
905
+				LM_ERR("unable to retrieve nnnsn params %d\n", i);
906
+				return sr_kemi_apy_return_false();
907
+			}
908
+			vps[3].s.len = strlen(vps[3].s.s);
909
+
910
+			LM_DBG("params[%d] for: %.*s are: [%d] [%d] [%d] [%s] [%d]\n",
911
+					i, fname.len, fname.s,
912
+					vps[0].n, vps[1].n, vps[2].n, vps[3].s.s, vps[4].n);
913
+		} else if(ket->ptypes[0]==SR_KEMIP_INT
914
+				&& ket->ptypes[1]==SR_KEMIP_INT
915
+				&& ket->ptypes[2]==SR_KEMIP_INT
916
+				&& ket->ptypes[3]==SR_KEMIP_INT
917
+				&& ket->ptypes[4]==SR_KEMIP_STR) {
918
+			if(!PyArg_ParseTuple(args, "nnnns:kemi-param-nnnns",
919
+					&vps[0].n, &vps[1].n, &vps[2].n, &vps[3].n, &vps[4].s.s)) {
920
+				LM_ERR("unable to retrieve nnnns params %d\n", i);
921
+				return sr_kemi_apy_return_false();
922
+			}
923
+			vps[4].s.len = strlen(vps[4].s.s);
924
+
925
+			LM_DBG("params[%d] for: %.*s are: [%d] [%d] [%d] [%d] [%s]\n",
926
+					i, fname.len, fname.s,
927
+					vps[0].n, vps[1].n, vps[2].n, vps[3].n, vps[4].s.s);
928
+		} else if(ket->ptypes[0]==SR_KEMIP_INT
929
+				&& ket->ptypes[1]==SR_KEMIP_INT
930
+				&& ket->ptypes[2]==SR_KEMIP_INT
931
+				&& ket->ptypes[3]==SR_KEMIP_INT
932
+				&& ket->ptypes[4]==SR_KEMIP_INT) {
933
+			if(!PyArg_ParseTuple(args, "nnnnn:kemi-param-nnnnn",
934
+					&vps[0].n, &vps[1].n, &vps[2].n, &vps[3].n, &vps[4].n)) {
935
+				LM_ERR("unable to retrieve nnnnn params %d\n", i);
936
+				return sr_kemi_apy_return_false();
937
+			}
938
+
939
+			LM_DBG("params[%d] for: %.*s are: [%d] [%d] [%d] [%d] [%d]\n",
940
+					i, fname.len, fname.s,
941
+					vps[0].n, vps[1].n, vps[2].n, vps[3].n, vps[4].n);
453 942
 		} else {
454
-			LM_ERR("not implemented yet\n");
943
+			LM_ERR("invalid parameters for: %.*s\n", fname.len, fname.s);
455 944
 			return sr_kemi_apy_return_false();
456 945
 		}
457 946
 	} else {
... ...
@@ -691,24 +1179,259 @@ PyObject *sr_apy_kemi_exec_func_ex(sr_kemi_t *ket, PyObject *self, PyObject *arg
691 691
 					&& ket->ptypes[2]==SR_KEMIP_STR
692 692
 					&& ket->ptypes[3]==SR_KEMIP_STR
693 693
 					&& ket->ptypes[4]==SR_KEMIP_STR) {
694
-				/* sssss */
695 694
 				ret = ((sr_kemi_fmsssss_f)(ket->func))(lmsg,
696
-						&vps[0].s, &vps[1].s, &vps[2].s, &vps[3].s,
697
-						&vps[4].s);
695
+						&vps[0].s, &vps[1].s, &vps[2].s, &vps[3].s, &vps[4].s);
696
+				return sr_kemi_apy_return_int(ket, ret);
697
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
698
+					&& ket->ptypes[1]==SR_KEMIP_STR
699
+					&& ket->ptypes[2]==SR_KEMIP_STR
700
+					&& ket->ptypes[3]==SR_KEMIP_STR
701
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
702
+				ret = ((sr_kemi_fmssssn_f)(ket->func))(lmsg,
703
+						&vps[0].s, &vps[1].s, &vps[2].s, &vps[3].s, vps[4].n);
704
+				return sr_kemi_apy_return_int(ket, ret);
705
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
706
+					&& ket->ptypes[1]==SR_KEMIP_STR
707
+					&& ket->ptypes[2]==SR_KEMIP_STR
708
+					&& ket->ptypes[3]==SR_KEMIP_INT
709
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
710
+				ret = ((sr_kemi_fmsssns_f)(ket->func))(lmsg,
711
+						&vps[0].s, &vps[1].s, &vps[2].s, vps[3].n, &vps[4].s);
712
+				return sr_kemi_apy_return_int(ket, ret);
713
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
714
+					&& ket->ptypes[1]==SR_KEMIP_STR
715
+					&& ket->ptypes[2]==SR_KEMIP_STR
716
+					&& ket->ptypes[3]==SR_KEMIP_INT
717
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
718
+				ret = ((sr_kemi_fmsssnn_f)(ket->func))(lmsg,
719
+						&vps[0].s, &vps[1].s, &vps[2].s, vps[3].n, vps[4].n);
720
+				return sr_kemi_apy_return_int(ket, ret);
721
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
722
+					&& ket->ptypes[1]==SR_KEMIP_STR
723
+					&& ket->ptypes[2]==SR_KEMIP_INT
724
+					&& ket->ptypes[3]==SR_KEMIP_STR
725
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
726
+				ret = ((sr_kemi_fmssnss_f)(ket->func))(lmsg,
727
+						&vps[0].s, &vps[1].s, vps[2].n, &vps[3].s, &vps[4].s);
728
+				return sr_kemi_apy_return_int(ket, ret);
729
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
730
+					&& ket->ptypes[1]==SR_KEMIP_STR
731
+					&& ket->ptypes[2]==SR_KEMIP_INT
732
+					&& ket->ptypes[3]==SR_KEMIP_STR
733
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
734
+				ret = ((sr_kemi_fmssnsn_f)(ket->func))(lmsg,
735
+						&vps[0].s, &vps[1].s, vps[2].n, &vps[3].s, vps[4].n);
698 736
 				return sr_kemi_apy_return_int(ket, ret);
699 737
 			} else if(ket->ptypes[0]==SR_KEMIP_STR
700 738
 					&& ket->ptypes[1]==SR_KEMIP_STR
701 739
 					&& ket->ptypes[2]==SR_KEMIP_INT
702 740
 					&& ket->ptypes[3]==SR_KEMIP_INT
703 741
 					&& ket->ptypes[4]==SR_KEMIP_STR) {
704
-				/* sssss */
705 742
 				ret = ((sr_kemi_fmssnns_f)(ket->func))(lmsg,
706
-						&vps[0].s, &vps[1].s, vps[2].n, vps[3].n,
707
-						&vps[4].s);
743
+						&vps[0].s, &vps[1].s, vps[2].n, vps[3].n, &vps[4].s);
744
+				return sr_kemi_apy_return_int(ket, ret);
745
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
746
+					&& ket->ptypes[1]==SR_KEMIP_STR
747
+					&& ket->ptypes[2]==SR_KEMIP_INT
748
+					&& ket->ptypes[3]==SR_KEMIP_INT
749
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
750
+				ret = ((sr_kemi_fmssnnn_f)(ket->func))(lmsg,
751
+						&vps[0].s, &vps[1].s, vps[2].n, vps[3].n, vps[4].n);
752
+				return sr_kemi_apy_return_int(ket, ret);
753
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
754
+					&& ket->ptypes[1]==SR_KEMIP_INT
755
+					&& ket->ptypes[2]==SR_KEMIP_STR
756
+					&& ket->ptypes[3]==SR_KEMIP_STR
757
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
758
+				ret = ((sr_kemi_fmsnsss_f)(ket->func))(lmsg,
759
+						&vps[0].s, vps[1].n, &vps[2].s, &vps[3].s, &vps[4].s);
760
+				return sr_kemi_apy_return_int(ket, ret);
761
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
762
+					&& ket->ptypes[1]==SR_KEMIP_INT
763
+					&& ket->ptypes[2]==SR_KEMIP_STR
764
+					&& ket->ptypes[3]==SR_KEMIP_STR
765
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
766
+				ret = ((sr_kemi_fmsnssn_f)(ket->func))(lmsg,
767
+						&vps[0].s, vps[1].n, &vps[2].s, &vps[3].s, vps[4].n);
768
+				return sr_kemi_apy_return_int(ket, ret);
769
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
770
+					&& ket->ptypes[1]==SR_KEMIP_INT
771
+					&& ket->ptypes[2]==SR_KEMIP_STR
772
+					&& ket->ptypes[3]==SR_KEMIP_INT
773
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
774
+				ret = ((sr_kemi_fmsnsns_f)(ket->func))(lmsg,
775
+						&vps[0].s, vps[1].n, &vps[2].s, vps[3].n, &vps[4].s);
776
+				return sr_kemi_apy_return_int(ket, ret);
777
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
778
+					&& ket->ptypes[1]==SR_KEMIP_INT
779
+					&& ket->ptypes[2]==SR_KEMIP_STR
780
+					&& ket->ptypes[3]==SR_KEMIP_INT
781
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
782
+				ret = ((sr_kemi_fmsnsnn_f)(ket->func))(lmsg,
783
+						&vps[0].s, vps[1].n, &vps[2].s, vps[3].n, vps[4].n);
784
+				return sr_kemi_apy_return_int(ket, ret);
785
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
786
+					&& ket->ptypes[1]==SR_KEMIP_INT
787
+					&& ket->ptypes[2]==SR_KEMIP_INT
788
+					&& ket->ptypes[3]==SR_KEMIP_STR
789
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
790
+				ret = ((sr_kemi_fmsnnss_f)(ket->func))(lmsg,
791
+						&vps[0].s, vps[1].n, vps[2].n, &vps[3].s, &vps[4].s);
792
+				return sr_kemi_apy_return_int(ket, ret);
793
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
794
+					&& ket->ptypes[1]==SR_KEMIP_INT
795
+					&& ket->ptypes[2]==SR_KEMIP_INT
796
+					&& ket->ptypes[3]==SR_KEMIP_STR
797
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
798
+				ret = ((sr_kemi_fmsnnsn_f)(ket->func))(lmsg,
799
+						&vps[0].s, vps[1].n, vps[2].n, &vps[3].s, vps[4].n);
800
+				return sr_kemi_apy_return_int(ket, ret);
801
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
802
+					&& ket->ptypes[1]==SR_KEMIP_INT
803
+					&& ket->ptypes[2]==SR_KEMIP_INT
804
+					&& ket->ptypes[3]==SR_KEMIP_INT
805
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
806
+				ret = ((sr_kemi_fmsnnns_f)(ket->func))(lmsg,
807
+						&vps[0].s, vps[1].n, vps[2].n, vps[3].n, &vps[4].s);
808
+				return sr_kemi_apy_return_int(ket, ret);
809
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
810
+					&& ket->ptypes[1]==SR_KEMIP_INT
811
+					&& ket->ptypes[2]==SR_KEMIP_INT
812
+					&& ket->ptypes[3]==SR_KEMIP_INT
813
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
814
+				ret = ((sr_kemi_fmsnnnn_f)(ket->func))(lmsg,
815
+						&vps[0].s, vps[1].n, vps[2].n, vps[3].n, vps[4].n);
816
+				return sr_kemi_apy_return_int(ket, ret);
817
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
818
+					&& ket->ptypes[1]==SR_KEMIP_STR
819
+					&& ket->ptypes[2]==SR_KEMIP_STR
820
+					&& ket->ptypes[3]==SR_KEMIP_STR
821
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
822
+				ret = ((sr_kemi_fmnssss_f)(ket->func))(lmsg,
823
+						vps[0].n, &vps[1].s, &vps[2].s, &vps[3].s, &vps[4].s);
824
+				return sr_kemi_apy_return_int(ket, ret);
825
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
826
+					&& ket->ptypes[1]==SR_KEMIP_STR
827
+					&& ket->ptypes[2]==SR_KEMIP_STR
828
+					&& ket->ptypes[3]==SR_KEMIP_STR
829
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
830
+				ret = ((sr_kemi_fmnsssn_f)(ket->func))(lmsg,
831
+						vps[0].n, &vps[1].s, &vps[2].s, &vps[3].s, vps[4].n);
832
+				return sr_kemi_apy_return_int(ket, ret);
833
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
834
+					&& ket->ptypes[1]==SR_KEMIP_STR
835
+					&& ket->ptypes[2]==SR_KEMIP_STR
836
+					&& ket->ptypes[3]==SR_KEMIP_INT
837
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
838
+				ret = ((sr_kemi_fmnssns_f)(ket->func))(lmsg,
839
+						vps[0].n, &vps[1].s, &vps[2].s, vps[3].n, &vps[4].s);
840
+				return sr_kemi_apy_return_int(ket, ret);
841
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
842
+					&& ket->ptypes[1]==SR_KEMIP_STR
843
+					&& ket->ptypes[2]==SR_KEMIP_STR
844
+					&& ket->ptypes[3]==SR_KEMIP_INT
845
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
846
+				ret = ((sr_kemi_fmnssnn_f)(ket->func))(lmsg,
847
+						vps[0].n, &vps[1].s, &vps[2].s, vps[3].n, vps[4].n);
848
+				return sr_kemi_apy_return_int(ket, ret);
849
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
850
+					&& ket->ptypes[1]==SR_KEMIP_STR
851
+					&& ket->ptypes[2]==SR_KEMIP_INT
852
+					&& ket->ptypes[3]==SR_KEMIP_STR
853
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
854
+				ret = ((sr_kemi_fmnsnss_f)(ket->func))(lmsg,
855
+						vps[0].n, &vps[1].s, vps[2].n, &vps[3].s, &vps[4].s);
856
+				return sr_kemi_apy_return_int(ket, ret);
857
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
858
+					&& ket->ptypes[1]==SR_KEMIP_STR
859
+					&& ket->ptypes[2]==SR_KEMIP_INT
860
+					&& ket->ptypes[3]==SR_KEMIP_STR
861
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
862
+				ret = ((sr_kemi_fmnsnsn_f)(ket->func))(lmsg,
863
+						vps[0].n, &vps[1].s, vps[2].n, &vps[3].s, vps[4].n);
864
+				return sr_kemi_apy_return_int(ket, ret);
865
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
866
+					&& ket->ptypes[1]==SR_KEMIP_STR
867
+					&& ket->ptypes[2]==SR_KEMIP_INT
868
+					&& ket->ptypes[3]==SR_KEMIP_INT
869
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
870
+				ret = ((sr_kemi_fmnsnns_f)(ket->func))(lmsg,
871
+						vps[0].n, &vps[1].s, vps[2].n, vps[3].n, &vps[4].s);
872
+				return sr_kemi_apy_return_int(ket, ret);
873
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
874
+					&& ket->ptypes[1]==SR_KEMIP_STR
875
+					&& ket->ptypes[2]==SR_KEMIP_INT
876
+					&& ket->ptypes[3]==SR_KEMIP_INT
877
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
878
+				ret = ((sr_kemi_fmnsnnn_f)(ket->func))(lmsg,
879
+						vps[0].n, &vps[1].s, vps[2].n, vps[3].n, vps[4].n);
880
+				return sr_kemi_apy_return_int(ket, ret);
881
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
882
+					&& ket->ptypes[1]==SR_KEMIP_INT
883
+					&& ket->ptypes[2]==SR_KEMIP_STR
884
+					&& ket->ptypes[3]==SR_KEMIP_STR
885
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
886
+				ret = ((sr_kemi_fmnnsss_f)(ket->func))(lmsg,
887
+						vps[0].n, vps[1].n, &vps[2].s, &vps[3].s, &vps[4].s);
888
+				return sr_kemi_apy_return_int(ket, ret);
889
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
890
+					&& ket->ptypes[1]==SR_KEMIP_INT
891
+					&& ket->ptypes[2]==SR_KEMIP_STR
892
+					&& ket->ptypes[3]==SR_KEMIP_STR
893
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
894
+				ret = ((sr_kemi_fmnnssn_f)(ket->func))(lmsg,
895
+						vps[0].n, vps[1].n, &vps[2].s, &vps[3].s, vps[4].n);
896
+				return sr_kemi_apy_return_int(ket, ret);
897
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
898
+					&& ket->ptypes[1]==SR_KEMIP_INT
899
+					&& ket->ptypes[2]==SR_KEMIP_STR
900
+					&& ket->ptypes[3]==SR_KEMIP_INT
901
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
902
+				ret = ((sr_kemi_fmnnsns_f)(ket->func))(lmsg,
903
+						vps[0].n, vps[1].n, &vps[2].s, vps[3].n, &vps[4].s);
904
+				return sr_kemi_apy_return_int(ket, ret);
905
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
906
+					&& ket->ptypes[1]==SR_KEMIP_INT
907
+					&& ket->ptypes[2]==SR_KEMIP_STR
908
+					&& ket->ptypes[3]==SR_KEMIP_INT
909
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
910
+				ret = ((sr_kemi_fmnnsnn_f)(ket->func))(lmsg,
911
+						vps[0].n, vps[1].n, &vps[2].s, vps[3].n, vps[4].n);
912
+				return sr_kemi_apy_return_int(ket, ret);
913
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
914
+					&& ket->ptypes[1]==SR_KEMIP_INT
915
+					&& ket->ptypes[2]==SR_KEMIP_INT
916
+					&& ket->ptypes[3]==SR_KEMIP_STR
917
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
918
+				ret = ((sr_kemi_fmnnnss_f)(ket->func))(lmsg,
919
+						vps[0].n, vps[1].n, vps[2].n, &vps[3].s, &vps[4].s);
920
+				return sr_kemi_apy_return_int(ket, ret);
921
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
922
+					&& ket->ptypes[1]==SR_KEMIP_INT
923
+					&& ket->ptypes[2]==SR_KEMIP_INT
924
+					&& ket->ptypes[3]==SR_KEMIP_STR
925
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
926
+				ret = ((sr_kemi_fmnnnsn_f)(ket->func))(lmsg,
927
+						vps[0].n, vps[1].n, vps[2].n, &vps[3].s, vps[4].n);
928
+				return sr_kemi_apy_return_int(ket, ret);
929
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
930
+					&& ket->ptypes[1]==SR_KEMIP_INT
931
+					&& ket->ptypes[2]==SR_KEMIP_INT
932
+					&& ket->ptypes[3]==SR_KEMIP_INT
933
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
934
+				ret = ((sr_kemi_fmnnnns_f)(ket->func))(lmsg,
935
+						vps[0].n, vps[1].n, vps[2].n, vps[3].n, &vps[4].s);
936
+				return sr_kemi_apy_return_int(ket, ret);
937
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
938
+					&& ket->ptypes[1]==SR_KEMIP_INT
939
+					&& ket->ptypes[2]==SR_KEMIP_INT
940
+					&& ket->ptypes[3]==SR_KEMIP_INT
941
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
942
+				ret = ((sr_kemi_fmnnnnn_f)(ket->func))(lmsg,
943
+						vps[0].n, vps[1].n, vps[2].n, vps[3].n, vps[4].n);
708 944
 				return sr_kemi_apy_return_int(ket, ret);
709 945
 			} else {
710
-				LM_ERR("invalid parameters for: %.*s\n",
711
-						fname.len, fname.s);
946
+				LM_ERR("invalid parameters for: %.*s\n", fname.len, fname.s);
712 947
 				return sr_kemi_apy_return_false();
713 948
 			}
714 949
 		break;