[reSIProcate] From header valid?
julien
julien at aplix.co.jp
Sun Nov 19 22:08:03 CST 2006
Hello, thank you for your explanations, they are most valuable :-)
Another question about the parser,
Does the parser verify if a name address is conform to RFC 3261 ?
for example I have this test that fails to recognize an invalid host
address :
Data myString = "sip:user:password at do@@@.com:4242";
ParseBuffer pb(myString .data(), myString .size());
NameAddr address;
address.parse(pb);
Uri& uri = address.uri();
I get :
uri.scheme = "sip"
uri.user = "user"
uri.password = "password"
uri.host = "do@@@.com"
uri.port = 4242
So the uri is parsed(/concidered valid ?), but the value "do@@@.com" is
not a correct host name...
is it a bug or should I check by myself if each value is conform to RFC?
Thanks again to everyone for your precious help!
Best regards
Julien
> SipMessage::addHeader() is not intended to be used directly like
> that; this is the method that the pre-parser uses to add headers.
> Adding a header in this way carries a couple of special consequences:
> first, the buffer specified by "value" is not owned by the header that
> is created, but it must persist for the lifetime of the SipMessage
> (the header is an overlay), and second, the parse of the header will
> not be carried out until something attempts to access it. The
> preferred method for adding a header to a SipMessage is something like
> the following:
>
> *snip*
> NameAddr from("sip:user at host.com");
> sipMessage.header(h_From)=from;
> *snip*
>
> Best regards,
> Byron Campen
>
>> Hello,
>> to add the header to the message I am doing :
>> message->addHeader(Headers::getType(name, nameLength), name,
>> nameLength, value, valueLength);
>> where name = "from" and value = "user at host.com"
>>
>> So this header should not be valid right?
>> I am thinking about adding a test after addHeader to force the parsing.
>> What do you think?
>>
>> Thanks for your help :-)
>> Julien
>>
>> Byron Campen a écrit :
>>> You're probably tripping over the lazy-parser somehow. If this
>>> comes off the wire, it will not be parsed until you try to start
>>> accessing parts of it. Adding a parameter in this case will trigger
>>> a parse, and the parse will fail. However, if you are creating this
>>> NameAddr manually, how are you constructing it?
>>>
>>> Best regards,
>>> Byron Campen
>>>
>>>> Hello,
>>>> Sorry I have a small question, could one of you tell me,
>>>> if this is a valid from header?
>>>> From: user at host.com
>>>>
>>>> Sorry to ask that, resiprocate generates a parse error when I try
>>>> to add
>>>> the "tag=", (probably complaining about missing scheme)
>>>> but does not complain if I send a message as it is. (Why is that?)
>>>>
>>>> Thank you for your help
>>>>
>>>> --Julien Saito
>>>> ジュリアン 齋藤
>>>> julien at aplix.co.jp
>>>>
>>>>
>>>> _______________________________________________
>>>> resiprocate-devel mailing list
>>>> resiprocate-devel at list.sipfoundry.org
>>>> https://list.sipfoundry.org/mailman/listinfo/resiprocate-devel
>>>
>>>
>>>
>>
>>
>> --Julien Saito
>> ジュリアン 齋藤
>> julien at aplix.co.jp
>>
>>
>
>
>
--
Julien Saito
ジュリアン 齋藤
julien at aplix.co.jp
More information about the resiprocate-devel
mailing list