X-Git-Url: https://git.distorted.org.uk/~mdw/ezmlm/blobdiff_plain/5b62e993b0af39700031c2875d7f6654e6a02850..f8beb284087c279acfb30506f5bb32baa4949b44:/ezmlm-check.sh diff --git a/ezmlm-check.sh b/ezmlm-check.sh new file mode 100644 index 0000000..b844d1b --- /dev/null +++ b/ezmlm-check.sh @@ -0,0 +1,670 @@ + +# [should have a bin/sh line and EZPATH/QMPATH added above by make] +# +# script to diagnose ezmlm lists +# call as is for environment only, or as ezmlm-check 'DIR' for more info + +listsubscribers=yes +if [ "$1" = '-S' ] ; then + listsubscribers=no + shift +else + if [ "$1" = '-s' ] ; then + shift + fi +fi + +QINJECT="${QMPATH}/bin/qmail-inject" +EZLIST="${EZPATH}/ezmlm-list" +MYNAME='ezmlm-check' +MYDTLINE="Delivered-To: ${MYNAME}" +FATAL="${MYNAME}: fatal:" +EZERR="??? ERROR:" +EZWARN="!!! Warning:" +# This should be a ``grep'' that does regexps. Needs to recognize ^ and $. +GREP='grep' +CAT='cat' +CUT='cut' +ECHO='echo' +# Needed to isolate some lines in the DIR/editor ... files +HEAD='head' +TAIL='tail' +# needed to count characters in $USER +WC='wc' +# should mark executables with '*' and list one file per line +LS='ls -F1' +# should list links as: "... symlink -> file" +LLS='ls -l' +if [ ! -x "$QINJECT" ]; then + ${ECHO} "$FATAL edit script to for path to qmail-inject" + exit 100 +fi + +if [ -z "$SENDER" ] ; then + RCP="${CAT}" +else + RCP="$QINJECT" + if ${CAT} - | ${GREP} "${MYDTLINE}" >/dev/null 2>&1 + then + ${ECHO} "FATAL this message is looping: it already has my Delivered-To line (#5.4.6)" + exit 100 + fi +fi + +if [ ! -z "$1" -a ! -d "$1" ]; then + ${ECHO} "$FATAL $1 is not a directory"; exit 100 +fi + +# reset variables +GET=''; DIGEST=''; FLAGARCH=''; FLAGIND=''; INLOCAL=''; INLOCALOK=''; INHOST='' +MANAGE=''; OUTLOCAL=''; OUTHOST=''; SPEC=''; SRESTRICT=''; STORE=''; REMOTE='' +MODSUB=''; MODPOST=''; SPEC='' + +( + ${ECHO} "Delivered-To: ezmlm-check" + ${ECHO} "To: $SENDER" + ${ECHO} "Subject: ${MYNAME} results" + ${ECHO} + ${ECHO} "Important environment variables:" + ${ECHO} + ${ECHO} "SENDER ='$SENDER'" + ${ECHO} "NEWSENDER ='$NEWSENDER'" + ${ECHO} "RECIPIENT ='$RECIPIENT'" + ${ECHO} "USER ='$USER'" + ${ECHO} "DEFAULT ='$DEFAULT'" + ${ECHO} "LOCAL ='$LOCAL'" + ${ECHO} "HOST ='$HOST'" + ${ECHO} "---------------------------------------------------" + if [ ! -z "$1" ]; then + ${ECHO} "Checking basic list setup:" + ${ECHO} + if [ ! -r "$1/mailinglist" ]; then + ${ECHO} "$EZERR $1/mailinglist does not exist" + fi + if [ -e "$1/num" ]; then + if [ ! -w "$1/num" ]; then + ${ECHO} "$EZERR $1/num is not writable to $USER" + else + NUM=`${CAT} "$1/num" | ${HEAD} -1` + ${ECHO} "... latest message was message # $NUM" + fi + else + ${ECHO} "... no num. This must be a new list ..." + fi + ${ECHO} + if [ -e "$1/lock" -a ! -w "$1/lock" ]; then + ${ECHO} "$EZERR User $USER does not have write premission to $1/lock" + fi + if [ -e "$1/lockbounce" -a ! -w "$1/lockbounce" ]; then + ${ECHO} "$EZERR User $USER does not have write premission to $1/lockbounce" + fi + if [ ! -r "$1/inlocal" ]; then + ${ECHO} "$EZERR $1/inlocal does not exist" + elif [ ! -r "$1/inhost" ]; then + ${ECHO} "$EZERR $1/inhost does not exist" + else + INLOCAL=`${CAT} "$1/inlocal"| ${HEAD} -1` + INHOST=`${CAT} "$1/inhost"| ${HEAD} -1` + if [ -z "$HOST" ]; then + ${ECHO} "$EZERR HOST is empty. Likely running from the command" + ${ECHO} " line. Run from $1/editor to check if HOST matches" + ${ECHO} " $1/inhost and LOCAL matches $1/inlocal." + ${ECHO} " Mismatches here are the most common setup error." + ${ECHO} + else + if [ "$HOST" != "$INHOST" ]; then + ${ECHO} "$EZERR HOST does not match $1/inhost" + else + ${ECHO} "... $1/inhost OK" + fi + if ${ECHO} "$LOCAL" | ${GREP} -G "^$INLOCAL" >/dev/null 2>&1 + then + ${ECHO} "... $1/inlocal OK" + else + ${ECHO} \ + "$EZERR LOCAL does not begin with contents of $1/inlocal" + fi + fi + fi + if [ ! -r "$1/outlocal" ]; then + ${ECHO} "$EZERR $1/outlocal does not exist" + else + OUTLOCAL=`${CAT} "$1/outlocal"| ${HEAD} -1` + fi + if [ ! -r "$1/outhost" ]; then + ${ECHO} "$EZERR $1/outhost does not exist" + else + OUTHOST=`${CAT} "$1/outhost"| ${HEAD} -1` + fi + ${ECHO} "... The list is named ${OUTLOCAL}@${OUTHOST}" + if [ "$OUTHOST" != "$INHOST" ]; then + HOSTMATCH='1'; + ${ECHO} + ${ECHO} "??? $1/inhost and $1/outhost do not" + ${ECHO} " match. This is very unusual ..." + fi + if ${ECHO} "$INLOCAL" | ${GREP} "^${USER}" >/dev/null ; then + USERSTART='1'; INLOCALOK='1' + fi + if [ -z "$USERSTART" ]; then + ${ECHO} + ${ECHO} "??? $1/inlocal does not start with the user name." + ${ECHO} " This is an error, unless $INLOCAL starts with" + ${ECHO} " an alias of \"$USER\"." + fi + if [ "$INLOCAL" = "$OUTLOCAL" ]; then + ${ECHO} "... $1/inlocal matches $1/outlocal" + ${ECHO} " suggesting that this is a regular user-owned list." + CHARS=`${ECHO} " $USER" | ${WC} -c` + LIST=`${ECHO} "$OUTLOCAL" | cut -c$CHARS-` + else + if ${ECHO} "$INLOCAL" | ${GREP} "$OUTLOCAL$" >/dev/null ; then + if [ ! -z "$USERSTART" ]; then + ${ECHO} "... It appears that $OUTHOST is a virtual domain" + ${ECHO} " controlled by $USER." + LIST="$OUTLOCAL" + if [ ! -z "$HOSTMATCH" ]; then + ${ECHO} " This part of the setup appears correct." + fi + else + ${ECHO} + ${ECHO} "$EZWARN $1/inlocal ends with the contents" + ${ECHO} " of $1/outlocal, but does not start with" + ${ECHO} " $USER. If this message persists when you" + ${ECHO} " run this program from $1/editor," + ${ECHO} " there is a setup error." + fi + else + ${ECHO} + ${ECHO} "$EZWARN $1/inlocal does not end with the contents" + ${ECHO} " of $1/outlocal. This is almost always wrong." + fi + fi + if [ ! -r "$1/editor" ]; then + ${ECHO} "$EZERR $1/editor does not exist" + else + ${ECHO} + ${ECHO} "$1/editor:" + ${ECHO} "============================" + ${CAT} "$1/editor" + ${ECHO} "============================" + ${ECHO} + fi + if [ ! -r "$1/manager" ]; then + ${ECHO} "$EZERR $1/manager does not exist" + else + ${ECHO} "$1/manager:" + ${ECHO} "============================" + ${CAT} "$1/manager" + ${ECHO} "============================" + ${ECHO} + fi + if [ ! -r "$1/bouncer" ]; then + ${ECHO} "$EZERR $1/bouncer does not exist" + else + ${ECHO} "$1/bouncer:" + ${ECHO} "============================" + ${CAT} "$1/bouncer" + ${ECHO} "============================" + ${ECHO} + fi + if [ ! -r "$1/owner" ]; then + ${ECHO} "$EZERR $1/owner does not exist" + else + ${ECHO} "$1/owner:" + ${ECHO} "============================" + ${CAT} "$1/owner" + ${ECHO} "============================" + ${ECHO} + OWNER=`${GREP} "@" < $1/owner` + fi + if [ ! -r "$1/headeradd" ]; then + ${ECHO} "$EZERR $1/headeradd does not exist" + else + ${ECHO} "$1/headeradd:" + ${ECHO} "============================" + ${CAT} "$1/headeradd" + ${ECHO} "============================" + ${ECHO} + fi + if [ ! -r "$1/headerremove" ]; then + ${ECHO} "$EZERR $1/headerremove does not exist" + else + ${ECHO} "$1/headerremove:" + ${ECHO} "============================" + ${CAT} "$1/headerremove" + ${ECHO} "============================" + ${ECHO} + fi + ${ECHO} "---------------------------------------------------" + ${ECHO} "Checking standard options:" + ${ECHO} + if [ -r "$1/public" ]; then + ${ECHO} "... public" + else + ${ECHO} "... not public" + fi + if [ -r "$1/archived" ]; then + FLAGARCH='1' + ${ECHO} "... archived" + else + ${ECHO} "... not archived" + fi + if [ -r "$1/indexed" ]; then + FLAGARCH='1' + FLAGIND='1' + ${ECHO} "... indexed" + else + ${ECHO} "... not indexed" + fi + if [ ! -z "$FLAGARCH" ]; then + if [ ! -d "$1/archive" ]; then + ${ECHO} "$EZERR $1/archive is not a directory" + else + if [ ! -z "$NUM" -a ! -r "$1/archive/0/index" \ + -a ! -z "$FLAGIND" ]; then + ${ECHO} "$EZWARN list is archived, but there is no index." + ${ECHO} " Please run ezmlm-idx!" + fi + fi + fi + if [ ! -d "$1/bounce" ]; then + ${ECHO} "$EZERR $1/bounce is not a directory" + fi + if [ -r "$1/prefix" ]; then + PREFIX=`${HEAD} -1 "$1/prefix"` + ${ECHO} "... using $1/prefix as subject prefix: $PREFIX" + ${ECHO} + fi + if [ -r "$1/sublist" ]; then + ${ECHO} "... this is a sublist for:" + ${HEAD} -1 < "$1/sublist" + else + ${ECHO} "... not a sublist" + fi + if [ ! -d "$1/text" ]; then + ${ECHO} "$EZERR $1/text is not a directory" + fi + ${ECHO} "... Contents of $1/text not checked" + ${ECHO} + if [ ! -z "$OWNER" ]; then + ${ECHO} "... Mail to owner goes to: $OWNER" + else + ${ECHO} "$EZWARN Mail to owner seems not to be forwarded." + ${ECHO} " Remember to check the mailbox once in a while!" + fi + ${ECHO} + ${ECHO} "--------------------------------------------------" + ${ECHO} + ${ECHO} "... Links should be:" + ${ECHO} " ~/.qmail-{list} -> $1/editor" + ${ECHO} " ~/.qmail-{list}-default -> $1/manager" + ${ECHO} " ~/.qmail-{list}-owner -> $1/owner" + ${ECHO} " ~/.qmail-{list}-return-default -> $1/bouncer" + if [ ! -z "$LIST" -a ! -z "$INLOCALOK" ]; then + ${ECHO} + ${ECHO} " As far as I can see, '{list}' should be '$LIST'." + ${ECHO} " If so and if .qmail files should be in $HOME ..." + BN="$HOME/.qmail-$LIST" + FN="$BN" + if ${LLS} "$FN" 2>/dev/null | ${GREP} "$1/editor$" >/dev/null ; then + ${ECHO} " $FN is OK" + else + ${ECHO} "??? $FN is BAD" + fi + FN="$BN-default" + if ${LLS} "$FN" | ${GREP} "$1/manager$" >/dev/null ; then + ${ECHO} " $FN OK" + else + ${ECHO} "??? $FN is BAD" + fi + FN="$BN-owner" + if ${LLS} "$FN" | ${GREP} "$1/owner$" >/dev/null ; then + ${ECHO} " $FN is OK" + else + ${ECHO} "??? $FN is BAD" + fi + FN="$BN-return-default" + if ${LLS} "$FN" | ${GREP} "$1/bouncer$" >/dev/null ; then + ${ECHO} " $FN is OK" + else + ${ECHO} "??? $FN is BAD" + fi + fi + ${ECHO} "--------------------------------------------------" + ${ECHO} "Checking subscribers:" + ${ECHO} + if [ ! -d "$1/subscribers" ]; then + ${ECHO} "$EZERR $1/subscribers is not a directory" + else + if [ ! -x "$EZLIST" ]; then + ${ECHO} "$EZLIST is not available for listing" + else + if [ "$listsubscribers" = "yes" ] ; then + ${ECHO} "... Subscribers are:" + if ${EZLIST} "$1" | ${GREP} '@' ; then + : + else + ${ECHO} "$EZWARN no subscribers!" + fi + else + if ${EZLIST} "$1" | ${GREP} '@' >/dev/null 2>&1 ; then + ${ECHO} "... There are subscribers." + else + ${ECHO} "$EZWARN no subscribers!" + fi + fi + fi + fi + ${ECHO} + ${ECHO} "--------------------------------------------------" + ${ECHO} "Checking for digest:" + ${ECHO} + if ${GREP} 'ezmlm-tstdig' < $1/editor >/dev/null 2>&1 ; then + if ${GREP} -1 'ezmlm-tstdig' < $1/editor \ + | ${TAIL} -1 | ${GREP} 'ezmlm-get' >/dev/null; then + ${ECHO} "... integrated digest via $1/editor" + DIGEST='1' + ${ECHO} + fi + fi + if [ -z "$DIGEST" ]; then + ${ECHO} "... no digest via $1/editor" + else + ${ECHO} "... links should be:" + ${ECHO} " ~/.qmail-{list}-digest-return-default -> $1/bouncer" + ${ECHO} " ~/.qmail-{list}-digest-owner -> $1/owner" + if [ ! -z "$LIST" -a ! -z "$INLOCALOK" ]; then + ${ECHO} + ${ECHO} " As far as I can see, '{list}' should be '$LIST'." + ${ECHO} " If so and if .qmail files should be in $HOME ..." + BN="$HOME/.qmail-$LIST" + FN="$BN-digest-return-default" + if ${LLS} "$FN" 2>/dev/null | \ + ${GREP} "$1/bouncer$" >/dev/null ; then + ${ECHO} " $FN is OK" + else + ${ECHO} "??? $FN is BAD" + fi + FN="$BN-digest-owner" + if ${LLS} "$FN" 2>/dev/null | \ + ${GREP} "$1/owner$" >/dev/null ; then + ${ECHO} " $FN is OK" + else + ${ECHO} "??? $FN is BAD" + fi + fi + fi + if [ -d "$1/digest" ]; then + if [ ! -d "$1/digest/subscribers" ]; then + ${ECHO} "$EZERR $1/digest exists, but $1/digest/subscribers" + ${ECHO} "$EZERR is not a directory" + ${ECHO} + else + if [ ! -x "$EZLIST" ]; then + ${ECHO} "$EZLIST is not available for listing" + else + if [ "$listsubscribers" = "yes" ] ; then + ${ECHO} + ${ECHO} "... Digest subscribers are:" + if ${EZLIST} "$1" | ${GREP} '@' ; then + : + else + ${ECHO} "$EZWARN no subscribers!" + fi + else + if ${EZLIST} "$1" | ${GREP} '@' >/dev/null 2>&1 ; then + ${ECHO} "... There are digest subscribers." + else + ${ECHO} "$EZWARN no subscribers!" + fi + fi + fi + ${ECHO} + fi + fi + ${ECHO} "---------------------------------------------------" + ${ECHO} "Checking for subscription moderation/remote admin:" + ${ECHO} + if [ -r "$1/remote" ]; then + FLAGMOD='1' + ${ECHO} "... set up for remote administration" + REMOTE=`${CAT} "$1/remote"| ${HEAD} -1` + if ${ECHO} "$REMOTE" | ${GREP} -G "^/" >/dev/null 2>&1 + then + MODDIR="$REMOTE" + else + MODDIR="$1/mod" + fi + REMOTE='1' + else + ${ECHO} "... no remote admin" + fi + if [ -r "$1/modsub" ]; then + FLAGMOD='1' + ${ECHO} "... subscription moderated" + MODSUB=`${CAT} "$1/modsub"| ${HEAD} -1` + if ${ECHO} "$MODSUB" | ${GREP} -G "^/" >/dev/null 2>&1 + then + MODDIR="$MODSUB" + elif [ -z "$MODDIR" ]; then + MODDIR="$1/mod" + fi + else + ${ECHO} "... no subscription moderation" + fi + if [ "$FLAGMOD" = '1' ]; then + ${ECHO} + ${ECHO} "Mods/remote admins stored based in $MODDIR:" + ${ECHO} + if [ ! -d "$MODDIR" ]; then + ${ECHO} "$EZERR moderator dir $MODDIR doesn't exist!" + elif [ -e "$MODDIR/lock" -a ! -w "$MODDIR/lock" ]; then + ${ECHO} "$EZERR $MODDIR/lock is not writable to user $USER" + elif [ ! -x "$EZLIST" ]; then + ${ECHO} "${EZLIST} not available for listing" + else + if ${EZLIST} "$MODDIR" | ${GREP} '@' ; then + : + else + ${ECHO} "$EZERR no subscription moderators/remote admins!" + fi + fi + ${ECHO} + fi + ${ECHO} "---------------------------------------------------" + ${ECHO} "Checking for message moderation:" + ${ECHO} + if ${GREP} 'ezmlm-gate' < "$1/editor" > /dev/null 2>&1; then + GATE='1' + fi + if ${GREP} 'ezmlm-store' < "$1/editor" > /dev/null 2>&1; then + STORE='1' + fi + FLAGMOD='' + if [ -r "$1/modpost" ]; then + FLAGMOD='1' + MODPOST=`${CAT} "$1/modpost" | ${HEAD} -1` + if ${ECHO} "$MODPOST" | ${GREP} -G "^/" >/dev/null 2>&1 + then + MODDIR="$MODPOST" + else + MODDIR="$1/mod" + fi + fi + if [ "$STORE" = '1' -a -z "$FLAGMOD" ]; then + ${ECHO} "??? it looks from $1/editor like the list is set up" + ${ECHO} " for message moderation. However, since $1/modpost" + ${ECHO} " doesn't exist, ezmlm-store posts them directly. If" + ${ECHO} " this is not intended, please create $1/modpost." + ${ECHO} + FLAGMOD='1' + MODDIR="$1/mod" + elif [ -z "$STORE" -a -z "$GATE" -a "$FLAGMOD" = '1' ]; then + ${ECHO} "??? $1/modpost exists, leading me to think you'd like" + ${ECHO} " message moderation, but I can't find any call to" + ${ECHO} " ezmlm-store in $1/editor." + ${ECHO} + elif [ -z "$STORE" -a "$GATE" = '1' ]; then + if [ -z "$FLAGMOD" ]; then + ${ECHO} "??? The list is set up with ezmlm-gate in $1/editor." + ${ECHO} " However, since $1/modpost does not exist all" + ${ECHO} " messages will be accepted!" + FLAGMOD='1' + MODDIR="$1/mod" + else + ${ECHO} "... The list is set up with ezmlm-gate in $1/editor." + ${ECHO} " Since $1/modpost exists, subscriber messages" + ${ECHO} " will be accepted and others will be send for" + ${ECHO} " moderation." + fi + fi + if [ "$FLAGMOD" = '1' ]; then + ${ECHO} "... message moderated" + ${ECHO} + ${ECHO} "Message moderators based in $MODDIR:" + ${ECHO} + if [ ! -d "$MODDIR" ]; then + ${ECHO} "$EZERR moderator dir $MODDIR doesn't exist!" + elif [ -e "$MODDIR/lock" -a ! -w "$MODDIR/lock" ]; then + ${ECHO} "$EZERR $MODDIR/lock is not writable to user $USER" + elif [ ! -x "$EZLIST" ]; then + ${ECHO} "${EZLIST} not available for listing" + else + if ${EZLIST} "$MODDIR" | ${GREP} '@' ; then + : + else + ${ECHO} "$EZERR no message moderators!" + fi + fi + ${ECHO} + MT="120" + if [ -r "$1/modtime" ]; then + MODTIME=`${CAT} "$1/modtime" | ${HEAD} -1` + if [ "$MODTIME" -eq 0 ]; then + MT="120" + elif [ "$MODTIME" -lt 24 ]; then + MT="24" + elif [ "$MODTIME" -gt 240 ]; then + MT="240" + else + MT="${MODTIME}" + fi + fi + ${ECHO} "... Messages awaiting moderation time out after $MT hours" + if [ ! -d "$1/mod/pending" ]; then + ${ECHO} "$EZERR $MODDIR/pending is not a directory" + else + MODNUM=`${LS} "$1/mod/pending" | ${GREP} -c '*'` + ${ECHO} "... there are $MODNUM messages awaiting moderator action" + fi + if [ ! -d "$1/mod/accepted" ]; then + ${ECHO} "$EZERR $MODDIR/accepted is not a directory" + fi + if [ ! -d "$1/mod/rejected" ]; then + ${ECHO} "$EZERR $MODDIR/rejected is not a directory" + fi + if [ ! -r "$1/moderator" ]; then + ${ECHO} "$EZERR $1/moderator is not readable to user $USER" + else + if ${GREP} 'ezmlm-moderate' < "$1/moderator" >/dev/null 2>&1 + then + : + else + ${ECHO} "$EZERR $1/moderator lacks ezmlm-moderate entry" + fi + ${ECHO} + ${ECHO} "$1/moderator:" + ${ECHO} "============================" + ${CAT} "$1/moderator" + ${ECHO} "============================" + ${ECHO} + fi + ${ECHO} + ${ECHO} "... Links should be:" + ${ECHO} " ~/.qmail-{list}-accept-default -> $1/moderator" + ${ECHO} " ~/.qmail-{list}-reject-default -> $1/moderator" + ${ECHO} + if [ ! -z "$LIST" -a ! -z "$INLOCALOK" ]; then + ${ECHO} + ${ECHO} " As far as I can see, '{list}' should be '$LIST'." + ${ECHO} " If so and if .qmail files should be in $HOME ..." + BN="$HOME/.qmail-$LIST" + FN="$BN-accept-default" + if ${LLS} "$FN" 2>/dev/null | \ + ${GREP} "$1/moderator$" >/dev/null ; then + ${ECHO} " $FN is OK" + else + ${ECHO} "??? $FN is BAD" + fi + FN="$BN-reject-default" + if ${LLS} "$FN" 2>/dev/null | \ + ${GREP} "$1/moderator$" >/dev/null ; then + ${ECHO} " $FN is OK" + else + ${ECHO} "??? $FN is BAD" + fi + fi + else + ${ECHO} "... no message moderation" + fi + ${ECHO} + ${ECHO} "---------------------------------------------------" + ${ECHO} "Checking for SENDER checks:" + ${ECHO} + if ${GREP} 'ezmlm-issubn -n' < "$1/editor" >/dev/null 2>&1 ; then + ${ECHO} "... Some type of blacklisting in use" + SRESTRICT='1' + fi + if ${GREP} 'ezmlm-issubn' < "$1/editor" |\ + ${GREP} -v -- '-n' >/dev/null 2>&1 ; then + ${ECHO} "... Some type of SENDER check in use for posts" + SRESTRICT='1' + fi + if [ -z "$SRESTRICT" ]; then + ${ECHO} "... no SENDER restrictions found for posts" + fi + ${ECHO} + GET=` ${GREP} 'ezmlm-get' < "$1/manager" | \ + ${CUT} -d' ' -f2- | ${CUT} -d\' -f1` + if ${ECHO} "$GET" | ${GREP} 's' >/dev/null ; then + ${ECHO} "... Only subscribers may access the archive" + else + ${ECHO} "... no SENDER restrictions for archive access" + fi + ${ECHO} + ${ECHO} "---------------------------------------------------" + ${ECHO} "Checking for special options:" + ${ECHO} + MANAGE=` ${GREP} 'ezmlm-manage' < "$1/manager" | \ + ${CUT} -d' ' -f2- | ${CUT} -d\' -f1` + if ${ECHO} "$MANAGE" | ${GREP} 'e' >/dev/null ; then + ${ECHO} "... remote editing of $1/text/ files enabled" + SPEC='1' + fi + if ${ECHO} "$MANAGE" | ${GREP} 'l' >/dev/null ; then + ${ECHO} "... remote listing of subscribers enabled" + SPEC='1' + fi + if [ "$SPEC" = '1' -a -z "$REMOTE" ] ; then + ${ECHO} \ + "$EZERR but remote admin is not enabled, so this will not work!" + fi + ${ECHO} "---------------------------------------------------" + fi + ${ECHO} + ${ECHO} "EXT ='$EXT'" + ${ECHO} "EXT1 ='$EXT1'" + ${ECHO} "EXT2 ='$EXT2'" + ${ECHO} "EXT3 ='$EXT3'" + ${ECHO} "EXT4 ='$EXT4'" + ${ECHO} "DTLINE = $DTLINE" + ${ECHO} "RPLINE = $RPLINE" + ${ECHO} "UFLINE = $UFLINE" + ${ECHO} "---------------------------------------------------" + ${ECHO} + ${ECHO} "Hope that helps!" +) | "$RCP" || exit 100 + +exit 99 +