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(),
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(),
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(),