Hi Daniel,
I just committed on CVS a solution to this problem. If you could test it
more intensively, I will appreciate it ;)
regards,
bogdan
Bogdan-Andrei Iancu wrote:
Hi Daniel,
I haven't double check the RFC to see if multiple hdrs are allowed for
ALLOW or SUPPORTED hdr.
But if it so, the solution will be to extend the structure that stores
the parsed body to allow the chaining of this hdr (in the same way as
for Contact hdr): the msg->allow points to the first hdr; the parsed
structure contains also a pointer to the next ALLOW hdr and so on.
the parsed structure will also contain the combined masks from all the
ALLOW hdrs - to avoid getting through the list each time you need the
allow mask.
regards,
bogdan
Daniel Hsueh wrote:
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?
_______________________________________________
Devel mailing list
[email protected]
http://openser.org/cgi-bin/mailman/listinfo/devel
_______________________________________________
Devel mailing list
[email protected]
http://openser.org/cgi-bin/mailman/listinfo/devel