Yeah, something like that would be really useful for modules like ours. 

Dk. 

> On Dec 18, 2019, at 6:44 AM, Alan Carroll 
> <solidwallofc...@verizonmedia.com.INVALID> wrote:
> 
> I'm trying to think how that could be done. The best option would be to
> save aside the original buffer, which is currently discarded after parsing.
> That might not be too bad to implement, with a configuration switch to
> indicate whether the raw buffer should be preserved.
> 
>> On Tue, Dec 17, 2019 at 7:02 PM Dk Jack <dnj0...@gmail.com> wrote:
>> 
>> Thanks Alan. Would be nice to have in future if possible. We have an nginx
>> module as well, where the module can access to original raw string. We’ll
>> have live with this for now.
>> 
>> Dk.
>> 
>>> On Dec 17, 2019, at 3:56 PM, Alan Carroll
>> <solidwallofc...@verizonmedia.com.INVALID> wrote:
>>> 
>>> I don't see any direct way to do that - the optional white space is
>> mostly
>>> ignored. The one trace that's left is the relationship between the
>> address
>>> of the name and value of the field. Even if these are copied in to the
>>> HdrHeap, they are copied as a pair. Therefore the amount of whitespace
>>> could be computed as (value.data() - (name.data() + name.size())) - 1
>>> (don't count the colon). This won't work for fields where the value has
>>> been changed, because the new value will be independent.
>>> 
>>>> On Tue, Dec 17, 2019 at 4:41 PM Dk Jack <dnj0...@gmail.com> wrote:
>>>> 
>>>> Perhaps, I should have started with the use case. Yes, our module is
>>>> sensitive to the space in the headers. Our module implements security
>>>> policies. One of the things we look at is headers and their values. How
>>>> they compare when a normal browser sends them vs when sent using a
>> script
>>>> Etc. We rely on these sort anomalies to tease out the good from the bad.
>>>> Not able extract the exact string that was sent by the client reduces
>> our
>>>> effectiveness. Hope you now understand the motivation behind my
>> question.
>>>> Thanks.
>>>> 
>>>> 
>>>> 
>>>>> On Dec 17, 2019, at 7:23 AM, Alan Carroll
>>>> <solidwallofc...@verizonmedia.com.INVALID> wrote:
>>>>> 
>>>>> You are seeing them "as is" - the view is literally the memory in which
>>>>> those values are stored. The space between the colon and the value is
>> not
>>>>> part of the value, it's part  of the syntax no different than the
>> colon.
>>>>> That is, you
>>>>> used "%s:%s" to print the name/value for the field. Note the literal
>>>> colon
>>>>> - that should be a literal colon, space because that is part of the
>>>> syntax.
>>>>> See here - https://tools.ietf.org/html/rfc7230#section-3.2 - note the
>>>>> "value" part of the definition is distinct from the optional white
>> space
>>>>> (OWS).
>>>>> 
>>>>> I'm unclear as to what you want to accomplish - if it's printing it
>>>> nicer,
>>>>> just put a space in your printf format string. Do you have some
>>>> application
>>>>> that is sensitive to the amount of white space?
>>>>> 
>>>>>> On Mon, Dec 16, 2019 at 6:46 PM Dk Jack <dnj0...@gmail.com> wrote:
>>>>>> 
>>>>>> Thans Alan,
>>>>>> 
>>>>>> I can understand when constructing a new field, but the behavior I saw
>>>> was
>>>>>> for
>>>>>> incoming request headers. Is there an option to see the received
>> headers
>>>>>> as is?
>>>>>> 
>>>>>> 
>>>> 
>> 

Reply via email to