On Sun, 2011-04-10 at 12:01 +0200, Daniel-Constantin Mierla wrote:

> Hello,
> 
> can you send the patches using 'diff  -u' (unified format) and attached 
> as a file? It is easier to get it and apply it.
> 
> If you work on a source tree downloaded from git, you can do as well: 
> 'git diff modules_k/xcap_server/'
> 
> Thanks,
> Daniel
> 
> On 4/8/11 11:58 PM, Peter Dunkley wrote:
> > Hello,
> >
> > I've been testing with a commercial presence and XCAP client and have
> > discovered a bug in the XCAP Server module.
> >
> > The HTTP responses sent by the XCAP Server module contain a "SIP-ETag:"
> > header.  "SIP-ETag:" is the correct header for SIP, but HTTP responses are
> > supposed to have an "ETag:" header.  See RFC 2616 section 14.19.
> >
> > Some clients can do a partial match and work with "SIP-ETag:", but the one
> > I have been testing with is strict and requires the correct header field
> > name.
> >
> > This was a simple fix and I have included a diff below.
> >
> > Regards,
> >
> > Peter
> >
> >
> > # diff xcap_server-3.1.3/ xcap_server/
> > Common subdirectories: xcap_server-3.1.3/doc and xcap_server/doc
> > diff xcap_server-3.1.3/xcap_server.c xcap_server/xcap_server.c
> > 553,554c553,554
> > <        etag.s = etag_hdr.s + 10; /* 'SIP-ETag: ' */
> > <        etag.len = etag_hdr.len - 12; /* 'SIP-ETag: '  '\r\n' */
> > ---
> >>        etag.s = etag_hdr.s + 6; /* 'ETag: ' */
> >>        etag.len = etag_hdr.len - 8; /* 'ETag: '  '\r\n' */
> > 657c657
> > <                        "SIP-ETag: %.*s\r\n", s.len, s.s);
> > ---
> >>                        "ETag: %.*s\r\n", s.len, s.s);
> > 956,957c956,957
> > <                etag.s = etag_hdr.s + 10; /* 'SIP-ETag: ' */
> > <                etag.len = etag_hdr.len - 12; /* 'SIP-ETag: '  '\r\n' */
> > ---
> >>                etag.s = etag_hdr.s + 6; /* 'ETag: ' */
> >>                etag.len = etag_hdr.len - 8; /* 'ETag: '  '\r\n' */
> > 1050c1050
> > <                        "SIP-ETag: sr-%d-%d-%d\r\n", xcaps_init_time,
> > my_pid(),
> > ---
> >>                        "ETag: sr-%d-%d-%d\r\n", xcaps_init_time, my_pid(),
> >
> 


-- 
Peter Dunkley
Technical Director
Crocodile RCS Ltd
Common subdirectories: xcap_server-3.1.3/doc and xcap_server/doc
diff -u xcap_server-3.1.3/xcap_server.c xcap_server/xcap_server.c
--- xcap_server-3.1.3/xcap_server.c	2011-03-07 13:43:33.914172000 +0000
+++ xcap_server/xcap_server.c	2011-04-06 14:59:27.696605000 +0100
@@ -550,8 +550,8 @@
 		LM_ERR("could not generate etag\n");
 		goto error;
 	}
-	etag.s = etag_hdr.s + 10; /* 'SIP-ETag: ' */
-	etag.len = etag_hdr.len - 12; /* 'SIP-ETag: '  '\r\n' */
+	etag.s = etag_hdr.s + 6; /* 'ETag: ' */
+	etag.len = etag_hdr.len - 8; /* 'ETag: '  '\r\n' */
 	if(xcaps_put_db(&turi.user, &turi.host,
 				&xuri, &etag, &body)<0)
 	{
@@ -654,7 +654,7 @@
 		goto error;
 	}
 	etag->len = snprintf(xcaps_etag_buf, XCAPS_ETAG_SIZE,
-			"SIP-ETag: %.*s\r\n", s.len, s.s);
+			"ETag: %.*s\r\n", s.len, s.s);
 	if(etag->len < 0)
 	{
 		LM_ERR("error printing etag hdr\n ");
@@ -953,8 +953,8 @@
 			LM_ERR("could not generate etag\n");
 			goto error;
 		}
-		etag.s = etag_hdr.s + 10; /* 'SIP-ETag: ' */
-		etag.len = etag_hdr.len - 12; /* 'SIP-ETag: '  '\r\n' */
+		etag.s = etag_hdr.s + 6; /* 'ETag: ' */
+		etag.len = etag_hdr.len - 8; /* 'ETag: '  '\r\n' */
 		if(xcaps_put_db(&turi.user, &turi.host,
 				&xuri, &etag, &body)<0)
 		{
@@ -1047,7 +1047,7 @@
 int xcaps_generate_etag_hdr(str *etag)
 {
 	etag->len = snprintf(xcaps_etag_buf, XCAPS_ETAG_SIZE,
-			"SIP-ETag: sr-%d-%d-%d\r\n", xcaps_init_time, my_pid(),
+			"ETag: sr-%d-%d-%d\r\n", xcaps_init_time, my_pid(),
 			xcaps_etag_counter++);
 	if(etag->len <0)
 	{
_______________________________________________
sr-dev mailing list
[email protected]
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to