]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FSCORE-301
authorAnthony Minessale <anthony.minessale@gmail.com>
Tue, 17 Feb 2009 17:04:45 +0000 (17:04 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Tue, 17 Feb 2009 17:04:45 +0000 (17:04 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@12100 d0543943-73ff-0310-b7d9-9358b9ac24b2

libs/sofia-sip/libsofia-sip-ua/soa/soa.c

index d75b07993127124df752cfaaa2c32e51cccac655..f2b4948031c37b451d7c3c365149089cd5f59925 100644 (file)
@@ -2452,31 +2452,36 @@ soa_init_sdp_connection_with_session(soa_session_t *ss,
       sdp_connection_t const *mc;
 
       if (m->m_rejected)
-       continue;
-
-      for (mc = m->m_connections; mc; mc = mc->c_next) {
-       for (li = res; li; li = li->li_next) {
-         if (!su_casematch(li->li_canonname, sdp->sdp_connection->c_address))
-           continue;
+                 continue;
+
+         if (sdp && sdp->sdp_connection && sdp->sdp_connection->c_address) {
+                 for (mc = m->m_connections; mc; mc = mc->c_next) {
+                         for (li = res; li; li = li->li_next) {
+                                 if (!li->li_canonname || !su_casematch(li->li_canonname, sdp->sdp_connection->c_address)) {
+                                         continue;
+                                 }
 #if HAVE_SIN6
-         if (li->li_family == AF_INET6) {
-           if (ip6 > ip4)
-             break;
-           else if (!li6)
-             li6 = li;         /* Best IP6 address */
-         }
+                                 if (li->li_family == AF_INET6) {
+                                         if (ip6 > ip4)
+                                         break;
+                                         else if (!li6)
+                                                 li6 = li;             /* Best IP6 address */
+                                 }
 #endif
-         else if (li->li_family == AF_INET) {
-           if (ip4 > ip6)
-             break;
-           else if (!li4)
-             li4 = li;         /* Best IP4 address */
+                                 else if (li->li_family == AF_INET) {
+                                         if (ip4 > ip6) {
+                                                 break;
+                                         } else if (!li4) {
+                                                 li4 = li;             /* Best IP4 address */
+                                         }
+                                 }
+                         }
+                 }
+         }
+         
+      if (li) {
+                 break;
          }
-       }
-      }
-
-      if (li)
-       break;
     }
 
     if (li == NULL && ip4)