Hi Matt,
Thanks for the response.
In the beginning of the if statement we have "if (!(" what does the
exclamation point symbolize there?
Also, here:
req.http.Cookie !~ "member_id=(0|-1)"
This is not the same as saying that the cookie member_id does not have
the value of 0 or -1?
Thanks again, I appreciate the assistance here.
Quoting "Matthew Wilkes" <[email protected]>:
On 2011-07-27, at 1819, [email protected] wrote:
if (!((req.http.Cookie ~ "member_id=" && req.http.Cookie !~
"member_id=(0|-1)") || req.http.Cookie ~
"(guestSkinChoice|language)")) {
Execute what's here....
}
What I *think* this should do is only "Execute what's here" if:
there is not a member_id cookie
there is not a member_id cookie that equals 0 or -1
Am I incorrect?
Let's build this up bit by bit:
(req.http.Cookie ~ "member_id=" && req.http.Cookie !~ "member_id=(0|-1)")
There is a cookie with a name ending in 'member_id', and it doesn't
with 0 or -1. We call this the member_id condition.
(!(member_id condition || req.http.Cookie ~ "(guestSkinChoice|language)"))
The next bit is:
req.http.Cookie ~ "(guestSkinChoice|language)"
'getSkinChoice' or 'language' exists in any cookie name or value.
We call this one the preferences condition.
(!(member_id condition || preferences_condition))
So we end up with a NOT-ed OR, meaning neither. Hence, your condition means:
There is not a cookie with a name ending in 'member_id', or there is
one that starts with 0 or -1. In addition, neither 'getSkinChoice'
nor 'language' exist in any cookie name or value.
If you get confused by boolean logic it's best to write the
conditions out as nested if statements.
Matt
_______________________________________________
varnish-misc mailing list
[email protected]
https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc