############################################################################## ## This is a supplemental environmental testing file for Virus Snaggers(tm) ## ver. 2.x. Virus Snaggers can call it from an optional $VS_HOOK file. ## Clearly mark any changes you make! (And keep a backup of the original.) ############################################################################## # # Virus Snaggers(tm) can be found at: http://vsnag.spamless.us # ------------------------------------------------------------ # # INSTRUCTIONS # # FOR THOSE NOT running Virus Snaggers: # The output from calling this file as an INCLUDERC is written to # your procmail log and can be generally useful for diagnosing a # procmail setup. In your .procmailrc, place this line (using the # right path, of course): # # INCLUDERC = /path/to/vsnag.self-test.rc # # If you invoke this rc from a shell prompt, you can run it # properly with procmail binaries other than the default procmail # in your path by setting the $PROCMAIL variable. Example: # # % $HOME/src/procmail-3.15.2/src/procmail -m \ # DEFAULT=/dev/null \ # VERBOSE=y \ # MAILDIR=. \ # PROCMAIL=$HOME/src/procmail-3.15.2/src/procmail \ # /etc/vsnag.self-test.rc < a.message # # # IF YOU USE Virus Snaggers: # Call this file (with an INCLUDERC as above) from your .procmailrc # *after* the call to vsnag or call it from your optional Virus # Snaggers "hook" rc-file. Check your log file for results. # # Easier still, use the vsnag.point-n-shoot.sh shell script to run # this file directly and send its output to your screen. See the # help screen for the point-n-shoot script for more. The script is # packaged with this file in versions of vsnag starting with 2.10. # # # ######################## PLEASE DO NOT EDIT THIS FILE ######################## vs_OLDVERBOSE = "$VERBOSE" VERBOSE = off vs_OLDLINEBUF = $LINEBUF ### change is temporary only vs_MINBUFSIZE = 16384 :0 * $ $vs_MINBUFSIZE^0 * $ -$LINEBUF^0 { LINEBUF = $vs_MINBUFSIZE } vs_SELF_TEST = "ver. 1.29 (28-Sep-04)" vs_OLDSHELL = "$SHELL" vs_MYEXIT = $? vs_NL = " " LOG = "$vs_NL$vs_NL$vs_NL$vs_NL" LOG = "$vs_NL ==================================================================" LOG = "$vs_NL Environment Self-Test for Procmail, Courtesy of Virus Snaggers(tm)" LOG = "$vs_NL ==================================================================" ## FIRST WE RUN A SYSTEM CHECK IN A VETTED ENVIRONMENT SHELL = /bin/sh ### change is temporary only :0 W * ? test -x `which sed` -a `which fmt` 2>/dev/null { LOG = "$vs_NL * uname -a:$vs_NL`uname -a | fmt -48 | sed 's/^/ /'`" } :0 E { LOG = "$vs_NL * uname -a: `uname -a`" } PROCMAIL = "${PROCMAIL:-procmail}" :0 * PROCMAIL_VERSION ?? ^^()^^ { FALLBACK_VERSION="`$PROCMAIL -v 2>&1 | awk '/^procmail/{ print $2 }'`" } SHELL = "$vs_OLDSHELL" ### revert to original value LINEBUF = "$vs_OLDLINEBUF" ### revert to original value ## NOW SHOW ALL VALUES FOR CURRENT PROCMAIL LOG = "$vs_NL ------------------------------------------------------------------" LOG = "$vs_NL Procmail settings and states:" LOG = "$vs_NL ------------------------------------------------------------------" LOG = "$vs_NL * procmail: `which $PROCMAIL`" LOG = "$vs_NL * \$$: $$" LOG = "$vs_NL * \$=: $=" LOG = "$vs_NL * \$?: $vs_MYEXIT" LOG = "$vs_NL * \$_: $_" DUMMY = "$1" :0 * DUMMY ?? . { LOG = "$vs_NL * \$1: $1" } DUMMY = "$2" :0 A * DUMMY ?? . { LOG = "$vs_NL * \$2: $2" } DUMMY = "$3" :0 A * DUMMY ?? . { LOG = "$vs_NL * \$3: $3" } DUMMY = "$4" :0 A * DUMMY ?? . { LOG = "$vs_NL * \$4: $4" } DUMMY = "$5" :0 A * DUMMY ?? . { LOG = "$vs_NL * \$5: $5" } DUMMY = "$6" :0 A * DUMMY ?? . { LOG = "$vs_NL * \$6: $6" } DUMMY = "$7" :0 A * DUMMY ?? . { LOG = "$vs_NL * \$7: $7" } DUMMY = "$8" :0 A * DUMMY ?? . { LOG = "$vs_NL * \$8: $8" } DUMMY = "$9" :0 A * DUMMY ?? . { LOG = "$vs_NL * \$9: $9" } LOG = "$vs_NL * COMSAT: ${COMSAT--}" LOG = "$vs_NL * DEFAULT: ${DEFAULT--}" LOG = "$vs_NL * DELIVERED: ${DELIVERED--}" LOG = "$vs_NL * DROPPRIVS: ${DROPPRIVS--}" LOG = "$vs_NL * EXITCODE: ${EXITCODE:--}" LOG = "$vs_NL * HOME: ${HOME--}" LOG = "$vs_NL * HOST: ${HOST--}" LOG = "$vs_NL * INCLUDERC: ${INCLUDERC--}" LOG = "$vs_NL * LASTFOLDER: ${LASTFOLDER:--}" LOG = "$vs_NL * LINEBUF: ${LINEBUF--}" LOG = "$vs_NL * LOCKEXT: ${LOCKEXT--}" LOG = "$vs_NL * LOCKFILE: ${LOCKFILE--}" LOG = "$vs_NL * LOCKSLEEP: ${LOCKSLEEP--}" LOG = "$vs_NL * LOCKTIMEOUT: ${LOCKTIMEOUT--}" LOG = "$vs_NL * LOGABSTRACT: ${LOGABSTRACT--}" LOG = "$vs_NL * LOGFILE: ${LOGFILE--}" LOG = "$vs_NL * LOGNAME: ${LOGNAME--}" LOG = "$vs_NL * MATCH: ${MATCH:--}" LOG = "$vs_NL * MAILDIR: ${MAILDIR--}" LOG = "$vs_NL * MSGPREFIX: ${MSGPREFIX--}" LOG = "$vs_NL * NORESRETRY: ${NORESRETRY--}" LOG = "$vs_NL * ORGMAIL: ${ORGMAIL--}" LOG = "$vs_NL * PATH: ${PATH--}" :0 * PMDIR ?? . { LOG = "$vs_NL * PMDIR: $PMDIR" } :0 * PDIR ?? . { LOG = "$vs_NL * PDIR: $PDIR" } LOG = "$vs_NL * PROCMAIL_OVERFLOW: ${PROCMAIL_OVERFLOW:--}" LOG = "$vs_NL * PROCMAIL_VERSION: ${PROCMAIL_VERSION:-- [forced: $FALLBACK_VERSION]}" LOG = "$vs_NL * SENDMAIL: ${SENDMAIL--}" LOG = "$vs_NL * SENDMAILFLAGS: ${SENDMAILFLAGS--}" LOG = "$vs_NL * SHELL: ${SHELL:--}" LOG = "$vs_NL * SHELLFLAGS: ${SHELLFLAGS--}" LOG = "$vs_NL * SHELLMETAS: ${SHELLMETAS--}" LOG = "$vs_NL * SHIFT: ${SHIFT--}" LOG = "$vs_NL * SUSPEND: ${SUSPEND--}" LOG = "$vs_NL * SWITCHRC: ${SWITCHRC--}" LOG = "$vs_NL * TIMEOUT: ${TIMEOUT--}" LOG = "$vs_NL * TRAP: ${TRAP:--}" LOG = "$vs_NL * TZ: ${TZ--}" LOG = "$vs_NL * UMASK: ${UMASK--}" LOG = "$vs_NL * VERBOSE: ${VS_OLDVERBOSE--}" ## NEXT PART GETS RUN IF VIRUS SNAGGERS WAS LOADED :0 # 040815 () if we're running Virus snaggers, run nested recipes * VS_VER ?? . { vs_FAIL ### initialize unset LOG = "$vs_NL ------------------------------------------------------------------" LOG = "$vs_NL Static presets from genvars rc:" LOG = "$vs_NL ------------------------------------------------------------------" LOG = "$vs_NL * _SELF: ${_SELF:--}" LOG = "$vs_NL * DOTQUAD: ${DOTQUAD:--}" LOG = "$vs_NL * DQ: ${DQ:--}" LOG = "$vs_NL * FALSE: ${FALSE:--}" LOG = "$vs_NL * GO: ${GO:--}" LOG = "$vs_NL * LOCALHOST: ${LOCALHOST:--}" :0 * $ NL ?? ^^$^^ { LOG = "$vs_NL * NL: (newline was found)" } :0 E { vs_FAIL = "${vs_FAIL+$vs_FAIL, }NL" LOG = "$vs_NL * NL: MISSET TO: >$NL<" } LOG = "$vs_NL * NLWS: ${NLWS:--}" LOG = "$vs_NL * OCTET: ${OCTET:--}" LOG = "$vs_NL * PRIVATE_IP: ${PRIVATE_IP:--}" LOG = "$vs_NL * SLASH8: ${SLASH8:--}" LOG = "$vs_NL * SLASH12: ${SLASH12:--}" LOG = "$vs_NL * SLASH16: ${SLASH16:--}" LOG = "$vs_NL * SMALL: ${SMALL:--}" :0 * SPACE ?? ^^[ ]^^ { LOG = "$vs_NL * SPACE: (space char was found)" } :0 E { vs_FAIL = "${vs_FAIL+$vs_FAIL, }SPACE" LOG = "$vs_NL * SPACE: MISSET TO: >$SPACE<" } LOG = "$vs_NL * STOP: ${STOP:--}" :0 * TAB ?? ^^[ ]^^ { LOG = "$vs_NL * TAB: (tab char was found)" } :0 E { vs_FAIL = "${vs_FAIL+$vs_FAIL, }TAB" LOG = "$vs_NL * TAB: MISSET TO: >$TAB<" } LOG = "$vs_NL * TRUE: ${TRUE:--}" LOG = "$vs_NL * VAROFF: ${VAROFF:--}" LOG = "$vs_NL * VARON: ${VARON:--}" :0 * WS ?? ^^[ ][ ]|[ ][ ]^^ { LOG = "$vs_NL * WS: (single space and single tab chars found)" } :0 E { vs_FAIL = "${vs_FAIL+$vs_FAIL, }WS" LOG = "$vs_NL * WS: MISSET TO: >$WS<" } LOG = "$vs_NL ------------------------------------------------------------------" LOG = "$vs_NL Static presets per the myvars rc:" LOG = "$vs_NL ------------------------------------------------------------------" LOG = "$vs_NL * AGGRESSIVE: ${AGGRESSIVE:--}" LOG = "$vs_NL * ALOCK: ${ALOCK:--}" LOG = "$vs_NL * h: ${h:--}" LOG = "$vs_NL * MYVIRUS: ${MYVIRUS:--}" LOG = "$vs_NL * NONDELIVER: ${NONDELIVER:--}" LOG = "$vs_NL * RCVD_THRESHOLD: ${RCVD_THRESHOLD:--}" LOG = "$vs_NL * SHELL: ${SHELL:--}" LOG = "$vs_NL * VBELL: ${VBELL:--}" LOG = "$vs_NL * VS_DEBUG: ${VS_DEBUG:--}" LOG = "$vs_NL * VS_DIAGS: ${VS_DIAGS:--}" LOG = "$vs_NL * VS_HOOK: ${VS_HOOK:--}" LOG = "$vs_NL * VS_GENVARS: ${VS_GENVARS:--}" LOG = "$vs_NL * VS_MYVARS: ${VS_MYVARS:--}" LOG = "$vs_NL * VS_NASTY64: ${VS_NASTY64:--}" LOG = "$vs_NL * VS_NASTYEXT: ${VS_NASTYEXT:--}" LOG = "$vs_NL * VS_OLDTRAP: ${VS_OLDTRAP:--}" LOG = "$vs_NL * VS_OLDVERBOSE: ${VS_OLDVERBOSE:--}" LOG = "$vs_NL * VS_SELF_TEST: ${VS_SELF_TEST:--}" LOG = "$vs_NL * VS_SPAMMY: ${VS_SPAMMY:--}" LOG = "$vs_NL * VS_VER: ${VS_VER:--}" LOG = "$vs_NL * VS_ZIPMAX: ${VS_ZIPMAX:--}" LOG = "$vs_NL * VS_ZIPMIN: ${VS_ZIPMIN:--}" LOG = "$vs_NL ------------------------------------------------------------------" LOG = "$vs_NL Dynamic assignments from main vsnag rc:" LOG = "$vs_NL ------------------------------------------------------------------" LOG = "$vs_NL * H_BTM_CLIENT: ${H_BTM_CLIENT:--}" LOG = "$vs_NL * H_CTYPE: ${H_CTYPE:--}" LOG = "$vs_NL * H_FROM: ${H_FROM:--}" LOG = "$vs_NL * H_MSGID: ${H_MSGID:--}" LOG = "$vs_NL * H_RCVD_COUNT: ${H_RCVD_COUNT:--}" LOG = "$vs_NL * H_XMAILER: ${H_XMAILER:--}" LOG = "$vs_NL * logtext: ${logtext:--}" LOG = "$vs_NL * MATCH: ${MATCH:--}" LOG = "$vs_NL * MYDOMAIN_IP: ${MYDOMAIN_IP:--}" LOG = "$vs_NL * MYDOMAINSTUB: ${MYDOMAINSTUB:--}" LOG = "$vs_NL * VS_ATTACH: ${VS_ATTACH:--}" LOG = "$vs_NL * VS_DELIVER: ${VS_DELIVER:--}" LOG = "$vs_NL * VS_EXT: ${VS_EXT:--}" LOG = "$vs_NL * VS_HOME: ${VS_HOME:--}" LOG = "$vs_NL * VS_MINBUF: ${VS_MINBUF:--}" LOG = "$vs_NL * VS_OUT: ${VS_OUT:--}" LOG = "$vs_NL * VS_PATHFINDER: ${VS_PATHFINDER:--}" LOG = "$vs_NL * VS_SHELLMETAS: ${VS_SHELLMETAS:--}" :0 * vs_FAIL ?? . { LOG = "$vs_NL ==================================================================$vs_NL" LOG = "$vs_NL =====> WHITESPACE PROBLEM! CHECK SETTINGS FOR NLWS, $vs_FAIL. <=====$vs_NL" } } ## HERE'S THE CLEAN-UP AT END LOG = "$vs_NL ==================================================================" LOG = "$vs_NL vsnag.self-test.rc $vs_SELF_TEST; `date '+%b %d %H:%M:%S %Z %Y'`" LOG = "$vs_NL ==================================================================" LOG = "$vs_NL$vs_NL$vs_NL$vs_NL" :0 # 040816 () do something as yet undefined if we're testing with $VS_DEBUG set * VS_DEBUG ?? ^^([-1-9yte]|on) { } VERBOSE = "$VS_OLDVERBOSE}" ### revert to original value ############################################################################## # This file is copyright and incorporates by reference the notice of copy- # right and license agreement from the Virus Snaggers main and readme files. ##############################################################################