Forum Discussion
Rusty_Hale_8009
Jan 26, 2007Nimbostratus
Joe, What do you think about this logic?
when RULE_INIT {
array set ::active_clients { }
}
when CLIENT_ACCEPTED {
set client_ip [IP::remote_addr]
set conn_threshold 10
if { [info exists ::active_clients($client_ip)] } {
if {$::active_clients($client_ip) > $conn_threshold } {
set total_cons $::active_clients($client_ip)
log local0.info "$client_ip exceeded $conn_threshold Total Connections: $total_cons using VS [IP::local_addr]"
return
} else {
incr ::active_clients($client_ip)
}
} else {
set ::active_clients($client_ip) 1
}
}
when CLIENT_CLOSED {
if { [info exists ::active_clients($client_ip)] } {
incr ::active_clients($client_ip) -1
if { $::active_clients($client_ip) <= 0 } {
unset ::active_clients($client_ip)
}
}
}