1911106dfSjm199354 #!/usr/sbin/dtrace -s 2911106dfSjm199354 /* 3911106dfSjm199354 * CDDL HEADER START 4911106dfSjm199354 * 5911106dfSjm199354 * The contents of this file are subject to the terms of the 6911106dfSjm199354 * Common Development and Distribution License (the "License"). 7911106dfSjm199354 * You may not use this file except in compliance with the License. 8911106dfSjm199354 * 9911106dfSjm199354 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10911106dfSjm199354 * or http://www.opensolaris.org/os/licensing. 11911106dfSjm199354 * See the License for the specific language governing permissions 12911106dfSjm199354 * and limitations under the License. 13911106dfSjm199354 * 14911106dfSjm199354 * When distributing Covered Code, include this CDDL HEADER in each 15911106dfSjm199354 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16911106dfSjm199354 * If applicable, add the following below this CDDL HEADER, with the 17911106dfSjm199354 * fields enclosed by brackets "[]" replaced with your own identifying 18911106dfSjm199354 * information: Portions Copyright [yyyy] [name of copyright owner] 19911106dfSjm199354 * 20911106dfSjm199354 * CDDL HEADER END 21911106dfSjm199354 */ 22911106dfSjm199354 /* 2353c11029Sjm199354 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 24911106dfSjm199354 * Use is subject to license terms. 25911106dfSjm199354 */ 26911106dfSjm199354 27911106dfSjm199354 #pragma ident "%Z%%M% %I% %E% SMI" 28911106dfSjm199354 29*bfc848c6Sjm199354 /* 30911106dfSjm199354 #pragma D option flowindent 31*bfc848c6Sjm199354 */ 32911106dfSjm199354 33911106dfSjm199354 /* 34911106dfSjm199354 *** vscan kernel pseudo driver *** 35911106dfSjm199354 */ 36911106dfSjm199354 37*bfc848c6Sjm199354 /* 38*bfc848c6Sjm199354 * vscan_svc.c 39*bfc848c6Sjm199354 */ 40*bfc848c6Sjm199354 sdt:vscan::vscan-req-counts 41*bfc848c6Sjm199354 { 42*bfc848c6Sjm199354 printf("%s reql: %d, node: %d, taskq: %d", 43*bfc848c6Sjm199354 stringof(arg0), 44*bfc848c6Sjm199354 ((vscan_svc_counts_t *)arg1)->vsc_reql, 45*bfc848c6Sjm199354 ((vscan_svc_counts_t *)arg1)->vsc_node, 46*bfc848c6Sjm199354 ((vscan_svc_counts_t *)arg1)->vsc_tq); 47*bfc848c6Sjm199354 } 48*bfc848c6Sjm199354 49*bfc848c6Sjm199354 sdt:vscan::vscan-svc-state-violation 50*bfc848c6Sjm199354 { 51*bfc848c6Sjm199354 printf("%d %s", arg0, 52*bfc848c6Sjm199354 arg0 == 0 ? "UNCONFIG" : 53*bfc848c6Sjm199354 arg0 == 1 ? "IDLE" : 54*bfc848c6Sjm199354 arg0 == 2 ? "ENABLED" : 55*bfc848c6Sjm199354 arg0 == 3 ? "DISABLED" : "UNKNOWN"); 56*bfc848c6Sjm199354 } 57*bfc848c6Sjm199354 58*bfc848c6Sjm199354 sdt:vscan::vscan-scan-timeout 59*bfc848c6Sjm199354 { 60*bfc848c6Sjm199354 printf("idx: %d, seqnum: %d - %s", 61*bfc848c6Sjm199354 ((vscan_req_t *)arg0)->vsr_idx, 62*bfc848c6Sjm199354 ((vscan_req_t *)arg0)->vsr_seqnum, 63*bfc848c6Sjm199354 stringof(((vscan_req_t *)arg0)->vsr_vp->v_path)); 64*bfc848c6Sjm199354 } 65*bfc848c6Sjm199354 66911106dfSjm199354 sdt:vscan::vscan-scan-file 67911106dfSjm199354 { 68911106dfSjm199354 printf("%s (%s)", stringof(arg0), arg1 ? "async" : "sync"); 69911106dfSjm199354 } 70911106dfSjm199354 71911106dfSjm199354 sdt:vscan::vscan-exempt-filesize 72911106dfSjm199354 { 73911106dfSjm199354 printf("%s EXEMPT (%s)", stringof(arg0), arg1 ? "DENY" : "ALLOW"); 74911106dfSjm199354 } 75911106dfSjm199354 76911106dfSjm199354 sdt:vscan::vscan-type-match 77911106dfSjm199354 { 78911106dfSjm199354 printf("ext: %s matched: %s", stringof(arg0), stringof(arg1)); 79911106dfSjm199354 } 80911106dfSjm199354 81911106dfSjm199354 sdt:vscan::vscan-exempt-filetype 82911106dfSjm199354 { 83911106dfSjm199354 printf("%s EXEMPT", stringof(arg0)); 84911106dfSjm199354 } 85911106dfSjm199354 8653c11029Sjm199354 sdt:vscan::vscan-getattr 87911106dfSjm199354 { 88911106dfSjm199354 printf("%s, m: %d, q: %d, scanstamp: %s", 89*bfc848c6Sjm199354 stringof(((vscan_svc_node_t *)arg0)->vsn_req->vsr_vp->v_path), 90*bfc848c6Sjm199354 ((vscan_svc_node_t *)arg0)->vsn_modified, 91*bfc848c6Sjm199354 ((vscan_svc_node_t *)arg0)->vsn_quarantined, 92*bfc848c6Sjm199354 stringof(((vscan_svc_node_t *)arg0)->vsn_scanstamp)); 93911106dfSjm199354 } 94911106dfSjm199354 9553c11029Sjm199354 sdt:vscan::vscan-setattr 9653c11029Sjm199354 { 9753c11029Sjm199354 /* XAT_AV_QUARANTINED */ 9853c11029Sjm199354 printf("%s", (arg1 & 0x400) == 0 ? "" : 99*bfc848c6Sjm199354 ((vscan_svc_node_t *)arg0)->vsn_quarantined ? "q: 1, " : "q: 0, "); 100911106dfSjm199354 10153c11029Sjm199354 /* XAT_AV_MODIFIED */ 10253c11029Sjm199354 printf("%s", (arg1 & 0x800) == 0 ? "" : 103*bfc848c6Sjm199354 ((vscan_svc_node_t *)arg0)->vsn_modified ? "m: 1, " : "m: 0, "); 10453c11029Sjm199354 10553c11029Sjm199354 /* XAT_AV_SCANSTAMP */ 10653c11029Sjm199354 printf("%s", (arg1 & 0x1000) == 0 ? "" : "scanstamp: "); 10753c11029Sjm199354 printf("%s", (arg1 & 0x1000) == 0 ? "" : 108*bfc848c6Sjm199354 stringof(((vscan_svc_node_t *)arg0)->vsn_scanstamp)); 10953c11029Sjm199354 } 11053c11029Sjm199354 11153c11029Sjm199354 11253c11029Sjm199354 sdt:vscan::vscan-mtime-changed 11353c11029Sjm199354 { 11453c11029Sjm199354 printf("%s", 115*bfc848c6Sjm199354 stringof(((vscan_svc_node_t *)arg0)->vsn_req->vsr_vp->v_path)); 11653c11029Sjm199354 } 11753c11029Sjm199354 11853c11029Sjm199354 11953c11029Sjm199354 sdt:vscan::vscan-result 12053c11029Sjm199354 { 121*bfc848c6Sjm199354 printf("idx: %d, seqnum: %d, VS_STATUS_%s - VS_ACCESS_%s", 122*bfc848c6Sjm199354 arg0, arg1, 123*bfc848c6Sjm199354 arg2 == 0 ? "UNDEFINED" : 124*bfc848c6Sjm199354 arg2 == 1 ? "NO_SCAN" : 125*bfc848c6Sjm199354 arg2 == 2 ? "ERROR" : 126*bfc848c6Sjm199354 arg2 == 3 ? "CLEAN" : 127*bfc848c6Sjm199354 arg2 == 4 ? "INFECTED" : 128*bfc848c6Sjm199354 arg2 == 5 ? "SCANNING" : "XXX unknown", 129*bfc848c6Sjm199354 arg3 == 0 ? "UNDEFINED" : 130*bfc848c6Sjm199354 arg3 == 1 ? "ALLOW" : "DENY"); 13153c11029Sjm199354 } 13253c11029Sjm199354 133*bfc848c6Sjm199354 /* insert request into request list */ 134*bfc848c6Sjm199354 fbt:vscan:vscan_svc_reql_insert:entry 135*bfc848c6Sjm199354 { 136*bfc848c6Sjm199354 printf("%s", stringof(args[0]->v_path)); 137*bfc848c6Sjm199354 } 138*bfc848c6Sjm199354 fbt:vscan:vscan_svc_reql_insert:return 139*bfc848c6Sjm199354 /args[1] != 0/ 140*bfc848c6Sjm199354 { 141*bfc848c6Sjm199354 printf("seqnum %d %s", args[1]->vsr_seqnum, 142*bfc848c6Sjm199354 stringof(args[1]->vsr_vp->v_path)); 143*bfc848c6Sjm199354 } 144*bfc848c6Sjm199354 fbt:vscan:vscan_svc_reql_insert:return 145*bfc848c6Sjm199354 /args[1] == 0/ 146*bfc848c6Sjm199354 { 147*bfc848c6Sjm199354 printf("request list full"); 148*bfc848c6Sjm199354 } 149*bfc848c6Sjm199354 /* insert request into scan table */ 150*bfc848c6Sjm199354 fbt:vscan:vscan_svc_insert_req:entry 151*bfc848c6Sjm199354 { 152*bfc848c6Sjm199354 printf("seqnum: %d - %s", 153*bfc848c6Sjm199354 args[0]->vsr_seqnum, stringof(args[0]->vsr_vp->v_path)); 154*bfc848c6Sjm199354 } 155*bfc848c6Sjm199354 fbt:vscan:vscan_svc_insert_req:return 156*bfc848c6Sjm199354 { 157*bfc848c6Sjm199354 printf("idx: %d", args[1]); 158*bfc848c6Sjm199354 } 159*bfc848c6Sjm199354 /* remove request from request list and scan table and delete it*/ 160*bfc848c6Sjm199354 fbt:vscan:vscan_svc_delete_req:entry 161*bfc848c6Sjm199354 { 162*bfc848c6Sjm199354 printf("idx: %d, seqnum: %d - %s", 163*bfc848c6Sjm199354 args[0]->vsr_idx, args[0]->vsr_seqnum, 164*bfc848c6Sjm199354 stringof(args[0]->vsr_vp->v_path)); 165*bfc848c6Sjm199354 } 166*bfc848c6Sjm199354 167*bfc848c6Sjm199354 fbt:vscan:vscan_svc_delete_req:return, 168*bfc848c6Sjm199354 fbt:vscan:vscan_svc_reql_handler:entry, 169*bfc848c6Sjm199354 fbt:vscan:vscan_svc_reql_handler:return 170*bfc848c6Sjm199354 { 171*bfc848c6Sjm199354 } 172*bfc848c6Sjm199354 173*bfc848c6Sjm199354 fbt:vscan:vscan_svc_taskq_callback:entry, 174*bfc848c6Sjm199354 fbt:vscan:vscan_svc_do_scan:entry 175*bfc848c6Sjm199354 { 176*bfc848c6Sjm199354 printf("idx: %d, seqnum: %d - %s", 177*bfc848c6Sjm199354 ((vscan_req_t *)(args[0]))->vsr_idx, 178*bfc848c6Sjm199354 ((vscan_req_t *)(args[0]))->vsr_seqnum, 179*bfc848c6Sjm199354 stringof(((vscan_req_t *)(args[0]))->vsr_vp->v_path)); 180*bfc848c6Sjm199354 } 181*bfc848c6Sjm199354 fbt:vscan:vscan_svc_scan_complete:entry 182*bfc848c6Sjm199354 { 183*bfc848c6Sjm199354 printf("idx: %d, seqnum: %d, state: %s - %s", 184*bfc848c6Sjm199354 args[0]->vsr_idx, args[0]->vsr_seqnum, 185*bfc848c6Sjm199354 args[0]->vsr_state == 0 ? "INIT" : 186*bfc848c6Sjm199354 args[0]->vsr_state == 1 ? "QUEUED" : 187*bfc848c6Sjm199354 args[0]->vsr_state == 2 ? "IN_PROGRESS" : 188*bfc848c6Sjm199354 args[0]->vsr_state == 3 ? "SCANNING" : 189*bfc848c6Sjm199354 args[0]->vsr_state == 4 ? "ASYNC_COMPLETE" : 190*bfc848c6Sjm199354 args[0]->vsr_state == 5 ? "COMPLETE" : "UNKNOWN", 191*bfc848c6Sjm199354 stringof(args[0]->vsr_vp->v_path)); 192*bfc848c6Sjm199354 } 193*bfc848c6Sjm199354 194*bfc848c6Sjm199354 fbt:vscan:vscan_svc_taskq_callback:return, 195*bfc848c6Sjm199354 fbt:vscan:vscan_svc_do_scan:return, 196*bfc848c6Sjm199354 fbt:vscan:vscan_svc_scan_complete:return 197*bfc848c6Sjm199354 { 198*bfc848c6Sjm199354 } 199*bfc848c6Sjm199354 200*bfc848c6Sjm199354 sdt:vscan::vscan-abort 201*bfc848c6Sjm199354 { 202*bfc848c6Sjm199354 printf("idx: %d, seqnum: %d - %s", 203*bfc848c6Sjm199354 ((vscan_req_t *)(arg0))->vsr_idx, 204*bfc848c6Sjm199354 ((vscan_req_t *)(arg0))->vsr_seqnum, 205*bfc848c6Sjm199354 stringof(((vscan_req_t *)(arg0))->vsr_vp->v_path)); 206*bfc848c6Sjm199354 } 20753c11029Sjm199354 20853c11029Sjm199354 fbt:vscan:vscan_svc_enable:entry, 20953c11029Sjm199354 fbt:vscan:vscan_svc_enable:return, 21053c11029Sjm199354 fbt:vscan:vscan_svc_disable:entry, 21153c11029Sjm199354 fbt:vscan:vscan_svc_disable:return, 212911106dfSjm199354 fbt:vscan:vscan_svc_configure:entry, 213*bfc848c6Sjm199354 fbt:vscan:vscan_svc_configure:return 214911106dfSjm199354 { 215911106dfSjm199354 } 216911106dfSjm199354 217911106dfSjm199354 /* 218*bfc848c6Sjm199354 * vscan_door.c 219911106dfSjm199354 */ 220*bfc848c6Sjm199354 fbt:vscan:vscan_door_open:entry, 221*bfc848c6Sjm199354 fbt:vscan:vscan_door_open:return, 222*bfc848c6Sjm199354 fbt:vscan:vscan_door_close:entry, 223*bfc848c6Sjm199354 fbt:vscan:vscan_door_close:return 224*bfc848c6Sjm199354 { 225*bfc848c6Sjm199354 } 226911106dfSjm199354 227911106dfSjm199354 fbt:vscan:vscan_door_scan_file:entry 228911106dfSjm199354 { 229*bfc848c6Sjm199354 printf("idx: %d, seqnum: %d - %s", 230*bfc848c6Sjm199354 args[0]->vsr_idx, args[0]->vsr_seqnum, args[0]->vsr_path); 231911106dfSjm199354 } 232911106dfSjm199354 fbt:vscan:vscan_door_scan_file:return 233911106dfSjm199354 { 234*bfc848c6Sjm199354 printf("VS_STATUS_%s", 235*bfc848c6Sjm199354 args[1] == 0 ? "UNDEFINED" : 236*bfc848c6Sjm199354 args[1] == 1 ? "NO_SCAN" : 237*bfc848c6Sjm199354 args[1] == 2 ? "ERROR" : 238*bfc848c6Sjm199354 args[1] == 3 ? "CLEAN" : 239*bfc848c6Sjm199354 args[1] == 4 ? "INFECTED" : 240*bfc848c6Sjm199354 args[1] == 5 ? "SCANNING" : "XXX unknown"); 241911106dfSjm199354 } 242911106dfSjm199354 243*bfc848c6Sjm199354 244*bfc848c6Sjm199354 /* 245*bfc848c6Sjm199354 * vscan_drv.c 246*bfc848c6Sjm199354 */ 247*bfc848c6Sjm199354 sdt:vscan::vscan-drv-state-violation 248*bfc848c6Sjm199354 { 249*bfc848c6Sjm199354 printf("%d %s", arg0, 250*bfc848c6Sjm199354 arg0 == 0 ? "UNCONFIG" : 251*bfc848c6Sjm199354 arg0 == 1 ? "IDLE" : 252*bfc848c6Sjm199354 arg0 == 2 ? "CONNECTED" : 253*bfc848c6Sjm199354 arg0 == 3 ? "ENABLED" : 254*bfc848c6Sjm199354 arg0 == 4 ? "DELAYED_DISABLE" : "UNKNOWN"); 255*bfc848c6Sjm199354 } 256911106dfSjm199354 25753c11029Sjm199354 sdt:vscan::vscan-minor-node 25853c11029Sjm199354 { 25953c11029Sjm199354 printf("vscan%d %s", arg0, arg1 != 0 ? "created" : "error"); 26053c11029Sjm199354 } 26153c11029Sjm199354 262*bfc848c6Sjm199354 /* unprivileged vscan driver access attempt */ 263911106dfSjm199354 sdt:vscan::vscan-priv 264911106dfSjm199354 /arg0 != 0/ 265911106dfSjm199354 { 266911106dfSjm199354 printf("vscan driver access attempt by unprivileged process"); 267911106dfSjm199354 } 268911106dfSjm199354 269*bfc848c6Sjm199354 /* daemon-driver synchronization */ 270*bfc848c6Sjm199354 sdt:vscan::vscan-reconnect 271*bfc848c6Sjm199354 { 272*bfc848c6Sjm199354 } 273*bfc848c6Sjm199354 274911106dfSjm199354 fbt:vscan:vscan_drv_open:entry 275911106dfSjm199354 / *(int *)args[0] == 0/ 276911106dfSjm199354 { 277911106dfSjm199354 printf("vscan daemon attach"); 278911106dfSjm199354 } 279911106dfSjm199354 280911106dfSjm199354 fbt:vscan:vscan_drv_close:entry 281911106dfSjm199354 / (int)args[0] == 0/ 282911106dfSjm199354 { 283911106dfSjm199354 printf("vscan daemon detach"); 284911106dfSjm199354 } 285911106dfSjm199354 286911106dfSjm199354 fbt:vscan:vscan_drv_ioctl:entry 287911106dfSjm199354 / (int)args[0] == 0/ 288911106dfSjm199354 { 28953c11029Sjm199354 printf("vscan daemon ioctl %d %s", args[1], 29053c11029Sjm199354 args[1] == 1 ? "ENABLE" : 29153c11029Sjm199354 args[1] == 2 ? "DISABLE" : 292*bfc848c6Sjm199354 args[1] == 3 ? "CONFIG" : 293*bfc848c6Sjm199354 args[1] == 4 ? "RESULT" : 294*bfc848c6Sjm199354 args[1] == 5 ? "MAX FILES" : "unknown"); 295911106dfSjm199354 } 296911106dfSjm199354 29753c11029Sjm199354 fbt:vscan:vscan_drv_delayed_disable:entry, 298*bfc848c6Sjm199354 fbt:vscan:vscan_drv_delayed_disable:return, 29953c11029Sjm199354 fbt:vscan:vscan_drv_attach:entry, 300*bfc848c6Sjm199354 fbt:vscan:vscan_drv_detach:entry 301*bfc848c6Sjm199354 { 302*bfc848c6Sjm199354 } 303*bfc848c6Sjm199354 30453c11029Sjm199354 fbt:vscan:vscan_drv_attach:return, 30553c11029Sjm199354 fbt:vscan:vscan_drv_detach:return 30653c11029Sjm199354 { 307*bfc848c6Sjm199354 printf("%s", args[1] ? "DDI_FAILURE" : "DDI_SUCCESS"); 30853c11029Sjm199354 } 30953c11029Sjm199354 310*bfc848c6Sjm199354 fbt:vscan:vscan_drv_in_use:return 31153c11029Sjm199354 { 312*bfc848c6Sjm199354 printf("%s", args[1] ? "TRUE" : "FALSE"); 31353c11029Sjm199354 } 31453c11029Sjm199354 315911106dfSjm199354 316*bfc848c6Sjm199354 /* file access */ 317911106dfSjm199354 318911106dfSjm199354 /* 319911106dfSjm199354 fbt:vscan:vscan_drv_open:entry 320911106dfSjm199354 / *(int *)args[0] != 0/ 321911106dfSjm199354 { 322911106dfSjm199354 printf("%d", *(int *)args[0]); 323911106dfSjm199354 } 324911106dfSjm199354 325911106dfSjm199354 fbt:vscan:vscan_drv_close:entry, 326911106dfSjm199354 fbt:vscan:vscan_drv_read:entry 327911106dfSjm199354 / (int)args[0] != 0/ 328911106dfSjm199354 { 329911106dfSjm199354 printf("%d", (int)args[0]); 330911106dfSjm199354 } 331911106dfSjm199354 */ 332911106dfSjm199354 333911106dfSjm199354 334911106dfSjm199354 /* 335911106dfSjm199354 *** vscan daemon - vscand *** 336911106dfSjm199354 */ 337911106dfSjm199354 338*bfc848c6Sjm199354 pid$target::vs_svc_init:entry 339*bfc848c6Sjm199354 { 340*bfc848c6Sjm199354 printf("Max concurrent scan requests from kernel: %d", arg1); 341*bfc848c6Sjm199354 } 342*bfc848c6Sjm199354 343*bfc848c6Sjm199354 pid$target::vs_svc_init:return 344*bfc848c6Sjm199354 { 345*bfc848c6Sjm199354 } 346*bfc848c6Sjm199354 347*bfc848c6Sjm199354 348911106dfSjm199354 pid$target::vs_door_scan_req:entry, 349911106dfSjm199354 pid$target::vs_svc_scan_file:entry, 350*bfc848c6Sjm199354 pid$target::vs_svc_queue_scan_req:entry, 351*bfc848c6Sjm199354 pid$target::vs_svc_async_scan:entry, 352911106dfSjm199354 pid$target::vs_eng_scanstamp_current:entry, 353911106dfSjm199354 pid$target::vs_icap_scan_file:entry 354911106dfSjm199354 { 355911106dfSjm199354 } 356911106dfSjm199354 357*bfc848c6Sjm199354 pid$target::vs_svc_queue_scan_req:return, 358*bfc848c6Sjm199354 pid$target::vs_svc_async_scan:return 359*bfc848c6Sjm199354 { 360*bfc848c6Sjm199354 } 361*bfc848c6Sjm199354 362911106dfSjm199354 pid$target::vs_svc_scan_file:return 363911106dfSjm199354 { 36453c11029Sjm199354 printf("VS_STATUS_%s", 36553c11029Sjm199354 arg1 == 0 ? "UNDEFINED" : 36653c11029Sjm199354 arg1 == 1 ? "NO_SCAN" : 36753c11029Sjm199354 arg1 == 2 ? "ERROR" : 36853c11029Sjm199354 arg1 == 3 ? "CLEAN" : 369*bfc848c6Sjm199354 arg1 == 4 ? "INFECTED" : 370*bfc848c6Sjm199354 arg1 == 5 ? "SCANNING" : "XXX unknown"); 371911106dfSjm199354 } 372911106dfSjm199354 373911106dfSjm199354 pid$target::vs_eng_scanstamp_current:return 374911106dfSjm199354 { 375911106dfSjm199354 printf("%sCURRENT", arg1 == 0 ? "NOT " : ""); 376911106dfSjm199354 } 377911106dfSjm199354 378911106dfSjm199354 pid$target::vs_icap_scan_file:return 379911106dfSjm199354 { 380*bfc848c6Sjm199354 printf("%d VS_RESULT_%s", (int)arg1, 381*bfc848c6Sjm199354 (int)arg1 == 0 ? "UNDEFINED" : 382*bfc848c6Sjm199354 (int)arg1 == 1 ? "CLEAN" : 383*bfc848c6Sjm199354 (int)arg1 == 2 ? "CLEANED" : 384*bfc848c6Sjm199354 (int)arg1 == 3 ? "FORBIDDEN" : "(SE)_ERROR"); 385911106dfSjm199354 } 386911106dfSjm199354 387911106dfSjm199354 pid$target::vs_stats_set:entry 388911106dfSjm199354 { 389911106dfSjm199354 printf("%s", (arg0 == 1) ? "CLEAN" : 390911106dfSjm199354 (arg0 == 2) ? "CLEANED" : 39153c11029Sjm199354 (arg0 == 3) ? "QUARANTINE" : "ERROR"); 392911106dfSjm199354 } 393911106dfSjm199354 394911106dfSjm199354 pid$target::vs_stats_set:return 395911106dfSjm199354 { 396911106dfSjm199354 } 397911106dfSjm199354 398911106dfSjm199354 /* get engine connection */ 399911106dfSjm199354 pid$target::vs_eng_get:entry, 400*bfc848c6Sjm199354 pid$target::vs_eng_connect:entry, 401*bfc848c6Sjm199354 pid$target::vs_eng_release:entry, 402*bfc848c6Sjm199354 pid$target::vs_eng_release:return 403911106dfSjm199354 { 404911106dfSjm199354 } 405911106dfSjm199354 pid$target::vs_eng_get:return, 406911106dfSjm199354 pid$target::vs_eng_connect:return 407911106dfSjm199354 { 408911106dfSjm199354 printf("%s", arg1 == 0 ? "success" : "error"); 409911106dfSjm199354 } 410911106dfSjm199354 411911106dfSjm199354 /* engine errors */ 412911106dfSjm199354 pid$target::vs_eng_set_error:entry 413911106dfSjm199354 / arg1 == 1 / 414911106dfSjm199354 { 415*bfc848c6Sjm199354 printf("scan engine error"); 416911106dfSjm199354 } 417911106dfSjm199354 418*bfc848c6Sjm199354 /* configuration */ 419*bfc848c6Sjm199354 pid$target::vscand_cfg_init:entry, 420*bfc848c6Sjm199354 pid$target::vscand_cfg_fini:entry, 421*bfc848c6Sjm199354 pid$target::vscand_cfg_init:return, 422*bfc848c6Sjm199354 pid$target::vscand_cfg_fini:return, 423*bfc848c6Sjm199354 pid$target::vscand_cfg_handler:entry, 424*bfc848c6Sjm199354 pid$target::vscand_cfg_handler:return 425*bfc848c6Sjm199354 { 426*bfc848c6Sjm199354 } 427*bfc848c6Sjm199354 428*bfc848c6Sjm199354 pid$target::vscand_dtrace_gen:entry 429*bfc848c6Sjm199354 { 430*bfc848c6Sjm199354 printf("maxsize: %s action: %s\n", 431*bfc848c6Sjm199354 copyinstr(arg0), (arg1 == 1) ? "allow" : "deny"); 432*bfc848c6Sjm199354 printf("types: %s\n", copyinstr(arg2)); 433*bfc848c6Sjm199354 printf("log: %s\n", copyinstr(arg3)); 434*bfc848c6Sjm199354 } 435*bfc848c6Sjm199354 pid$target::vscand_dtrace_eng:entry 436*bfc848c6Sjm199354 { 437*bfc848c6Sjm199354 printf("\n%s %s \nhost: %s \nport: %d \nmax connections: %d\n", 438*bfc848c6Sjm199354 copyinstr(arg0), (arg1 == 1) ? "enabled" : "disabled", 439*bfc848c6Sjm199354 copyinstr(arg2), arg3, arg4); 440*bfc848c6Sjm199354 } 441*bfc848c6Sjm199354 442*bfc848c6Sjm199354 443*bfc848c6Sjm199354 444911106dfSjm199354 /* shutdown */ 445911106dfSjm199354 pid$target::vscand_sig_handler:entry 446911106dfSjm199354 { 447911106dfSjm199354 printf("received signal %d", arg0); 448911106dfSjm199354 } 449911106dfSjm199354 pid$target::vscand_sig_handler:return, 450911106dfSjm199354 pid$target::vscand_fini:entry, 451911106dfSjm199354 pid$target::vscand_fini:return, 452911106dfSjm199354 pid$target::vscand_kernel_disable:entry, 453911106dfSjm199354 pid$target::vscand_kernel_disable:return, 454911106dfSjm199354 pid$target::vscand_kernel_unbind:entry, 455911106dfSjm199354 pid$target::vscand_kernel_unbind:return, 456*bfc848c6Sjm199354 pid$target::vscand_kernel_result:entry, 457*bfc848c6Sjm199354 pid$target::vscand_kernel_result:return, 458*bfc848c6Sjm199354 pid$target::vs_svc_terminate:entry, 459*bfc848c6Sjm199354 pid$target::vs_svc_terminate:return, 460911106dfSjm199354 pid$target::vs_eng_fini:entry, 461911106dfSjm199354 pid$target::vs_eng_fini:return, 462911106dfSjm199354 pid$target::vs_eng_close_connections:entry, 463911106dfSjm199354 pid$target::vs_eng_close_connections:return 464911106dfSjm199354 { 465911106dfSjm199354 } 466911106dfSjm199354 467911106dfSjm199354 /* vs_icap.c */ 468911106dfSjm199354 469911106dfSjm199354 /* trace entry and exit (inc status) */ 470911106dfSjm199354 pid$target::vs_icap_option_request:entry, 471911106dfSjm199354 pid$target::vs_icap_send_option_req:entry, 472911106dfSjm199354 pid$target::vs_icap_read_option_resp:entry, 473911106dfSjm199354 pid$target::vs_icap_respmod_request:entry, 474911106dfSjm199354 pid$target::vs_icap_may_preview:entry, 475911106dfSjm199354 pid$target::vs_icap_send_preview:entry, 476911106dfSjm199354 pid$target::vs_icap_send_respmod_hdr:entry, 477911106dfSjm199354 pid$target::vs_icap_read_respmod_resp:entry 478911106dfSjm199354 { 479911106dfSjm199354 } 480911106dfSjm199354 481911106dfSjm199354 pid$target::vs_icap_option_request:return, 482911106dfSjm199354 pid$target::vs_icap_send_option_req:return, 483911106dfSjm199354 pid$target::vs_icap_read_option_resp:return, 484911106dfSjm199354 pid$target::vs_icap_respmod_request:return, 485911106dfSjm199354 pid$target::vs_icap_send_preview:return, 486911106dfSjm199354 pid$target::vs_icap_send_respmod_hdr:return, 487911106dfSjm199354 pid$target::vs_icap_read_respmod_resp:return 488911106dfSjm199354 { 489*bfc848c6Sjm199354 printf("%s", (int)arg1 < 0 ? "error" : "success"); 490911106dfSjm199354 } 491911106dfSjm199354 492911106dfSjm199354 pid$target::vs_icap_may_preview:return 493911106dfSjm199354 { 494911106dfSjm199354 printf("TRANSFER %s", arg1 == 1 ? "PREVIEW" : "COMPLETE"); 495911106dfSjm199354 } 496911106dfSjm199354 497911106dfSjm199354 /* trace failures only - these functions return -1 on failure */ 498911106dfSjm199354 pid$target::vs_icap_read_resp_code:return, 499911106dfSjm199354 pid$target::vs_icap_read_hdr:return, 500911106dfSjm199354 pid$target::vs_icap_send_termination:return, 501911106dfSjm199354 pid$target::vs_icap_write:return, 502911106dfSjm199354 pid$target::vs_icap_set_scan_result:return, 503911106dfSjm199354 pid$target::vs_icap_read_encap_hdr:return, 504911106dfSjm199354 pid$target::vs_icap_read_encap_data:return, 505911106dfSjm199354 pid$target::vs_icap_read_resp_body:return, 506911106dfSjm199354 pid$target::vs_icap_read_body_chunk:return, 507911106dfSjm199354 pid$target::vs_icap_read:return, 508911106dfSjm199354 pid$target::vs_icap_readline:return, 509911106dfSjm199354 pid$target::vs_icap_send_chunk:return, 510911106dfSjm199354 pid$target::gethostname:return 511*bfc848c6Sjm199354 /(int)arg1 == -1/ 512911106dfSjm199354 { 513911106dfSjm199354 printf("error"); 514911106dfSjm199354 } 515911106dfSjm199354 516911106dfSjm199354 /* trace failures only - these functions return 1 on success */ 517911106dfSjm199354 pid$target::vs_icap_opt_value:return, 518911106dfSjm199354 pid$target::vs_icap_opt_ext:return, 519911106dfSjm199354 pid$target::vs_icap_resp_infection:return, 520911106dfSjm199354 pid$target::vs_icap_resp_virus_id:return, 521911106dfSjm199354 pid$target::vs_icap_resp_violations:return, 522911106dfSjm199354 pid$target::vs_icap_resp_violation_rec:return, 523911106dfSjm199354 pid$target::vs_icap_resp_istag:return, 524911106dfSjm199354 pid$target::vs_icap_resp_encap:return 525911106dfSjm199354 /arg1 != 1/ 526911106dfSjm199354 { 527911106dfSjm199354 printf("error"); 528911106dfSjm199354 } 529911106dfSjm199354 530911106dfSjm199354 pid$target::write:return, 531911106dfSjm199354 pid$target::read:return, 532911106dfSjm199354 pid$target::open:return, 533911106dfSjm199354 pid$target::calloc:return 534911106dfSjm199354 /arg1 <= 0/ 535911106dfSjm199354 { 536911106dfSjm199354 printf("error"); 537911106dfSjm199354 } 538*bfc848c6Sjm199354 /* 539*bfc848c6Sjm199354 pid$target::recv:return, 540*bfc848c6Sjm199354 */ 541