CGI
Jan 11, 2011Altostratus
Irule problem
Hi iam trying to combine a couple of functions into one irule, the irule should look at the origin land
of the request allowing only countries i a specific data list and then look at the the i...
This part works if i remove the log local :-
when CLIENT_ACCEPTED {
if {([class match [whereis [IP::client_addr] country] eq allowed_country] or [class match [IP::client_addr] eq allowed_ip])} {
set allowed 1 }
else { set allowed 0
log local0. "Blocked Country client IP: [IP::client_addr] from [whereis [IP::client_addr] country]"}}
like:-
when CLIENT_ACCEPTED {
if {([class match [whereis [IP::client_addr] country] eq allowed_country] or [class match [IP::client_addr] eq allowed_ip])} {
set allowed 1 }
else { set allowed 0 }}
But the bottom part does not work either :-
if { ([$allowed eq 1] and [whereis [IP::client_addr] country ] eq "dk" and [[HTTP::uri] contains "/compass/*"])}{
pool Compass_http_pool}
else {pool OnDemand_htp_pool}}
So iam cheking the ip´s first against two data lists one that is called allowed ip´s and one thats allowed countries and allowing certain ip´s and
countries through but (and i would like to log the traffik) but then if one of the urls includes /compass/ and is from denmark then it should be sent to
a seperate pool all others to the default pool.
Iam afraid iam not so accomplished with the syntax.
Regards Craig