Forum Discussion
IheartF5_45022
Nacreous
Is this what you're after?
when XML_CONTENT_BASED_ROUTING {
for {set i 0} { $i < $XML_count } {incr i} {
if {($XML_queries($i) contains "CDetails")} {
pool qa2-pool
} elseif {($XML_queries($i) contains "GetBalances")} {
pool qa2-pool
}
log local0. "IP:[IP::remote_addr] XML_queries\($i\):$XML_queries($i) pool:[LB::server pool]"
}
}
BTW the logic above doesn't quite make sense - you may want to put a 'break' statement in to leave the loop?
IheartF5_45022
Jan 23, 2017Nacreous
So once you've found an element that contains the string you are looking for - do you need to keep looking? If you can stop looking after finding the first occurrence, you can use 'break' to leave the loop.
when XML_CONTENT_BASED_ROUTING {
for {set i 0} { $i < $XML_count } {incr i} {
log local0. "$i: $XML_queries($i)"
switch -glob -- $XML_queries($i) {
"*CDetails*" -
"*GetBalances*" -
"*GetSPoints*" {
log local0. "Choosing pool prd2_pool"
pool prd2_pool
break
}
}
}
Ignore the switch (I like how switches look), the main point is the 'break'