On Fri, Mar 10, 2017 at 12:35 PM, Andrei Ivanov <andrei.iva...@gmail.com>
wrote:

> On Tue, Mar 7, 2017 at 7:08 PM, Andrei Ivanov <andrei.iva...@gmail.com>
> wrote:
>
>> On Mon, Mar 6, 2017 at 12:57 PM, Yann Ylavic <ylavic....@gmail.com>
>> wrote:
>>
>>> Hi Andrei,
>>>
>>> On Mon, Mar 6, 2017 at 10:15 AM, Andrei Ivanov <andrei.iva...@gmail.com>
>>> wrote:
>>>
>>>> On Thu, Mar 2, 2017 at 12:40 PM, Andrei Ivanov <andrei.iva...@gmail.com
>>>> > wrote:
>>>>
>>>>> On Tue, Feb 28, 2017 at 12:09 PM, Andrei Ivanov <
>>>>> andrei.iva...@gmail.com> wrote:
>>>>>
>>>>>> On Mon, Feb 27, 2017 at 11:58 AM, Andrei Ivanov <
>>>>>> andrei.iva...@gmail.com> wrote:
>>>>>>
>>>>>>> On Fri, Feb 24, 2017 at 10:58 PM, Andrei Ivanov <
>>>>>>> andrei.iva...@gmail.com> wrote:
>>>>>>>
>>>>>>>> On Feb 24, 2017 22:54, "Yann Ylavic" <ylavic....@gmail.com> wrote:
>>>>>>>>
>>>>>>>> On Fri, Feb 24, 2017 at 6:50 PM, Andrei Ivanov <
>>>>>>>> andrei.iva...@gmail.com> wrote:
>>>>>>>> >
>>>>>>>> > I've managed to apply your patch and rebuild Apache and now I
>>>>>>>> have:
>>>>>>>> > Header set Client-IP "expr=%{REMOTE_ADDR}"
>>>>>>>> > Header set Client-SAN "expr=%{PeerExtList:2.5.29.17}"
>>>>>>>> > Header set Client-DN "expr=%{SSL_CLIENT_S_DN}"
>>>>>>>>
>>>>>>>> Could you please add:
>>>>>>>>   Header set Expr "'IP Address:'.%{REMOTE_ADDR} -in
>>>>>>>> PeerExtList('2.5.29.17')"
>>>>>>>> ?
>>>>>>>>
>>>>>>>> If it outputed "Expr: IP Addressfalse" that'd be issue with
>>>>>>>> operators'
>>>>>>>> precedence.
>>>>>>>> I'll try on my side, but you may beat me to it since you have the
>>>>>>>> environment...
>>>>>>>>
>>>>>>>>
>>>>>>>> Ugh, it's my work environment, I'll be able to access it only on
>>>>>>>> Monday.
>>>>>>>>
>>>>>>>>
>>>>>>> Tried now, I've adapted your suggestion a bit as it doesn't seem
>>>>>>> correct:
>>>>>>>
>>>>>>> Header set Expr "expr='IP Address:'.%{REMOTE_ADDR} -in
>>>>>>> %{PeerExtList:2.5.29.17}"
>>>>>>>
>>>>>>> This results in:
>>>>>>> Expr: 'IP Address:'.159.107.78.127 -in email:<redacted1>,
>>>>>>> email:<redacted2>, IP Address:127.0.0.1, IP Address:0:0:0:0:0:0:0:1, IP
>>>>>>> Address:159.107.78.127, IP Address:FE80:0:0:0:6D03:4CE1:C15F:5A44
>>>>>>>
>>>>>>> As far as I understand, it doesn't perform the concatenation
>>>>>>> properly.
>>>>>>> I've tried
>>>>>>> Header set Expr "expr='%{IP Address:'
>>>>>>> ​​
>>>>>>> .%{REMOTE_ADDR}} -in %{PeerExtList:2.5.29.17}"
>>>>>>>
>>>>>>> But I get a parse error at startup:
>>>>>>> Can't parse value expression : syntax error, unexpected T_ERROR,
>>>>>>> expecting T_VAR_END or ':': Invalid character in variable name ' '
>>>>>>>
>>>>>>> But I think mod_headers has some different way of interpreting
>>>>>>> expressions, because this doesn't work:
>>>>>>>
>>>>>>> Header set matched false
>>>>>>> <If "'IP Address:'.%{REMOTE_ADDR} -in
>>>>>>> ​​
>>>>>>> %{PeerExtList:2.5.29.17}">
>>>>>>>     Header set matched true
>>>>>>> </If>
>>>>>>>
>>>>>>> Cannot parse condition clause: syntax error, unexpected T_VAR_BEGIN,
>>>>>>> expecting T_ID or '{
>>>>>>>
>>>>>>
>>>>>> Yann? Any clues? :-)
>>>>>>
>>>>>
>>>>> Ping 😐
>>>>>
>>>>
>>>> Hello?
>>>>
>>>
>>> ​Yes sorry, was busy these days ;)
>>>
>>
>> I understand, who isn't? :-)
>>
>> ​
>>> ​Mixing different types (string, boolean, list) of expressions is not
>>> working currently, and requires changes in the parser (I'll try to work on
>>> this soon).
>>>
>>> In the meantime, maybe with my patch you could try to (uglily) match
>>> "%{PeerExtList:2.5.29.17}" (as a string, hence with the operator "~=")
>>> against something like "IP Address:".​%{REMOTE_ADDR}(,|$) ?
>>>
>>> I've experimented a bit more with your suggestion, still doesn't work :-(
>>
>> Header set Expr1 "expr='IP Address:'.%{REMOTE_ADDR} -in
>> %{PeerExtList:2.5.29.17}"
>> Header set Expr2 "expr=%{PeerExtList:2.5.29.17} =~ /%{REMOTE_ADDR}/"
>> Header set Expr3 "expr=%{PeerExtList:2.5.29.17} =~ /159.107.78.131/"
>>
>> Expr1: 'IP Address:'.159.107.78.131 -in email:<redacted1>,
>> email:<redacted2>, IP Address:127.0.0.1, IP Address:0:0:0:0:0:0:0:1, IP
>> Address:159.107.78.131, IP Address:FE80:0:0:0:6D03:4CE1:C15F:5A44
>> Expr2: email:<redacted1>, email:<redacted2>, IP Address:127.0.0.1, IP
>> Address:0:0:0:0:0:0:0:1, IP Address:159.107.78.131, IP
>> Address:FE80:0:0:0:6D03:4CE1:C15F:5A44 =~ /159.107.78.131/
>> Expr3: email:<redacted1>, email:<redacted2>, IP Address:127.0.0.1, IP
>> Address:0:0:0:0:0:0:0:1, IP Address:159.107.78.131, IP
>> Address:FE80:0:0:0:6D03:4CE1:C15F:5A44 =~ /159.107.78.131/
>>
>> So for mod_headers the expression isn't fully evaluated...
>>
>> Header set matched-dynamic false
>> <If "%{PeerExtList:2.5.29.17} =~ /%{REMOTE_ADDR}/">
>>     Header set matched-dynamic true
>> </If>
>> Header set matched-static false
>> <If "%{PeerExtList:2.5.29.17} =~ /159.107.78.131/">
>>     Header set matched-static true
>> </If>
>>
>> matched-dynamic: false
>> matched-static: true
>>
>> The match against a dynamic expression fails.
>>
>> Require expr "PeerExtList('2.5.29.17') =~ /'IP
>> Address:'.%{REMOTE_ADDR}(,|$)/"
>> Require expr "PeerExtList('2.5.29.17') =~ /'IP
>> Address:159.107.78.131'(,|$)/"
>>
>> These both fail :-(
>>
>> Thank you for your patience.
>>
>
> Hello?πŸ˜•
>

Yann? I'm getting squeezed here, please help 😩

Reply via email to