nsmcp::AccessDiagnosticTool method classify (public)
<instance of nsmcp::AccessDiagnosticTool> classify record maps \ target
Defined in /usr/local/ns/tcl/nsmcp/traffic-tools.tcl
- Parameters:
- record (required)
- maps (required)
- target (required)
- Testcases:
- No testcase defined.
Source code: set matches {}; set unknown 0; set index 0 foreach map $maps { set id $index; incr index if {[llength $map] ni {4 5}} {incr unknown; continue} lassign $map method base glob inherit condition if {$method ne [dict get $record method]} continue if {$base ne "/" || $glob ne "*" || $inherit ne "inherit" || [llength $map]!=5} {incr unknown; continue} if {[llength $condition]!=2 || ![string equal -nocase [lindex $condition 0] user-agent]} {incr unknown; continue} if {![dict exists $record userAgent]} {incr unknown; continue} if {[string match [lindex $condition 1] [dict get $record userAgent]]} {lappend matches $id} } if {[dict get $record pool] eq "unknown"} { set category unknown } elseif {[llength $matches]} { set category [expr {[dict get $record pool] eq $target ? "matching-rule-in-target" : "matching-rule-other-pool-candidate"}] } elseif {$unknown || ![dict exists $record userAgent]} { set category unknown } elseif {[regexp -nocase {bot|crawl|spider|baidu|knowledge} [dict get $record userAgent]] && [dict get $record pool] ne $target} { set category bot-like-unmatched-heuristic } else {set category no-target-rule-match} return [dict create category $category matchingRuleIndexes $matches unknownRules $unknown]XQL Not present: Generic, PostgreSQL, Oracle
![[i]](/resources/acs-subsite/ZoomIn16.gif)