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");
goto end;
}
scheme = (char const *) authenticate->au_scheme;
if (zstr(scheme)) {
scheme = "Digest";
}
if (authenticate->au_params) {
for (indexnum = 0; (cur = (char *) authenticate->au_params[indexnum]); indexnum++) {
if ((realm = strstr(cur, "realm="))) {
@ -2331,6 +2338,18 @@ void sofia_reg_handle_sip_r_challenge(int status,
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) {
@ -2399,11 +2418,6 @@ void sofia_reg_handle_sip_r_challenge(int status,
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) {
switch_snprintf(authentication, sizeof(authentication), "%s:%s:%s:%s", scheme, realm, sip_auth_username, sip_auth_password);
} else if (gateway) {