From f4b25c70b49a01949e960ea0da32df97f94f90ec Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Sat, 21 Oct 2006 22:54:55 +0000 Subject: [PATCH] add viles patch git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3140 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/mod/endpoints/mod_sofia/mod_sofia.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.c b/src/mod/endpoints/mod_sofia/mod_sofia.c index 238eb9085f..25ec7dc16b 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.c +++ b/src/mod/endpoints/mod_sofia/mod_sofia.c @@ -3771,18 +3771,22 @@ static void sip_r_register(int status, return; } - if (sip->sip_www_authenticate) { - authenticate = sip->sip_www_authenticate; - } else if (sip->sip_proxy_authenticate) { - authenticate = sip->sip_proxy_authenticate; - } - if (status == 200) { if (sofia_private->oreg) { oreg->state = REG_STATE_REGISTER; nua_handle_destroy(nh); } - } else if (authenticate) { + } else if (status == 401 || status == 407) { + + if (sip->sip_www_authenticate) { + authenticate = sip->sip_www_authenticate; + } else if (sip->sip_proxy_authenticate) { + authenticate = sip->sip_proxy_authenticate; + } else { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Missing Authenticate Header!\n"); + return; + } + char const *realm = (char const *) *authenticate->au_params; char const *scheme = (char const *) authenticate->au_scheme; char authentication[256] = "";