[Devel] Patch: cpl-c bug fix for nat flag in branches

Bogdan-Andrei Iancu bogdan at voice-system.ro
Tue Nov 7 09:39:51 CET 2006


Hi John,

at a first look it might be correct what you are saying....I will take a 
closer look in the next days (right now I'm deep involved with the 
OpenSER Summit) and if ok, I will commit it on CVS.

regards,
bogdan

John Riordan wrote:

> Hi,
>
>
> Issue:
>
> In CPL, during a proxy to a location set the
> value of the branch flag being passed to append_branch
> is currently the configured value for "nat_flag" (ie 6).
> However, append_branch is expecting a bit mapped flag value (ie 0x40).
>
> Also in CPL, the nat flag is getting set for the msg
> if any branches have the nat flag set. This can cause
> the RURI branch to have the nat flag set when the
> location associated with the RURI branch does not
> have the branch flag set.
>
>
> Patch:
>
> Addressed the two issues above.
>
> Also, to be consistant with the default used in the
> registrar module, made the default for nat flag -1
> in the cpl-c module.
>
>
> John
>
>
>
>------------------------------------------------------------------------
>
>Index: sip-server/modules/cpl-c/README
>===================================================================
>RCS file: /cvsroot/openser/sip-server/modules/cpl-c/README,v
>retrieving revision 1.5
>diff -u -r1.5 README
>--- sip-server/modules/cpl-c/README	9 Feb 2006 17:28:25 -0000	1.5
>+++ sip-server/modules/cpl-c/README	29 Oct 2006 05:28:27 -0000
>@@ -304,11 +304,11 @@
>    tag when retrieving a contact behind a NAT (this flag will be
>    set).
> 
>-   Default value of this parameter is 6. 
>+   Default value is -1 (disabled).
> 
>    Example 1-14. Set nat_flag parameter
> ...
>-modparam("cpl_c","nat_flag",4)
>+modparam("cpl_c","nat_flag",6)
> ...
>      _________________________________________________________
> 
>Index: sip-server/modules/cpl-c/cpl.c
>===================================================================
>RCS file: /cvsroot/openser/sip-server/modules/cpl-c/cpl.c,v
>retrieving revision 1.13
>diff -u -r1.13 cpl.c
>--- sip-server/modules/cpl-c/cpl.c	10 Oct 2006 18:45:56 -0000	1.13
>+++ sip-server/modules/cpl-c/cpl.c	29 Oct 2006 05:28:27 -0000
>@@ -83,7 +83,7 @@
> 		0, /* no cpl logging */
> 		0, /* recurse proxy level is 0 */
> 		0, /* no script route to be run before proxy */
>-		6, /* nat flag */
>+		-1, /* nat flag */
> 		0, /* user part is not case sensitive */
> 		{0,0},   /* no domain prefix to be ignored */
> 		{-1,-1}, /* communication pipe to aux_process */
>@@ -404,6 +404,9 @@
> 		strlower( &cpl_env.realm_prefix );
> 	}
> 
>+	/* fix the flags */
>+	cpl_env.nat_flag = (cpl_env.nat_flag!=-1)?(1<<cpl_env.nat_flag):0;
>+
> 	return 0;
> error:
> 	return -1;
>Index: sip-server/modules/cpl-c/cpl_sig.c
>===================================================================
>RCS file: /cvsroot/openser/sip-server/modules/cpl-c/cpl_sig.c,v
>retrieving revision 1.7
>diff -u -r1.7 cpl_sig.c
>--- sip-server/modules/cpl-c/cpl_sig.c	6 Apr 2006 18:21:56 -0000	1.7
>+++ sip-server/modules/cpl-c/cpl_sig.c	29 Oct 2006 05:28:27 -0000
>@@ -78,10 +78,9 @@
> 				goto error;
> 			}
> 		}
>-		/* is the location NATED? */
>+		/* for RURI branch, the nat flag goes into msg */
> 		if ((*locs)->flags&CPL_LOC_NATED)
>-			/* for RURI branch, the nat flag goes into msg */
>-			setflag(msg,cpl_env.nat_flag);
>+			msg->flags |= cpl_env.nat_flag;
> 		/* free the location and point to the next one */
> 		foo = (*locs)->next;
> 		free_location( *locs );
>@@ -100,8 +99,6 @@
> 				"appending branch <%s>\n",(*locs)->addr.uri.s);
> 			goto error;
> 		}
>-		/* is the location NATED? */
>-		if (bflags) setflag(msg,bflags);
> 		/* free the location and point to the next one */
> 		foo = (*locs)->next;
> 		free_location( *locs );
>Index: sip-server/modules/cpl-c/doc/cpl-c_user.sgml
>===================================================================
>RCS file: /cvsroot/openser/sip-server/modules/cpl-c/doc/cpl-c_user.sgml,v
>retrieving revision 1.6
>diff -u -r1.6 cpl-c_user.sgml
>--- sip-server/modules/cpl-c/doc/cpl-c_user.sgml	9 Feb 2006 17:28:25 -0000	1.6
>+++ sip-server/modules/cpl-c/doc/cpl-c_user.sgml	29 Oct 2006 05:28:27 -0000
>@@ -361,14 +361,14 @@
> 			</para>
> 			<para>
> 				<emphasis>
>-					Default value of this parameter is 6.
>+					Default value is -1 (disabled).
> 				</emphasis>
> 			</para>
> 			<example>
> 				<title>Set <varname>nat_flag</varname> parameter</title>
> 				<programlisting format="linespecific">
> ...
>-modparam("cpl_c","nat_flag",4)
>+modparam("cpl_c","nat_flag",6)
> ...
> </programlisting>
> 			</example>
>
>  
>
>------------------------------------------------------------------------
>
>_______________________________________________
>Devel mailing list
>Devel at openser.org
>http://openser.org/cgi-bin/mailman/listinfo/devel
>  
>




More information about the Devel mailing list