You are pretty darn close. The only thing I see that is sticking out is that you have the findstr arguments in the wrong place. The skip count of 4 should be before the termination character and you have a comma in there that would also cause a load error.
One other point is that you might want to put some sanity checks in there. What happens if there is no "srv=" GET parameter? Then findstr will return an empty string and you will call the node command with an empty string. Probably not what you intended. Here's your rule with a few sanity checks included
when HTTP_REQUEST {
if {[HTTP::host] equals "www.somehost.com"} {
set my_findstr [findstr [HTTP::uri] "srv=" 4 "&"]
if { [string length $my_findstr] > 0 } {
set new_node [findclass $my_findstr $::urlaff_retailcf " "]
if { [string length $new_node] > 0 } {
node $new_node
}
}
}
}
*disclaimer, this code hasn't been fully tested.
-Joe