Merged revisions 299248 via svnmerge from
authorMark Michelson <mmichelson@digium.com>
Mon, 20 Dec 2010 21:40:32 +0000 (21:40 +0000)
committerMark Michelson <mmichelson@digium.com>
Mon, 20 Dec 2010 21:40:32 +0000 (21:40 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r299248 | mmichelson | 2010-12-20 15:38:30 -0600 (Mon, 20 Dec 2010) | 20 lines

  Fix a couple of CCSS issues.

  * Make sure to allocate a cc_params structure
    when creating autopeers.

  * Use sip_uri_cmp when retrieving SIP CC agents
    and monitors in case parameters appear in the
    URI.

  (closes issue #18504)
  Reported by: kkm

  (closes issue #18338)
  Reported by: GeorgeKonopacki
  Patches:
        18338.diff uploaded by mmichelson (license 60)
  Tested by: GeorgeKonopacki
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@299249 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c

index c292d44..d574718 100644 (file)
@@ -1639,7 +1639,7 @@ static int find_by_notify_uri_helper(void *obj, void *arg, int flags)
        struct sip_cc_agent_pvt *agent_pvt = agent->private_data;
        const char *uri = arg;
 
        struct sip_cc_agent_pvt *agent_pvt = agent->private_data;
        const char *uri = arg;
 
-       return !strcmp(agent_pvt->notify_uri, uri) ? CMP_MATCH | CMP_STOP : 0;
+       return !sip_uri_cmp(agent_pvt->notify_uri, uri) ? CMP_MATCH | CMP_STOP : 0;
 }
 
 static struct ast_cc_agent *find_sip_cc_agent_by_notify_uri(const char * const uri)
 }
 
 static struct ast_cc_agent *find_sip_cc_agent_by_notify_uri(const char * const uri)
@@ -1654,7 +1654,7 @@ static int find_by_subscribe_uri_helper(void *obj, void *arg, int flags)
        struct sip_cc_agent_pvt *agent_pvt = agent->private_data;
        const char *uri = arg;
 
        struct sip_cc_agent_pvt *agent_pvt = agent->private_data;
        const char *uri = arg;
 
-       return !strcmp(agent_pvt->subscribe_uri, uri) ? CMP_MATCH | CMP_STOP : 0;
+       return !sip_uri_cmp(agent_pvt->subscribe_uri, uri) ? CMP_MATCH | CMP_STOP : 0;
 }
 
 static struct ast_cc_agent *find_sip_cc_agent_by_subscribe_uri(const char * const uri)
 }
 
 static struct ast_cc_agent *find_sip_cc_agent_by_subscribe_uri(const char * const uri)
@@ -25876,6 +25876,11 @@ static struct sip_peer *temp_peer(const char *name)
                ao2_t_ref(peer, -1, "failed to string_field_init, drop peer");
                return NULL;
        }
                ao2_t_ref(peer, -1, "failed to string_field_init, drop peer");
                return NULL;
        }
+       
+       if (!(peer->cc_params = ast_cc_config_params_init())) {
+               ao2_t_ref(peer, -1, "failed to allocate cc_params for peer");
+               return NULL;
+       }
 
        ast_atomic_fetchadd_int(&apeerobjs, 1);
        set_peer_defaults(peer);
 
        ast_atomic_fetchadd_int(&apeerobjs, 1);
        set_peer_defaults(peer);