| 1110 | // |
| 1111 | |
| 1112 | static int |
| 1113 | mod_init(void) |
| 1114 | { |
| 1115 | pv_spec_t avp_spec; |
| 1116 | |
| 1117 | // initialize the canonical_uri_avp structure |
| 1118 | if (canonical_uri_avp.spec.s==NULL || *(canonical_uri_avp.spec.s)==0) { |
| 1119 | LM_ERR("missing/empty canonical_uri_avp parameter. using default.\n"); |
| 1120 | canonical_uri_avp.spec.s = CANONICAL_URI_AVP_SPEC; |
| 1121 | } |
| 1122 | canonical_uri_avp.spec.len = strlen(canonical_uri_avp.spec.s); |
| 1123 | if (pv_parse_spec(&(canonical_uri_avp.spec), &avp_spec)==0 || avp_spec.type!=PVT_AVP) { |
| 1124 | LM_CRIT("invalid AVP specification for canonical_uri_avp: `%s'\n", canonical_uri_avp.spec.s); |
| 1125 | return -1; |
| 1126 | } |
| 1127 | if (pv_get_avp_name(0, &(avp_spec.pvp), &(canonical_uri_avp.name), &(canonical_uri_avp.type))!=0) { |
| 1128 | LM_CRIT("invalid AVP specification for canonical_uri_avp: `%s'\n", canonical_uri_avp.spec.s); |
| 1129 | return -1; |
| 1130 | } |
| 1131 | |
| 1132 | // initialize the signaling_ip_avp structure |
| 1133 | if (signaling_ip_avp.spec.s==NULL || *(signaling_ip_avp.spec.s)==0) { |
| 1134 | LM_ERR("missing/empty signaling_ip_avp parameter. using default.\n"); |
| 1135 | signaling_ip_avp.spec.s = SIGNALING_IP_AVP_SPEC; |
| 1136 | } |
| 1137 | signaling_ip_avp.spec.len = strlen(signaling_ip_avp.spec.s); |
| 1138 | if (pv_parse_spec(&(signaling_ip_avp.spec), &avp_spec)==0 || avp_spec.type!=PVT_AVP) { |
| 1139 | LM_CRIT("invalid AVP specification for signaling_ip_avp: `%s'\n", signaling_ip_avp.spec.s); |
| 1140 | return -1; |
| 1141 | } |
| 1142 | if (pv_get_avp_name(0, &(avp_spec.pvp), &(signaling_ip_avp.name), &(signaling_ip_avp.type))!=0) { |
| 1143 | LM_CRIT("invalid AVP specification for signaling_ip_avp: `%s'\n", signaling_ip_avp.spec.s); |
| 1144 | return -1; |
| 1145 | } |
| 1146 | |
| 1147 | // initialize the call_limit_avp structure |
| 1148 | if (call_limit_avp.spec.s==NULL || *(call_limit_avp.spec.s)==0) { |
| 1149 | LM_ERR("missing/empty call_limit_avp parameter. using default.\n"); |
| 1150 | call_limit_avp.spec.s = CALL_LIMIT_AVP_SPEC; |
| 1151 | } |
| 1152 | call_limit_avp.spec.len = strlen(call_limit_avp.spec.s); |
| 1153 | if (pv_parse_spec(&(call_limit_avp.spec), &avp_spec)==0 || avp_spec.type!=PVT_AVP) { |
| 1154 | LM_CRIT("invalid AVP specification for call_limit_avp: `%s'\n", call_limit_avp.spec.s); |
| 1155 | return -1; |
| 1156 | } |
| 1157 | if (pv_get_avp_name(0, &(avp_spec.pvp), &(call_limit_avp.name), &(call_limit_avp.type))!=0) { |
| 1158 | LM_CRIT("invalid AVP specification for call_limit_avp: `%s'\n", call_limit_avp.spec.s); |
| 1159 | return -1; |
| 1160 | } |
| 1161 | |
| 1162 | // initialize the call_token_avp structure |
| 1163 | if (call_token_avp.spec.s==NULL || *(call_token_avp.spec.s)==0) { |
| 1164 | LM_ERR("missing/empty call_token_avp parameter. using default.\n"); |
| 1165 | call_token_avp.spec.s = CALL_TOKEN_AVP_SPEC; |
| 1166 | } |
| 1167 | call_token_avp.spec.len = strlen(call_token_avp.spec.s); |
| 1168 | if (pv_parse_spec(&(call_token_avp.spec), &avp_spec)==0 || avp_spec.type!=PVT_AVP) { |
| 1169 | LM_CRIT("invalid AVP specification for call_token_avp: `%s'\n", call_token_avp.spec.s); |
nothing calls this directly
no test coverage detected