/** * fixes the module functions' parameters, i.e. it maps * the routing domain names to numbers for faster access * at runtime * * @param param the parameter * @param param_no the number of the parameter * * @return 0 on success, -1 on failure */ static int load_next_domain_fixup(void ** param, int param_no) { if (param_no == 1) { /* carrier */ if (carrier_fixup(param) < 0) { LM_ERR("cannot fixup parameter %d\n", param_no); return -1; } } else if (param_no == 2) { /* domain */ if (domain_fixup(param) < 0) { LM_ERR("cannot fixup parameter %d\n", param_no); return -1; } } else if ((param_no == 3) || (param_no == 4) || (param_no == 5)) { /* prefix matching */ /* host */ /* reply code */ if (pv_fixup(param) < 0) { LM_ERR("cannot fixup parameter %d\n", param_no); return -1; } } else if (param_no == 6) { /* destination avp name */ if (avp_name_fixup(param) < 0) { LM_ERR("cannot fixup parameter %d\n", param_no); return -1; } } return 0; }
static int matrix_fixup(void** param, int param_no) { if (param_no == 1) { /* source id */ if (mp_fixup(param) < 0) { LM_ERR("cannot fixup parameter %d\n", param_no); return -1; } } else if (param_no == 2) { /* destination id */ if (mp_fixup(param) < 0) { LM_ERR("cannot fixup parameter %d\n", param_no); return -1; } } else if (param_no == 3) { /* destination avp name */ if (avp_name_fixup(param) < 0) { LM_ERR("cannot fixup parameter %d\n", param_no); return -1; } } return 0; }
/** * fixes the module functions' parameters, i.e. it maps * the routing domain names to numbers for faster access * at runtime * * @param param the parameter * @param param_no the number of the parameter * * @return 0 on success, -1 on failure */ static int route_fixup(void ** param, int param_no) { enum hash_source my_hash_source; if (param_no == 1) { /* carrier */ if (carrier_fixup(param) < 0) { LM_ERR("cannot fixup parameter %d\n", param_no); return -1; } } else if (param_no == 2) { /* domain */ if (domain_fixup(param) < 0) { LM_ERR("cannot fixup parameter %d\n", param_no); return -1; } } else if ((param_no == 3) || (param_no == 4)){ /* prefix matching */ /* rewrite user */ if (pv_fixup(param) < 0) { LM_ERR("cannot fixup parameter %d\n", param_no); return -1; } } else if (param_no == 5) { /* hash source */ if ((my_hash_source = hash_fixup((char *)*param)) == shs_error) { LM_ERR("invalid hash source\n"); return -1; } pkg_free(*param); *param = (void *)my_hash_source; } else if (param_no == 6) { /* destination avp name */ if (avp_name_fixup(param) < 0) { LM_ERR("cannot fixup parameter %d\n", param_no); return -1; } } return 0; }
/** * Fixes the module functions' parameters. * * @param param the parameter * @param param_no the number of the parameter * * @return 0 on success, -1 on failure */ int cr_load_user_carrier_fixup(void ** param, int param_no) { if (mode == CARRIERROUTE_MODE_FILE) { LM_ERR("command cr_user_rewrite_uri can't be used in file mode\n"); return -1; } if ((param_no == 1) || (param_no == 2)) { /* user, domain */ if (fixup_spve_null(param, 1) != 0) { LM_ERR("cannot fixup parameter %d\n", param_no); return -1; } } else if (param_no == 3) { /* destination avp name */ if (avp_name_fixup(param) < 0) { LM_ERR("cannot fixup parameter %d\n", param_no); return -1; } } return 0; }