FS-6287 this should either prevent the problem or spell out what is causing it. please test

This commit is contained in:
Anthony Minessale 2014-02-28 23:23:30 +05:00
parent 15f4bd44ca
commit b82df8a7da
1 changed files with 19 additions and 5 deletions

View File

@ -2323,7 +2323,14 @@ void sofia_reg_handle_sip_r_challenge(int status,
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "Missing Authenticate Header!\n"); switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "Missing Authenticate Header!\n");
goto end; goto end;
} }
scheme = (char const *) authenticate->au_scheme; scheme = (char const *) authenticate->au_scheme;
if (zstr(scheme)) {
scheme = "Digest";
}
if (authenticate->au_params) { if (authenticate->au_params) {
for (indexnum = 0; (cur = (char *) authenticate->au_params[indexnum]); indexnum++) { for (indexnum = 0; (cur = (char *) authenticate->au_params[indexnum]); indexnum++) {
if ((realm = strstr(cur, "realm="))) { if ((realm = strstr(cur, "realm="))) {
@ -2331,6 +2338,18 @@ void sofia_reg_handle_sip_r_challenge(int status,
break; break;
} }
} }
if (zstr(realm)) {
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "Realm: [%s] is invalid\n", switch_str_nil(realm));
for (indexnum = 0; (cur = (char *) authenticate->au_params[indexnum]); indexnum++) {
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "DUMP: [%s]\n", cur);
}
goto end;
}
} else {
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "NO AUTHENTICATE PARAMS\n");
goto end;
} }
if (!gateway) { if (!gateway) {
@ -2399,11 +2418,6 @@ void sofia_reg_handle_sip_r_challenge(int status,
switch_event_destroy(&locate_params); switch_event_destroy(&locate_params);
} }
if (!(scheme && realm)) {
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "No scheme and realm!\n");
goto end;
}
if (sip_auth_username && sip_auth_password) { if (sip_auth_username && sip_auth_password) {
switch_snprintf(authentication, sizeof(authentication), "%s:%s:%s:%s", scheme, realm, sip_auth_username, sip_auth_password); switch_snprintf(authentication, sizeof(authentication), "%s:%s:%s:%s", scheme, realm, sip_auth_username, sip_auth_password);
} else if (gateway) { } else if (gateway) {