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?πŸ˜•

Reply via email to