nsmcp::accessFailureOptions

 nsmcp::accessFailureOptions

Defined in

Partial Call Graph (max 5 caller/called nodes):
Class ::nsmcp::AccessFileSummaryTool Class ::nsmcp::AccessFileSummaryTool (public) nsmcp::accessFailureOptions nsmcp::accessFailureOptions Class ::nsmcp::AccessFileSummaryTool->nsmcp::accessFailureOptions accessFileScan accessFileScan accessFileScan->nsmcp::accessFailureOptions instproc instproc instproc->nsmcp::accessFailureOptions nsmcp::AccessFileSummaryTool instproc options nsmcp::AccessFileSummaryTool instproc options (protected) nsmcp::AccessFileSummaryTool instproc options->nsmcp::accessFailureOptions nsmcp::AccessRecordSupport instproc accessRecordScan nsmcp::AccessRecordSupport instproc accessRecordScan (protected) nsmcp::AccessRecordSupport instproc accessRecordScan->nsmcp::accessFailureOptions

Testcases:
No testcase defined.
Source code:
    set options [dict merge {status {} statusClass {} pool {} method {} recordSource all bucketSeconds {}} $options]
    set status [dict get $options status]
    set class [dict get $options statusClass]
    if {$status ne {} && (![string is integer -strict $status] || $status<100 || $status>599)} {
        error "status must be 100..599"
    }
    if {$class ne {} && $class ni {1xx 2xx 3xx 4xx 5xx 4xx/5xx}} {
        error "statusClass must be 1xx..5xx or 4xx/5xx"
    }
    if {$status ne {} && $class ne {}} {
        error "Use status or statusClass, not both"
    }
    foreach key {pool method} {
        set value [dict get $options $key]
        if {[string length [encoding convertto utf-8 $value]]>128 || [regexp {[\x00-\x20\x7f]} $value]} {
            error "$key must be an exact value without spaces/control characters, at most 128 UTF-8 bytes"
        }
    }
    if {[dict get $options method] ne {} && ![regexp {^[A-Z][A-Z0-9_-]{0,31}$} [dict get $options method]]} {
        error "method must be an uppercase HTTP method, at most 32 characters"
    }
    if {[dict get $options recordSource] ni {all driver connection unknown}} {
        error "Invalid recordSource"
    }
    set seconds [dict get $options bucketSeconds]
    set span [expr {[dict get $options to]-[dict get $options from]}]
    if {$seconds eq {}} {
        set seconds [expr {max(1,int(ceil($span/60.0)))}]
    }
    if {![string is integer -strict $seconds] || $seconds<1 || int(ceil($span/double($seconds)))>3600} {
        error "bucketSeconds must be positive and produce at most 3600 buckets"
    }
    dict set options bucketSeconds $seconds
    return $options
XQL Not present:
Generic, PostgreSQL, Oracle
[ hide source ] | [ make this the default ]
Show another procedure: