提交 a22deb92 authored 作者: Anthony Minessale's avatar Anthony Minessale

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

上级 b0d7ee2f
......@@ -2167,7 +2167,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="))) {
......@@ -2175,6 +2182,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) {
......@@ -2243,11 +2262,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) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论