Browse code

app_ruby: implemented the handling of KEMI functions with 5 parameters

Daniel-Constantin Mierla authored on 16/05/2019 10:16:32
Showing 1 changed files
... ...
@@ -1053,12 +1053,258 @@ VALUE sr_kemi_ruby_exec_func_ex(ksr_ruby_context_t *R, sr_kemi_t *ket, int argc,
1053 1053
 					&& ket->ptypes[3]==SR_KEMIP_STR
1054 1054
 					&& ket->ptypes[4]==SR_KEMIP_STR) {
1055 1055
 				ret = ((sr_kemi_fmsssss_f)(ket->func))(env_R->msg,
1056
-						&vps[0].s, &vps[1].s, &vps[2].s, &vps[3].s,
1057
-						&vps[4].s);
1056
+						&vps[0].s, &vps[1].s, &vps[2].s, &vps[3].s, &vps[4].s);
1057
+				return sr_kemi_ruby_return_int(ket, ret);
1058
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1059
+					&& ket->ptypes[1]==SR_KEMIP_STR
1060
+					&& ket->ptypes[2]==SR_KEMIP_STR
1061
+					&& ket->ptypes[3]==SR_KEMIP_STR
1062
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1063
+				ret = ((sr_kemi_fmssssn_f)(ket->func))(env_R->msg,
1064
+						&vps[0].s, &vps[1].s, &vps[2].s, &vps[3].s, vps[4].n);
1065
+				return sr_kemi_ruby_return_int(ket, ret);
1066
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1067
+					&& ket->ptypes[1]==SR_KEMIP_STR
1068
+					&& ket->ptypes[2]==SR_KEMIP_STR
1069
+					&& ket->ptypes[3]==SR_KEMIP_INT
1070
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
1071
+				ret = ((sr_kemi_fmsssns_f)(ket->func))(env_R->msg,
1072
+						&vps[0].s, &vps[1].s, &vps[2].s, vps[3].n, &vps[4].s);
1073
+				return sr_kemi_ruby_return_int(ket, ret);
1074
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1075
+					&& ket->ptypes[1]==SR_KEMIP_STR
1076
+					&& ket->ptypes[2]==SR_KEMIP_STR
1077
+					&& ket->ptypes[3]==SR_KEMIP_INT
1078
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1079
+				ret = ((sr_kemi_fmsssnn_f)(ket->func))(env_R->msg,
1080
+						&vps[0].s, &vps[1].s, &vps[2].s, vps[3].n, vps[4].n);
1081
+				return sr_kemi_ruby_return_int(ket, ret);
1082
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1083
+					&& ket->ptypes[1]==SR_KEMIP_STR
1084
+					&& ket->ptypes[2]==SR_KEMIP_INT
1085
+					&& ket->ptypes[3]==SR_KEMIP_STR
1086
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
1087
+				ret = ((sr_kemi_fmssnss_f)(ket->func))(env_R->msg,
1088
+						&vps[0].s, &vps[1].s, vps[2].n, &vps[3].s, &vps[4].s);
1089
+				return sr_kemi_ruby_return_int(ket, ret);
1090
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1091
+					&& ket->ptypes[1]==SR_KEMIP_STR
1092
+					&& ket->ptypes[2]==SR_KEMIP_INT
1093
+					&& ket->ptypes[3]==SR_KEMIP_STR
1094
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1095
+				ret = ((sr_kemi_fmssnsn_f)(ket->func))(env_R->msg,
1096
+						&vps[0].s, &vps[1].s, vps[2].n, &vps[3].s, vps[4].n);
1097
+				return sr_kemi_ruby_return_int(ket, ret);
1098
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1099
+					&& ket->ptypes[1]==SR_KEMIP_STR
1100
+					&& ket->ptypes[2]==SR_KEMIP_INT
1101
+					&& ket->ptypes[3]==SR_KEMIP_INT
1102
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
1103
+				ret = ((sr_kemi_fmssnns_f)(ket->func))(env_R->msg,
1104
+						&vps[0].s, &vps[1].s, vps[2].n, vps[3].n, &vps[4].s);
1105
+				return sr_kemi_ruby_return_int(ket, ret);
1106
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1107
+					&& ket->ptypes[1]==SR_KEMIP_STR
1108
+					&& ket->ptypes[2]==SR_KEMIP_INT
1109
+					&& ket->ptypes[3]==SR_KEMIP_INT
1110
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1111
+				ret = ((sr_kemi_fmssnnn_f)(ket->func))(env_R->msg,
1112
+						&vps[0].s, &vps[1].s, vps[2].n, vps[3].n, vps[4].n);
1113
+				return sr_kemi_ruby_return_int(ket, ret);
1114
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1115
+					&& ket->ptypes[1]==SR_KEMIP_INT
1116
+					&& ket->ptypes[2]==SR_KEMIP_STR
1117
+					&& ket->ptypes[3]==SR_KEMIP_STR
1118
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
1119
+				ret = ((sr_kemi_fmsnsss_f)(ket->func))(env_R->msg,
1120
+						&vps[0].s, vps[1].n, &vps[2].s, &vps[3].s, &vps[4].s);
1121
+				return sr_kemi_ruby_return_int(ket, ret);
1122
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1123
+					&& ket->ptypes[1]==SR_KEMIP_INT
1124
+					&& ket->ptypes[2]==SR_KEMIP_STR
1125
+					&& ket->ptypes[3]==SR_KEMIP_STR
1126
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1127
+				ret = ((sr_kemi_fmsnssn_f)(ket->func))(env_R->msg,
1128
+						&vps[0].s, vps[1].n, &vps[2].s, &vps[3].s, vps[4].n);
1129
+				return sr_kemi_ruby_return_int(ket, ret);
1130
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1131
+					&& ket->ptypes[1]==SR_KEMIP_INT
1132
+					&& ket->ptypes[2]==SR_KEMIP_STR
1133
+					&& ket->ptypes[3]==SR_KEMIP_INT
1134
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
1135
+				ret = ((sr_kemi_fmsnsns_f)(ket->func))(env_R->msg,
1136
+						&vps[0].s, vps[1].n, &vps[2].s, vps[3].n, &vps[4].s);
1137
+				return sr_kemi_ruby_return_int(ket, ret);
1138
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1139
+					&& ket->ptypes[1]==SR_KEMIP_INT
1140
+					&& ket->ptypes[2]==SR_KEMIP_STR
1141
+					&& ket->ptypes[3]==SR_KEMIP_INT
1142
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1143
+				ret = ((sr_kemi_fmsnsnn_f)(ket->func))(env_R->msg,
1144
+						&vps[0].s, vps[1].n, &vps[2].s, vps[3].n, vps[4].n);
1145
+				return sr_kemi_ruby_return_int(ket, ret);
1146
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1147
+					&& ket->ptypes[1]==SR_KEMIP_INT
1148
+					&& ket->ptypes[2]==SR_KEMIP_INT
1149
+					&& ket->ptypes[3]==SR_KEMIP_STR
1150
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
1151
+				ret = ((sr_kemi_fmsnnss_f)(ket->func))(env_R->msg,
1152
+						&vps[0].s, vps[1].n, vps[2].n, &vps[3].s, &vps[4].s);
1153
+				return sr_kemi_ruby_return_int(ket, ret);
1154
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1155
+					&& ket->ptypes[1]==SR_KEMIP_INT
1156
+					&& ket->ptypes[2]==SR_KEMIP_INT
1157
+					&& ket->ptypes[3]==SR_KEMIP_STR
1158
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1159
+				ret = ((sr_kemi_fmsnnsn_f)(ket->func))(env_R->msg,
1160
+						&vps[0].s, vps[1].n, vps[2].n, &vps[3].s, vps[4].n);
1161
+				return sr_kemi_ruby_return_int(ket, ret);
1162
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1163
+					&& ket->ptypes[1]==SR_KEMIP_INT
1164
+					&& ket->ptypes[2]==SR_KEMIP_INT
1165
+					&& ket->ptypes[3]==SR_KEMIP_INT
1166
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
1167
+				ret = ((sr_kemi_fmsnnns_f)(ket->func))(env_R->msg,
1168
+						&vps[0].s, vps[1].n, vps[2].n, vps[3].n, &vps[4].s);
1169
+				return sr_kemi_ruby_return_int(ket, ret);
1170
+			} else if(ket->ptypes[0]==SR_KEMIP_STR
1171
+					&& ket->ptypes[1]==SR_KEMIP_INT
1172
+					&& ket->ptypes[2]==SR_KEMIP_INT
1173
+					&& ket->ptypes[3]==SR_KEMIP_INT
1174
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1175
+				ret = ((sr_kemi_fmsnnnn_f)(ket->func))(env_R->msg,
1176
+						&vps[0].s, vps[1].n, vps[2].n, vps[3].n, vps[4].n);
1177
+				return sr_kemi_ruby_return_int(ket, ret);
1178
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1179
+					&& ket->ptypes[1]==SR_KEMIP_STR
1180
+					&& ket->ptypes[2]==SR_KEMIP_STR
1181
+					&& ket->ptypes[3]==SR_KEMIP_STR
1182
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
1183
+				ret = ((sr_kemi_fmnssss_f)(ket->func))(env_R->msg,
1184
+						vps[0].n, &vps[1].s, &vps[2].s, &vps[3].s, &vps[4].s);
1185
+				return sr_kemi_ruby_return_int(ket, ret);
1186
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1187
+					&& ket->ptypes[1]==SR_KEMIP_STR
1188
+					&& ket->ptypes[2]==SR_KEMIP_STR
1189
+					&& ket->ptypes[3]==SR_KEMIP_STR
1190
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1191
+				ret = ((sr_kemi_fmnsssn_f)(ket->func))(env_R->msg,
1192
+						vps[0].n, &vps[1].s, &vps[2].s, &vps[3].s, vps[4].n);
1193
+				return sr_kemi_ruby_return_int(ket, ret);
1194
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1195
+					&& ket->ptypes[1]==SR_KEMIP_STR
1196
+					&& ket->ptypes[2]==SR_KEMIP_STR
1197
+					&& ket->ptypes[3]==SR_KEMIP_INT
1198
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
1199
+				ret = ((sr_kemi_fmnssns_f)(ket->func))(env_R->msg,
1200
+						vps[0].n, &vps[1].s, &vps[2].s, vps[3].n, &vps[4].s);
1201
+				return sr_kemi_ruby_return_int(ket, ret);
1202
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1203
+					&& ket->ptypes[1]==SR_KEMIP_STR
1204
+					&& ket->ptypes[2]==SR_KEMIP_STR
1205
+					&& ket->ptypes[3]==SR_KEMIP_INT
1206
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1207
+				ret = ((sr_kemi_fmnssnn_f)(ket->func))(env_R->msg,
1208
+						vps[0].n, &vps[1].s, &vps[2].s, vps[3].n, vps[4].n);
1209
+				return sr_kemi_ruby_return_int(ket, ret);
1210
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1211
+					&& ket->ptypes[1]==SR_KEMIP_STR
1212
+					&& ket->ptypes[2]==SR_KEMIP_INT
1213
+					&& ket->ptypes[3]==SR_KEMIP_STR
1214
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
1215
+				ret = ((sr_kemi_fmnsnss_f)(ket->func))(env_R->msg,
1216
+						vps[0].n, &vps[1].s, vps[2].n, &vps[3].s, &vps[4].s);
1217
+				return sr_kemi_ruby_return_int(ket, ret);
1218
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1219
+					&& ket->ptypes[1]==SR_KEMIP_STR
1220
+					&& ket->ptypes[2]==SR_KEMIP_INT
1221
+					&& ket->ptypes[3]==SR_KEMIP_STR
1222
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1223
+				ret = ((sr_kemi_fmnsnsn_f)(ket->func))(env_R->msg,
1224
+						vps[0].n, &vps[1].s, vps[2].n, &vps[3].s, vps[4].n);
1225
+				return sr_kemi_ruby_return_int(ket, ret);
1226
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1227
+					&& ket->ptypes[1]==SR_KEMIP_STR
1228
+					&& ket->ptypes[2]==SR_KEMIP_INT
1229
+					&& ket->ptypes[3]==SR_KEMIP_INT
1230
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
1231
+				ret = ((sr_kemi_fmnsnns_f)(ket->func))(env_R->msg,
1232
+						vps[0].n, &vps[1].s, vps[2].n, vps[3].n, &vps[4].s);
1233
+				return sr_kemi_ruby_return_int(ket, ret);
1234
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1235
+					&& ket->ptypes[1]==SR_KEMIP_STR
1236
+					&& ket->ptypes[2]==SR_KEMIP_INT
1237
+					&& ket->ptypes[3]==SR_KEMIP_INT
1238
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1239
+				ret = ((sr_kemi_fmnsnnn_f)(ket->func))(env_R->msg,
1240
+						vps[0].n, &vps[1].s, vps[2].n, vps[3].n, vps[4].n);
1241
+				return sr_kemi_ruby_return_int(ket, ret);
1242
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1243
+					&& ket->ptypes[1]==SR_KEMIP_INT
1244
+					&& ket->ptypes[2]==SR_KEMIP_STR
1245
+					&& ket->ptypes[3]==SR_KEMIP_STR
1246
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
1247
+				ret = ((sr_kemi_fmnnsss_f)(ket->func))(env_R->msg,
1248
+						vps[0].n, vps[1].n, &vps[2].s, &vps[3].s, &vps[4].s);
1249
+				return sr_kemi_ruby_return_int(ket, ret);
1250
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1251
+					&& ket->ptypes[1]==SR_KEMIP_INT
1252
+					&& ket->ptypes[2]==SR_KEMIP_STR
1253
+					&& ket->ptypes[3]==SR_KEMIP_STR
1254
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1255
+				ret = ((sr_kemi_fmnnssn_f)(ket->func))(env_R->msg,
1256
+						vps[0].n, vps[1].n, &vps[2].s, &vps[3].s, vps[4].n);
1257
+				return sr_kemi_ruby_return_int(ket, ret);
1258
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1259
+					&& ket->ptypes[1]==SR_KEMIP_INT
1260
+					&& ket->ptypes[2]==SR_KEMIP_STR
1261
+					&& ket->ptypes[3]==SR_KEMIP_INT
1262
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
1263
+				ret = ((sr_kemi_fmnnsns_f)(ket->func))(env_R->msg,
1264
+						vps[0].n, vps[1].n, &vps[2].s, vps[3].n, &vps[4].s);
1265
+				return sr_kemi_ruby_return_int(ket, ret);
1266
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1267
+					&& ket->ptypes[1]==SR_KEMIP_INT
1268
+					&& ket->ptypes[2]==SR_KEMIP_STR
1269
+					&& ket->ptypes[3]==SR_KEMIP_INT
1270
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1271
+				ret = ((sr_kemi_fmnnsnn_f)(ket->func))(env_R->msg,
1272
+						vps[0].n, vps[1].n, &vps[2].s, vps[3].n, vps[4].n);
1273
+				return sr_kemi_ruby_return_int(ket, ret);
1274
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1275
+					&& ket->ptypes[1]==SR_KEMIP_INT
1276
+					&& ket->ptypes[2]==SR_KEMIP_INT
1277
+					&& ket->ptypes[3]==SR_KEMIP_STR
1278
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
1279
+				ret = ((sr_kemi_fmnnnss_f)(ket->func))(env_R->msg,
1280
+						vps[0].n, vps[1].n, vps[2].n, &vps[3].s, &vps[4].s);
1281
+				return sr_kemi_ruby_return_int(ket, ret);
1282
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1283
+					&& ket->ptypes[1]==SR_KEMIP_INT
1284
+					&& ket->ptypes[2]==SR_KEMIP_INT
1285
+					&& ket->ptypes[3]==SR_KEMIP_STR
1286
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1287
+				ret = ((sr_kemi_fmnnnsn_f)(ket->func))(env_R->msg,
1288
+						vps[0].n, vps[1].n, vps[2].n, &vps[3].s, vps[4].n);
1289
+				return sr_kemi_ruby_return_int(ket, ret);
1290
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1291
+					&& ket->ptypes[1]==SR_KEMIP_INT
1292
+					&& ket->ptypes[2]==SR_KEMIP_INT
1293
+					&& ket->ptypes[3]==SR_KEMIP_INT
1294
+					&& ket->ptypes[4]==SR_KEMIP_STR) {
1295
+				ret = ((sr_kemi_fmnnnns_f)(ket->func))(env_R->msg,
1296
+						vps[0].n, vps[1].n, vps[2].n, vps[3].n, &vps[4].s);
1297
+				return sr_kemi_ruby_return_int(ket, ret);
1298
+			} else if(ket->ptypes[0]==SR_KEMIP_INT
1299
+					&& ket->ptypes[1]==SR_KEMIP_INT
1300
+					&& ket->ptypes[2]==SR_KEMIP_INT
1301
+					&& ket->ptypes[3]==SR_KEMIP_INT
1302
+					&& ket->ptypes[4]==SR_KEMIP_INT) {
1303
+				ret = ((sr_kemi_fmnnnnn_f)(ket->func))(env_R->msg,
1304
+						vps[0].n, vps[1].n, vps[2].n, vps[3].n, vps[4].n);
1058 1305
 				return sr_kemi_ruby_return_int(ket, ret);
1059 1306
 			} else {
1060
-				LM_ERR("invalid parameters for: %.*s\n",
1061
-						fname->len, fname->s);
1307
+				LM_ERR("invalid parameters for: %.*s\n", fname->len, fname->s);
1062 1308
 				return Qfalse;
1063 1309
 			}
1064 1310
 		break;