From f9612fecfe0eb01af6ae368ebe9b20b2a16d4259 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Fri, 29 Jul 2011 21:55:52 -0500 Subject: [PATCH] use register contact to determine proper contact in 200 ok response to register --- src/mod/endpoints/mod_sofia/sofia_reg.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/mod/endpoints/mod_sofia/sofia_reg.c b/src/mod/endpoints/mod_sofia/sofia_reg.c index 88c5dd4ec6..520b4e6849 100644 --- a/src/mod/endpoints/mod_sofia/sofia_reg.c +++ b/src/mod/endpoints/mod_sofia/sofia_reg.c @@ -1831,8 +1831,17 @@ void sofia_reg_handle_sip_r_register(int status, const char *new_expires; uint32_t expi; if (contact->m_next) { - const char *sipip = profile->extsipip ? profile->extsipip : profile->sipip; - for (; contact && strcasecmp(contact->m_url->url_host, sipip); contact = contact->m_next); + char *full; + + for (; contact; contact = contact->m_next) { + if ((full = sip_header_as_string(nh->nh_home, (void *) contact))) { + if (switch_stristr(sofia_private->gateway->register_contact, full)) { + break; + } + + su_free(nh->nh_home, full); + } + } } if (!contact) {