[Devel] openser -- problems with multiple headers of the same type?
Daniel Hsueh
dhsueh at somanetworks.com
Tue Feb 14 19:26:36 CET 2006
Hello,
I've noticed this problem while coding a module, and I'm wondering if
it's a known problem or not:
Some parts of openser code assume that there will only be one instance
of a certain header whereas the values can be actually spread across
multiple headers on multiple lines.
For example, the "Allow:" header is usually seen with all the method
names on one line:
Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, SUBSCRIBE
but the following is legal as well:
Allow: ACK, BYE
Allow: CANCEL, INFO, INVITE
[junk in between]
Allow: NOTIFY, OPTIONS, SUBSCRIBE
Other headers that can be split up like this include Supported,
Proxy-Require.
It isn't difficult to parse_headers(HDR_EOH_F) and then run through the
(struct sip_msg *)p->headers linked list to find all instances of the
header you want, but there already exists code that assumes that there
will be only one instance (e.g., parse_allow, get_allow_methods, any of
the named struct hdr_field members of struct sip_msg).
Yes?
--
Daniel Hsueh mailto:dhsueh at somanetworks.com
SOMA Networks tel:+1-416-348-1631
More information about the Devel
mailing list