Browse code

app_lua: implemented the handling of KEMI functions with 5 parameters

Daniel-Constantin Mierla authored on 16/05/2019 07:32:44
Showing 1 changed files
... ...
@@ -1905,8 +1905,47 @@ int sr_kemi_lua_exec_func_ex(lua_State* L, sr_kemi_t *ket, int pdelta)
1905 1905
 					&& ket->ptypes[3]==SR_KEMIP_STR
1906 1906
 					&& ket->ptypes[4]==SR_KEMIP_STR) {
1907 1907
 				ret = ((sr_kemi_fmsssss_f)(ket->func))(env_L->msg,
1908
-						&vps[0].s, &vps[1].s, &vps[2].s, &vps[3].s,
1909
-						&vps[4].s);
1908
+						&vps[0].s, &vps[1].s, &vps[2].s, &vps[3].s, &vps[4].s);
1909
+				return sr_kemi_lua_return_int(L, ket, ret);
1910
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1911
+					&& ket->ptypes[1]==SR_KEMIP_STR
1912
+					&& ket->ptypes[2]==SR_KEMIP_STR
1913
+					&& ket->ptypes[3]==SR_KEMIP_STR
1914
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1915
+				ret = ((sr_kemi_fmssssn_f)(ket->func))(env_L->msg,
1916
+						&vps[0].s, &vps[1].s, &vps[2].s, &vps[3].s, vps[4].n);
1917
+				return sr_kemi_lua_return_int(L, ket, ret);
1918
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1919
+					&& ket->ptypes[1]==SR_KEMIP_STR
1920
+					&& ket->ptypes[2]==SR_KEMIP_STR
1921
+					&& ket->ptypes[3]==SR_KEMIP_INT
1922
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
1923
+				ret = ((sr_kemi_fmsssns_f)(ket->func))(env_L->msg,
1924
+						&vps[0].s, &vps[1].s, &vps[2].s, vps[3].n, &vps[4].s);
1925
+				return sr_kemi_lua_return_int(L, ket, ret);
1926
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1927
+					&& ket->ptypes[1]==SR_KEMIP_STR
1928
+					&& ket->ptypes[2]==SR_KEMIP_STR
1929
+					&& ket->ptypes[3]==SR_KEMIP_INT
1930
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1931
+				ret = ((sr_kemi_fmsssnn_f)(ket->func))(env_L->msg,
1932
+						&vps[0].s, &vps[1].s, &vps[2].s, vps[3].n, vps[4].n);
1933
+				return sr_kemi_lua_return_int(L, ket, ret);
1934
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1935
+					&& ket->ptypes[1]==SR_KEMIP_STR
1936
+					&& ket->ptypes[2]==SR_KEMIP_INT
1937
+					&& ket->ptypes[3]==SR_KEMIP_STR
1938
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
1939
+				ret = ((sr_kemi_fmssnss_f)(ket->func))(env_L->msg,
1940
+						&vps[0].s, &vps[1].s, vps[2].n, &vps[3].s, &vps[4].s);
1941
+				return sr_kemi_lua_return_int(L, ket, ret);
1942
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1943
+					&& ket->ptypes[1]==SR_KEMIP_STR
1944
+					&& ket->ptypes[2]==SR_KEMIP_INT
1945
+					&& ket->ptypes[3]==SR_KEMIP_STR
1946
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1947
+				ret = ((sr_kemi_fmssnsn_f)(ket->func))(env_L->msg,
1948
+						&vps[0].s, &vps[1].s, vps[2].n, &vps[3].s, vps[4].n);
1910 1949
 				return sr_kemi_lua_return_int(L, ket, ret);
1911 1950
 			} else if(ket->ptypes[0]==SR_KEMIP_STR
1912 1951
 					&& ket->ptypes[1]==SR_KEMIP_STR
... ...
@@ -1914,13 +1953,210 @@ int sr_kemi_lua_exec_func_ex(lua_State* L, sr_kemi_t *ket, int pdelta)
1914 1914
 					&& ket->ptypes[3]==SR_KEMIP_INT
1915 1915
 					&& ket->ptypes[4]==SR_KEMIP_STR) {
1916 1916
 				ret = ((sr_kemi_fmssnns_f)(ket->func))(env_L->msg,
1917
-						&vps[0].s, &vps[1].s, vps[2].n, vps[3].n,
1918
-						&vps[4].s);
1917
+						&vps[0].s, &vps[1].s, vps[2].n, vps[3].n, &vps[4].s);
1918
+				return sr_kemi_lua_return_int(L, ket, ret);
1919
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1920
+					&& ket->ptypes[1]==SR_KEMIP_STR
1921
+					&& ket->ptypes[2]==SR_KEMIP_INT
1922
+					&& ket->ptypes[3]==SR_KEMIP_INT
1923
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1924
+				ret = ((sr_kemi_fmssnnn_f)(ket->func))(env_L->msg,
1925
+						&vps[0].s, &vps[1].s, vps[2].n, vps[3].n, vps[4].n);
1926
+				return sr_kemi_lua_return_int(L, ket, ret);
1927
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1928
+					&& ket->ptypes[1]==SR_KEMIP_INT
1929
+					&& ket->ptypes[2]==SR_KEMIP_STR
1930
+					&& ket->ptypes[3]==SR_KEMIP_STR
1931
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
1932
+				ret = ((sr_kemi_fmsnsss_f)(ket->func))(env_L->msg,
1933
+						&vps[0].s, vps[1].n, &vps[2].s, &vps[3].s, &vps[4].s);
1934
+				return sr_kemi_lua_return_int(L, ket, ret);
1935
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1936
+					&& ket->ptypes[1]==SR_KEMIP_INT
1937
+					&& ket->ptypes[2]==SR_KEMIP_STR
1938
+					&& ket->ptypes[3]==SR_KEMIP_STR
1939
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1940
+				ret = ((sr_kemi_fmsnssn_f)(ket->func))(env_L->msg,
1941
+						&vps[0].s, vps[1].n, &vps[2].s, &vps[3].s, vps[4].n);
1942
+				return sr_kemi_lua_return_int(L, ket, ret);
1943
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1944
+					&& ket->ptypes[1]==SR_KEMIP_INT
1945
+					&& ket->ptypes[2]==SR_KEMIP_STR
1946
+					&& ket->ptypes[3]==SR_KEMIP_INT
1947
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
1948
+				ret = ((sr_kemi_fmsnsns_f)(ket->func))(env_L->msg,
1949
+						&vps[0].s, vps[1].n, &vps[2].s, vps[3].n, &vps[4].s);
1950
+				return sr_kemi_lua_return_int(L, ket, ret);
1951
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1952
+					&& ket->ptypes[1]==SR_KEMIP_INT
1953
+					&& ket->ptypes[2]==SR_KEMIP_STR
1954
+					&& ket->ptypes[3]==SR_KEMIP_INT
1955
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1956
+				ret = ((sr_kemi_fmsnsnn_f)(ket->func))(env_L->msg,
1957
+						&vps[0].s, vps[1].n, &vps[2].s, vps[3].n, vps[4].n);
1958
+				return sr_kemi_lua_return_int(L, ket, ret);
1959
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1960
+					&& ket->ptypes[1]==SR_KEMIP_INT
1961
+					&& ket->ptypes[2]==SR_KEMIP_INT
1962
+					&& ket->ptypes[3]==SR_KEMIP_STR
1963
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
1964
+				ret = ((sr_kemi_fmsnnss_f)(ket->func))(env_L->msg,
1965
+						&vps[0].s, vps[1].n, vps[2].n, &vps[3].s, &vps[4].s);
1966
+				return sr_kemi_lua_return_int(L, ket, ret);
1967
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1968
+					&& ket->ptypes[1]==SR_KEMIP_INT
1969
+					&& ket->ptypes[2]==SR_KEMIP_INT
1970
+					&& ket->ptypes[3]==SR_KEMIP_STR
1971
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1972
+				ret = ((sr_kemi_fmsnnsn_f)(ket->func))(env_L->msg,
1973
+						&vps[0].s, vps[1].n, vps[2].n, &vps[3].s, vps[4].n);
1974
+				return sr_kemi_lua_return_int(L, ket, ret);
1975
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1976
+					&& ket->ptypes[1]==SR_KEMIP_INT
1977
+					&& ket->ptypes[2]==SR_KEMIP_INT
1978
+					&& ket->ptypes[3]==SR_KEMIP_INT
1979
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
1980
+				ret = ((sr_kemi_fmsnnns_f)(ket->func))(env_L->msg,
1981
+						&vps[0].s, vps[1].n, vps[2].n, vps[3].n, &vps[4].s);
1982
+				return sr_kemi_lua_return_int(L, ket, ret);
1983
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1984
+					&& ket->ptypes[1]==SR_KEMIP_INT
1985
+					&& ket->ptypes[2]==SR_KEMIP_INT
1986
+					&& ket->ptypes[3]==SR_KEMIP_INT
1987
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1988
+				ret = ((sr_kemi_fmsnnnn_f)(ket->func))(env_L->msg,
1989
+						&vps[0].s, vps[1].n, vps[2].n, vps[3].n, vps[4].n);
1990
+				return sr_kemi_lua_return_int(L, ket, ret);
1991
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1992
+					&& ket->ptypes[1]==SR_KEMIP_STR
1993
+					&& ket->ptypes[2]==SR_KEMIP_STR
1994
+					&& ket->ptypes[3]==SR_KEMIP_STR
1995
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
1996
+				ret = ((sr_kemi_fmnssss_f)(ket->func))(env_L->msg,
1997
+						vps[0].n, &vps[1].s, &vps[2].s, &vps[3].s, &vps[4].s);
1998
+				return sr_kemi_lua_return_int(L, ket, ret);
1999
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
2000
+					&& ket->ptypes[1]==SR_KEMIP_STR
2001
+					&& ket->ptypes[2]==SR_KEMIP_STR
2002
+					&& ket->ptypes[3]==SR_KEMIP_STR
2003
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
2004
+				ret = ((sr_kemi_fmnsssn_f)(ket->func))(env_L->msg,
2005
+						vps[0].n, &vps[1].s, &vps[2].s, &vps[3].s, vps[4].n);
2006
+				return sr_kemi_lua_return_int(L, ket, ret);
2007
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
2008
+					&& ket->ptypes[1]==SR_KEMIP_STR
2009
+					&& ket->ptypes[2]==SR_KEMIP_STR
2010
+					&& ket->ptypes[3]==SR_KEMIP_INT
2011
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
2012
+				ret = ((sr_kemi_fmnssns_f)(ket->func))(env_L->msg,
2013
+						vps[0].n, &vps[1].s, &vps[2].s, vps[3].n, &vps[4].s);
2014
+				return sr_kemi_lua_return_int(L, ket, ret);
2015
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
2016
+					&& ket->ptypes[1]==SR_KEMIP_STR
2017
+					&& ket->ptypes[2]==SR_KEMIP_STR
2018
+					&& ket->ptypes[3]==SR_KEMIP_INT
2019
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
2020
+				ret = ((sr_kemi_fmnssnn_f)(ket->func))(env_L->msg,
2021
+						vps[0].n, &vps[1].s, &vps[2].s, vps[3].n, vps[4].n);
2022
+				return sr_kemi_lua_return_int(L, ket, ret);
2023
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
2024
+					&& ket->ptypes[1]==SR_KEMIP_STR
2025
+					&& ket->ptypes[2]==SR_KEMIP_INT
2026
+					&& ket->ptypes[3]==SR_KEMIP_STR
2027
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
2028
+				ret = ((sr_kemi_fmnsnss_f)(ket->func))(env_L->msg,
2029
+						vps[0].n, &vps[1].s, vps[2].n, &vps[3].s, &vps[4].s);
2030
+				return sr_kemi_lua_return_int(L, ket, ret);
2031
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
2032
+					&& ket->ptypes[1]==SR_KEMIP_STR
2033
+					&& ket->ptypes[2]==SR_KEMIP_INT
2034
+					&& ket->ptypes[3]==SR_KEMIP_STR
2035
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
2036
+				ret = ((sr_kemi_fmnsnsn_f)(ket->func))(env_L->msg,
2037
+						vps[0].n, &vps[1].s, vps[2].n, &vps[3].s, vps[4].n);
2038
+				return sr_kemi_lua_return_int(L, ket, ret);
2039
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
2040
+					&& ket->ptypes[1]==SR_KEMIP_STR
2041
+					&& ket->ptypes[2]==SR_KEMIP_INT
2042
+					&& ket->ptypes[3]==SR_KEMIP_INT
2043
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
2044
+				ret = ((sr_kemi_fmnsnns_f)(ket->func))(env_L->msg,
2045
+						vps[0].n, &vps[1].s, vps[2].n, vps[3].n, &vps[4].s);
2046
+				return sr_kemi_lua_return_int(L, ket, ret);
2047
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
2048
+					&& ket->ptypes[1]==SR_KEMIP_STR
2049
+					&& ket->ptypes[2]==SR_KEMIP_INT
2050
+					&& ket->ptypes[3]==SR_KEMIP_INT
2051
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
2052
+				ret = ((sr_kemi_fmnsnnn_f)(ket->func))(env_L->msg,
2053
+						vps[0].n, &vps[1].s, vps[2].n, vps[3].n, vps[4].n);
2054
+				return sr_kemi_lua_return_int(L, ket, ret);
2055
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
2056
+					&& ket->ptypes[1]==SR_KEMIP_INT
2057
+					&& ket->ptypes[2]==SR_KEMIP_STR
2058
+					&& ket->ptypes[3]==SR_KEMIP_STR
2059
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
2060
+				ret = ((sr_kemi_fmnnsss_f)(ket->func))(env_L->msg,
2061
+						vps[0].n, vps[1].n, &vps[2].s, &vps[3].s, &vps[4].s);
2062
+				return sr_kemi_lua_return_int(L, ket, ret);
2063
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
2064
+					&& ket->ptypes[1]==SR_KEMIP_INT
2065
+					&& ket->ptypes[2]==SR_KEMIP_STR
2066
+					&& ket->ptypes[3]==SR_KEMIP_STR
2067
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
2068
+				ret = ((sr_kemi_fmnnssn_f)(ket->func))(env_L->msg,
2069
+						vps[0].n, vps[1].n, &vps[2].s, &vps[3].s, vps[4].n);
2070
+				return sr_kemi_lua_return_int(L, ket, ret);
2071
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
2072
+					&& ket->ptypes[1]==SR_KEMIP_INT
2073
+					&& ket->ptypes[2]==SR_KEMIP_STR
2074
+					&& ket->ptypes[3]==SR_KEMIP_INT
2075
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
2076
+				ret = ((sr_kemi_fmnnsns_f)(ket->func))(env_L->msg,
2077
+						vps[0].n, vps[1].n, &vps[2].s, vps[3].n, &vps[4].s);
2078
+				return sr_kemi_lua_return_int(L, ket, ret);
2079
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
2080
+					&& ket->ptypes[1]==SR_KEMIP_INT
2081
+					&& ket->ptypes[2]==SR_KEMIP_STR
2082
+					&& ket->ptypes[3]==SR_KEMIP_INT
2083
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
2084
+				ret = ((sr_kemi_fmnnsnn_f)(ket->func))(env_L->msg,
2085
+						vps[0].n, vps[1].n, &vps[2].s, vps[3].n, vps[4].n);
2086
+				return sr_kemi_lua_return_int(L, ket, ret);
2087
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
2088
+					&& ket->ptypes[1]==SR_KEMIP_INT
2089
+					&& ket->ptypes[2]==SR_KEMIP_INT
2090
+					&& ket->ptypes[3]==SR_KEMIP_STR
2091
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
2092
+				ret = ((sr_kemi_fmnnnss_f)(ket->func))(env_L->msg,
2093
+						vps[0].n, vps[1].n, vps[2].n, &vps[3].s, &vps[4].s);
2094
+				return sr_kemi_lua_return_int(L, ket, ret);
2095
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
2096
+					&& ket->ptypes[1]==SR_KEMIP_INT
2097
+					&& ket->ptypes[2]==SR_KEMIP_INT
2098
+					&& ket->ptypes[3]==SR_KEMIP_STR
2099
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
2100
+				ret = ((sr_kemi_fmnnnsn_f)(ket->func))(env_L->msg,
2101
+						vps[0].n, vps[1].n, vps[2].n, &vps[3].s, vps[4].n);
2102
+				return sr_kemi_lua_return_int(L, ket, ret);
2103
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
2104
+					&& ket->ptypes[1]==SR_KEMIP_INT
2105
+					&& ket->ptypes[2]==SR_KEMIP_INT
2106
+					&& ket->ptypes[3]==SR_KEMIP_INT
2107
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
2108
+				ret = ((sr_kemi_fmnnnns_f)(ket->func))(env_L->msg,
2109
+						vps[0].n, vps[1].n, vps[2].n, vps[3].n, &vps[4].s);
2110
+				return sr_kemi_lua_return_int(L, ket, ret);
2111
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
2112
+					&& ket->ptypes[1]==SR_KEMIP_INT
2113
+					&& ket->ptypes[2]==SR_KEMIP_INT
2114
+					&& ket->ptypes[3]==SR_KEMIP_INT
2115
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
2116
+				ret = ((sr_kemi_fmnnnnn_f)(ket->func))(env_L->msg,
2117
+						vps[0].n, vps[1].n, vps[2].n, vps[3].n, vps[4].n);
1919 2118
 				return sr_kemi_lua_return_int(L, ket, ret);
1920
-
1921 2119
 			} else {
1922
-				LM_ERR("invalid parameters for: %.*s\n",
1923
-						fname->len, fname->s);
2120
+				LM_ERR("invalid parameters for: %.*s\n", fname->len, fname->s);
1924 2121
 				return app_lua_return_false(L);
1925 2122
 			}
1926 2123
 		break;