[Kamailio-Devel] [ openser-Patches-1809467 ] Tiny patch to allow the usage of uac_replace_from in branch
SourceForge.net
noreply at sourceforge.net
Fri Jan 23 16:21:25 CET 2009
Patches item #1809467, was opened at 2007-10-08 13:36
Message generated for change (Comment added) made by carstenbock
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=743022&aid=1809467&group_id=139143
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: modules
Group: ver devel
>Status: Closed
>Resolution: Accepted
Priority: 5
Private: No
Submitted By: Carsten Bock (carstenbock)
Assigned to: Nobody/Anonymous (nobody)
Summary: Tiny patch to allow the usage of uac_replace_from in branch
Initial Comment:
Hi,
attached a tiny patch, that allows the use of uac_replace_from in a branch route in Auto-Mode.
We've been using the patch for quite some time on production systems.
The Patch is simple: It just checks, if the From-Line was already restored in the Reply. If Yes, it will not make an second attempt.
Carsten
----------------------------------------------------------------------
>Comment By: Carsten Bock (carstenbock)
Date: 2009-01-23 15:21
Message:
I have commited the patch into SVN-Trunk.
----------------------------------------------------------------------
Comment By: Ovidiu Sas (osas)
Date: 2008-08-12 14:07
Message:
Logged In: YES
user_id=1395524
Originator: NO
> As I can't find a way to attach files
See "Upload and Attach a File:" at the bottom of the web page.
Regards,
Ovidiu Sas
----------------------------------------------------------------------
Comment By: Alex Hermann (axlh)
Date: 2008-08-12 14:03
Message:
Logged In: YES
user_id=1212856
Originator: NO
Forget the previous comment.
I had to change the patch to actually make it modify the static variable
msg_id. First tests seem promising. As I can't find a way to attach files
via sourceforge, complete patch is inline:
diff -u openser-1.2-orig/modules/uac/uac.c openser-1.2/modules/uac/uac.c
--- openser-1.2-orig/modules/uac/uac.c 2008-08-12 15:55:12.000000000
+0200
+++ openser-1.2/modules/uac/uac.c 2008-08-12 13:26:27.000000000
+0200
@@ -81,9 +81,9 @@
/* Exported functions */
static cmd_export_t cmds[]={
{"uac_replace_from", w_replace_from2, 2, fixup_replace_from2,
- REQUEST_ROUTE },
+ REQUEST_ROUTE | BRANCH_ROUTE },
{"uac_replace_from", w_replace_from1, 1, fixup_replace_from1,
- REQUEST_ROUTE },
+ REQUEST_ROUTE | BRANCH_ROUTE },
{"uac_restore_from", w_restore_from, 0, 0,
REQUEST_ROUTE },
{"uac_auth", w_uac_auth, 0, 0,
diff -u openser-1.2-orig/modules/uac/from.c
openser-1.2/modules/uac/from.c
--- openser-1.2-orig/modules/uac/from.c 2007-10-22 11:48:48.000000000
+0200
+++ openser-1.2/modules/uac/from.c 2008-08-12 15:56:42.000000000
+0200
@@ -61,6 +61,8 @@
#define text3B64_len(_l) ( ( ((_l)+2)/3 ) << 2 )
+/* The reply, were the From-Line was replaced. */
+static unsigned int msg_id = 0;
void init_from_replacer()
{
@@ -564,6 +566,12 @@
"FROM hdr\n");
return;
}
+
+ DBG("DBG:uac::restore_from_reply: current id = %d, code %d (last
id %d)\n", rpl->id, p->code, msg_id);
+ if (msg_id == rpl->id) {
+ DBG("DBG:uac::restore_from_reply: No change, already
done!\n");
+ return;
+ }
/* duplicate the new from value */
new_val.s = pkg_malloc( req->from->len );
@@ -589,6 +597,9 @@
LOG(L_ERR,"ERROR:uac:restore_from_reply: insert new lump
failed\n");
return;
}
+
+ /* Mark this id as replied to prevent multiple From headers in
replies */
+ msg_id = rpl->id;
}
----------------------------------------------------------------------
Comment By: Alex Hermann (axlh)
Date: 2008-08-12 11:55
Message:
Logged In: YES
user_id=1212856
Originator: NO
Does this actually work (under load)? You use a static global variable to
keep state. What happens if in the meantime another transaction is handled
by the process?
Alex.
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=743022&aid=1809467&group_id=139143
More information about the Devel
mailing list