Hi Bogdan,
i applied the new patch to record.c and got these results:
--- snip ---
0(29780) xl_printf: final buffer length 125
0(29780) Sat Feb 4 00:04:31 2006:
<sip:00045977408@sipbase.de>;tag=q1snnhms5k : record_route_preset(
"217.160.188.74:5060;nat=yes" )
0(29780) ***: after adding user, len=1074334712
0(29780) ***: after adding IP, len=1074334739
0(29780) ***: after adding fom tag, len=1074334755
0(29780) record_route_preset(): No memory left
0(29780) parse_headers: flags=200
0(29780) DEBUG: get_hdr_body : content_length=295
0(29780) found end of header
[...]
0(29780) parse_headers: flags=80
0(29780) xl_printf: final buffer length 125
0(29780) Sat Feb 4 00:04:31 2006:
<sip:00045977408@sipbase.de>;tag=q1snnhms5k : record_route_preset(
"217.160.188.74:5060;nat=yes" )
0(29780) ***: after adding user, len=1074334712
0(29780) ***: after adding IP, len=1074334739
0(29780) ***: after adding fom tag, len=1074334755
0(29780) record_route_preset(): No memory left
0(29780) parse_headers: flags=200
0(29780) DEBUG: get_hdr_body : content_length=295
0(29780) found end of header
--- snap ---
It looks like there is a problem with the user. Could it be that the
tailing "000" are the problem?
Regards
Bastian
Bogdan-Andrei Iancu schrieb:
Hi Bastian,
look like the problem is not generated by the script parameter, but
because of some values extract from the SIP msg (like user and from tag).
please revert the previous patch and apply this new one - it will report
the len of the constructed hdr after each step - it will hep to identify
the bogus value.
regards,
bogdan
Bastian Schern wrote:
Hi Bogdan,
I applied your patch and got that results:
--- snip ---
[...]
0(0) xl_parse_format: format parsed OK: [4] items
0(0) fixing /lib/openser/modules/ record_route_preset
0(0) ***: str ptr=0x8129e50, str len=27, str s=0x8119a30 0(0) fixing
/lib/openser/modules/ xlog
0(0) xl_parse_format: parsing [$Tf: <$fu>;tag=$ft : record_route()
[...]
0(14144) xl_printf: final buffer length 125
0(14144) Fri Feb 3 00:23:20 2006:
<sip:00045977408@sipbase.de>;tag=etlg7wbdxp : record_route_preset(
"217.160.188.74:5060;nat=yes" )
0(14144) ***: str ptr=0x8129e50, str len=27, str s=0x8119a30 0(14144)
record_route_preset(): No memory left
0(14144) parse_headers: flags=200
[...]
0(14144) xl_printf: final buffer length 125
0(14144) Fri Feb 3 00:23:20 2006:
<sip:00045977408@sipbase.de>;tag=etlg7wbdxp : record_route_preset(
"217.160.188.74:5060;nat=yes" )
0(14144) ***: str ptr=0x8129e50, str len=27, str s=0x8119a30 0(14144)
record_route_preset(): No memory left
0(14144) parse_headers: flags=200
0(14144) DEBUG: get_hdr_body : content_length=297
0(14144) found end of header
0(14144) find_first_route: No Route headers found
[...]
--- snap ---
Regards
Bastian
------------------------------------------------------------------------
? modules/rr/.record.c.swp
Index: modules/rr/record.c
===================================================================
RCS file: /cvsroot/openser/sip-server/modules/rr/record.c,v
retrieving revision 1.4
diff -u -r1.4 record.c
--- modules/rr/record.c 22 Nov 2005 12:35:30 -0000 1.4
+++ modules/rr/record.c 3 Feb 2006 11:24:19 -0000
@@ -357,12 +357,16 @@
}
hdr_len = RR_PREFIX_LEN;
- if (user.len)
+ if (user.len) {
hdr_len += user.len + 1; /* @ */
+ DBG("***: after adding user, len=%d\n",hdr_len);
+ }
hdr_len += ((str*)_data)->len;
+ DBG("***: after adding IP, len=%d\n",hdr_len);
if (append_fromtag && from->tag_value.len) {
hdr_len += RR_FROMTAG_LEN + from->tag_value.len;
+ DBG("***: after adding fom tag, len=%d\n",hdr_len);
}
if (enable_full_lr) {
____________
Virus checked by G DATA AntiVirusKit
Version: AVK 16.5268 from 03.02.2006
Virus news: