[Freeswitch-svn] [commit] r8338 - in freeswitch/trunk/libs/sofia-sip: . libsofia-sip-ua/nua

Freeswitch SVN mikej at freeswitch.org
Fri May 9 13:47:20 EDT 2008


Author: mikej
Date: Fri May  9 13:47:20 2008
New Revision: 8338

Modified:
   freeswitch/trunk/libs/sofia-sip/.update
   freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/outbound.c

Log:
Wed May  7 15:54:41 EDT 2008  Pekka Pessi <first.last at nokia.com>
  * outbound.c: fix sofia-sip.org bug #1930055
  
  If the initial REGISTER was not challenged, the natted contact did not get
  unregistered.



Modified: freeswitch/trunk/libs/sofia-sip/.update
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/.update	(original)
+++ freeswitch/trunk/libs/sofia-sip/.update	Fri May  9 13:47:20 2008
@@ -1 +1 @@
-Fri May  9 13:46:29 EDT 2008
+Fri May  9 13:47:15 EDT 2008

Modified: freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/outbound.c
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/outbound.c	(original)
+++ freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/outbound.c	Fri May  9 13:47:20 2008
@@ -97,7 +97,7 @@
   /** Source of Contact header */
   unsigned ob_by_stack:1;
   /** Self-generated contacts */
-  unsigned ob_contacts:1, :0;
+  unsigned ob_contacts:1;
 
   /* The registration state machine. */
   /** Initial REGISTER containing ob_rcontact has been sent */
@@ -336,6 +336,14 @@
   if (ob) {
     if (ob->ob_contacts)
       *return_current_contact = ob->ob_rcontact;
+    else {
+      sip_contact_t *contact = *return_current_contact;
+      if (contact) {
+	if (ob->ob_rcontact)
+	  msg_header_free_all(ob->ob_home, (msg_header_t*)ob->ob_rcontact);
+	ob->ob_rcontact = sip_contact_dup(ob->ob_home, contact);
+      }
+    }
     *return_previous_contact = ob->ob_previous;
   }
   return 0;



More information about the Freeswitch-svn mailing list