Forum Discussion
Andras_Kis-Szab
Feb 22, 2016Nimbostratus
My ICAP-VS iRule with some debug options (ICAP and internal HTTP)
when ICAP_RESPONSE {
log local0. "ICAP [HTTP::header value ICAP_UID] ==> [ICAP::status]"
if { not ( [ICAP::status] == 200 ) } {
foreach aHeader [ICAP::header names] {
log local0. "ICAP [HTTP::header value ICAP_UID] $aHeader: [ICAP::header value $aHeader]"
}
foreach aHeader [HTTP::header names] {
log local0. "ICAP [HTTP::header value ICAP_UID] HTTP $aHeader: [HTTP::header value $aHeader]"
}
}
if { [ICAP::header exists X-Violations-Found] } {
HTTP::header insert ICAP_VIO [ICAP::header value X-Violations-Found]
} else {
HTTP::header insert ICAP_VIO "No violations"
}
if { [ICAP::header exists X-Infection-Found] } {
HTTP::header insert ICAP_INF [ICAP::header value X-Infection-Found]
} else {
HTTP::header insert ICAP_INF "Not infected"
}
}
My VS-SIDE iRule snipp:
set x []
set y []
set z []
set w []
lappend y "description" "Virus found"
lappend z "code" [HTTP::header value ICAP_VIO]
lappend w "details" [HTTP::header value ICAP_INF]
lappend x $y $z $w
log local0. "$LogString ICAP $uid AV_BLOCK $x"
HTH