head 1.17; access; symbols LMTP2NNTP_1_4_1:1.17 LMTP2NNTP_1_4_0:1.17 LMTP2NNTP_1_3_0:1.17 LMTP2NNTP_1_3b2:1.17 LMTP2NNTP_1_3b1:1.17 LMTP2NNTP_1_3a3:1.17 LMTP2NNTP_1_3a2:1.17 LMTP2NNTP_1_3a1:1.17 LMTP2NNTP_1_2_0:1.17 LMTP2NNTP_1_2b4:1.17 LMTP2NNTP_1_2b3:1.17 LMTP2NNTP_1_2b2:1.17 LMTP2NNTP_1_2b1:1.17 LMTP2NNTP_1_2a8:1.17 LMTP2NNTP_1_2a7:1.15 LMTP2NNTP_1_2a6:1.13 LMTP2NNTP_1_2a5:1.13 LMTP2NNTP_1_2a4:1.13 LMTP2NNTP_1_2a3:1.13 SOURCE_RESTRUCTURING_AFTER:1.8 SOURCE_RESTRUCTURING_BEFORE:1.8 LMTP2NNTP_1_2a1:1.8 LMTP2NNTP_1_1_1:1.8 LMTP2NNTP_1_1_0:1.7 LMTP2NNTP_1_1b4:1.7 LMTP2NNTP_1_1b3:1.7 LMTP2NNTP_1_1b2:1.7 LMTP2NNTP_1_1b1:1.5 LMTP2NNTP_1_0_0:1.2; locks; strict; comment @# @; 1.17 date 2003.02.06.15.29.55; author thl; state Exp; branches; next 1.16; 1.16 date 2003.02.06.14.17.56; author thl; state Exp; branches; next 1.15; 1.15 date 2003.01.30.19.45.20; author rse; state Exp; branches; next 1.14; 1.14 date 2003.01.30.19.18.57; author rse; state Exp; branches; next 1.13; 1.13 date 2002.03.04.15.54.28; author thl; state Exp; branches; next 1.12; 1.12 date 2002.02.07.13.39.38; author thl; state Exp; branches; next 1.11; 1.11 date 2002.02.06.13.51.38; author thl; state Exp; branches; next 1.10; 1.10 date 2002.02.05.14.56.47; author thl; state Exp; branches; next 1.9; 1.9 date 2002.02.05.14.14.54; author thl; state Exp; branches; next 1.8; 1.8 date 2001.11.14.14.22.25; author thl; state Exp; branches; next 1.7; 1.7 date 2001.10.15.14.22.12; author thl; state Exp; branches; next 1.6; 1.6 date 2001.10.15.10.13.50; author thl; state Exp; branches; next 1.5; 1.5 date 2001.10.12.14.02.57; author thl; state Exp; branches; next 1.4; 1.4 date 2001.10.09.10.34.10; author rse; state Exp; branches; next 1.3; 1.3 date 2001.10.08.10.28.42; author thl; state Exp; branches; next 1.2; 1.2 date 2001.09.13.12.50.46; author thl; state Exp; branches; next 1.1; 1.1 date 2001.09.13.12.18.20; author thl; state Exp; branches; next ; desc @@ 1.17 log @debian2 fails when attempting to bind client to wildcard address @ text @#/bin/sh echon () { echo "$*" | awk '{ printf("%s", $0); }' } newmsg () { cat >${TMPFILE} < RCPT To: RCPT To: RCPT To: DATA Date: Tue, 26 Aug 2001 14:51:48 +0200 (CEST) Message-Id: <200108141251.f7ECpmn74812@@dev.de.cw.net> From: Thomas Lotterer Received: from cw.example.com (cw.example.com [10.1.1.32]) by gateway.example.com (8.9.2/8.9.2/$Revision: 1.16 $) with SMTP id NAA08840 for ; Mon, 2 Apr 2001 13:20:25 +0200 (MET DST) Received: from history (history.example.org [195.143.102.41]) by cw.example.com (8.11.0/8.11.0/$Revision: 1.16 $) with ESMTP id f32BKPb12235 for ; Mon, 2 Apr 2001 13:20:25 +0200 Received: from example.org (littlemua.example.org [195.143.103.160]) by history (8.8.8/8.8.8) with ESMTP id LAA12678; Mon, 2 Apr 2001 11:23:14 GMT X-Linefoldingtest: This is a very long line. It is assumed this line will be wrapped in order to fit. Please note: the quick brown fox jumps over the lazy dog. Did you know that my first computer was a Texas Instruments TI99/4A? What a device! Had a 16bit CPU before the Commodore C64 area has begun. Subject: lmtp2nntp testmessage.viasendmail .. a dot above # a dot below .. . QUIT EOT awk <${TMPFILE} \ ' BEGIN { gotit = 0; IGNORECASE = 1; } /^#$/ { gotit = 1; print "#" date " [" pid "] " id; } /^Message-ID:/ { gotit = 1; print "Message-Id: <" date "-" id "@@example.com>"; } /^Subject:/ { gotit = 1; print "Subject: [" pid "] " $2; } { if (gotit == 0) { print; }; gotit = 0; } ' pid="$$" id="I${H}${Z}${E}D" date="`date +%Y%m%d%H%M%S`" \ | tee 2>&1 >/dev/null ${STDIN} } prolog () { H="0"; Z="0"; E="0"; #HZE used for mass-tests with uniq IDs for i in ${FILE} ${STDIN} ${STDOUT} ${STDERR} ${DMALLOC}; do if [ -f ${i} ]; then rm -f ${i} fi touch ${i} chmod 666 ${i} done } epilog () { for i in ${FILE} ${STDIN} ${STDOUT} ${STDERR} ${DMALLOC}; do if [ -r ${i} ]; then echon "press RETURN to see the contents of ${i}" read DUMMY less -S ${i} fi done } #main () TMPDIR="${TMPDIR:-/tmp}" PREFIX="${TMPDIR}/lmtp2nntp.test." TMPFILE="${PREFIX}tmp" DMALLOC="${PREFIX}dmalloc.log" L2CONF="${PREFIX}logspec" L2FILE="${PREFIX}log" L2SPEC="'debug: prefix(prefix=\"%b %d %H:%M:%S <%L> lmtp2nntp[%P]: \",timezone=local) -> file(path=\"${L2FILE}\",append=0,perm=432)'" echo >${L2CONF} "l2spec ${L2SPEC}" LOG="-i ${L2CONF}" STDIN="${PREFIX}stdin" STDOUT="${PREFIX}stdout" STDERR="${PREFIX}stderr" HOST="0.0.0.0" GROUP="my.test" MFILT=".+@@(?:[^.]+\.)*example\.com" NODE="gateway" # make check with automatic succeed/ fail message. # more samples and testing below. echon "checking whether -v version option works ... " # expected sample output: lmtp2nntp 0.9.4 (30-Aug-2001) prolog newmsg ./lmtp2nntp -v >${STDOUT} 2>${STDERR} RC=`cat ${STDOUT} | egrep 'lmtp2nntp[ ]+[0-9]+\.[0-9]+[ab\.][0-9]+[ ]+\([0-9]+-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-[0-9]+\)' | wc -l` if [ ${RC} -ne 1 -o ".`cat ${STDERR}`" != . ]; then echo "NO (got ${RC})" echo "STDIN cat ${STDIN}" echo "STDOUT cat ${STDOUT}" echo "STDERR cat ${STDERR}" echo "LOG cat ${L2FILE}" exit 1; fi echo "yes" echon "checking whether -? usage option works ... " # expected typical output see ./lmtp2nntp -? prolog newmsg ./lmtp2nntp -? >${STDOUT} 2>${STDERR} RC=""; if [ 1 -eq `egrep <${STDOUT} -- '-C.*--childsmax' | wc -l` ]; then RC="${RC}-C "; fi if [ 1 -eq `egrep <${STDOUT} -- '-D.*--daemonize' | wc -l` ]; then RC="${RC}-D "; fi if [ 1 -eq `egrep <${STDOUT} -- '-K.*--kill' | wc -l` ]; then RC="${RC}-K "; fi if [ 1 -eq `egrep <${STDOUT} -- '-P.*--pidfile' | wc -l` ]; then RC="${RC}-P "; fi if [ 1 -eq `egrep <${STDOUT} -- '-a.*--acl' | wc -l` ]; then RC="${RC}-a "; fi if [ 1 -eq `egrep <${STDOUT} -- '-b.*--bind' | wc -l` ]; then RC="${RC}-b "; fi if [ 1 -eq `egrep <${STDOUT} -- '-c.*--client' | wc -l` ]; then RC="${RC}-c "; fi if [ 1 -eq `egrep <${STDOUT} -- '-d.*--destination' | wc -l` ]; then RC="${RC}-d "; fi if [ 1 -eq `egrep <${STDOUT} -- '-g.*--groupmode' | wc -l` ]; then RC="${RC}-g "; fi if [ 1 -eq `egrep <${STDOUT} -- '-h.*--headerrule' | wc -l` ]; then RC="${RC}-h "; fi if [ 1 -eq `egrep <${STDOUT} -- '-i.*--include' | wc -l` ]; then RC="${RC}-i "; fi if [ 1 -eq `egrep <${STDOUT} -- '--timeoutlmtp' | wc -l` ]; then RC="${RC}--timeoutlmtp "; fi if [ 1 -eq `egrep <${STDOUT} -- '--timeoutlmtpaccept' | wc -l` ]; then RC="${RC}--timeoutlmtpaccept "; fi if [ 1 -eq `egrep <${STDOUT} -- '--timeoutlmtpread' | wc -l` ]; then RC="${RC}--timeoutlmtpread "; fi if [ 1 -eq `egrep <${STDOUT} -- '--timeoutlmtpwrite' | wc -l` ]; then RC="${RC}--timeoutlmtpwrite "; fi if [ 1 -eq `egrep <${STDOUT} -- '--timeoutnntp' | wc -l` ]; then RC="${RC}--timeoutnntp "; fi if [ 1 -eq `egrep <${STDOUT} -- '--timeoutnntpconnect' | wc -l` ]; then RC="${RC}--timeoutnntpconnect "; fi if [ 1 -eq `egrep <${STDOUT} -- '--timeoutnntpread' | wc -l` ]; then RC="${RC}--timeoutnntpread "; fi if [ 1 -eq `egrep <${STDOUT} -- '--timeoutnntpwrite' | wc -l` ]; then RC="${RC}--timeoutnntpwrite "; fi if [ 1 -eq `egrep <${STDOUT} -- '-l.*--l2spec' | wc -l` ]; then RC="${RC}-l "; fi if [ 1 -eq `egrep <${STDOUT} -- '-m.*--mailfrom' | wc -l` ]; then RC="${RC}-m "; fi if [ 1 -eq `egrep <${STDOUT} -- '-n.*--nodename' | wc -l` ]; then RC="${RC}-n "; fi if [ 1 -eq `egrep <${STDOUT} -- '-o.*--operationmode' | wc -l` ]; then RC="${RC}-o "; fi if [ 1 -eq `egrep <${STDOUT} -- '-r.*--restrictheader' | wc -l` ]; then RC="${RC}-r "; fi if [ 1 -eq `egrep <${STDOUT} -- '-s.*--size' | wc -l` ]; then RC="${RC}-s "; fi if [ 1 -eq `egrep <${STDOUT} -- '-u.*--user' | wc -l` ]; then RC="${RC}-u "; fi if [ 1 -eq `egrep <${STDOUT} -- '-v.*--version' | wc -l` ]; then RC="${RC}-v "; fi if [ 1 -eq `egrep <${STDOUT} -- '--newsgroup' | wc -l` ]; then RC="${RC}--newsgroup "; fi if [ 1 -eq `egrep <${STDOUT} -- '-?.*--help' | wc -l` ]; then RC="${RC}-? "; fi if [ 1 -eq `egrep <${STDOUT} -- '--usage' | wc -l` ]; then RC="${RC}--usage "; fi if [ "${RC}" != "-C -D -K -P -a -b -c -d -g -h -i --timeoutlmtpaccept --timeoutlmtpread --timeoutlmtpwrite --timeoutnntpconnect --timeoutnntpread --timeoutnntpwrite -l -m -n -o -r -s -u -v --newsgroup -? --usage " ]; then echo "NO (got ${RC})" echo "STDIN cat ${STDIN}" echo "STDOUT cat ${STDOUT}" echo "STDERR cat ${STDERR}" echo "LOG cat ${L2FILE}" exit 1; fi echo "yes" echon "checking whether a valid fake posting succeeds ... " prolog newmsg ./lmtp2nntp <${STDIN} -b - -o 250/2.0.0 -g arg -d ${HOST} ${LOG} -m "${MFILT}" -n ${NODE} -s 1500 --timeoutnntpconnect=1 ${GROUP} >${STDOUT} 2>${STDERR} ; RC=$ RC=""; if [ 1 -eq `egrep <${STDOUT} '^220[- ]LMTP Service ready' | wc -l` ]; then RC="${RC}init "; fi if [ 1 -eq `egrep <${STDOUT} '^250[- ].*pleased to meet you' | wc -l` ]; then RC="${RC}LHLO "; fi if [ 1 -eq `egrep <${STDOUT} '^250[- ]2.1.0 Sender ok' | wc -l` ]; then RC="${RC}MAIL "; fi if [ 3 -eq `egrep <${STDOUT} '^250[- ]2.1.5 Recipient accepted' | wc -l` ]; then RC="${RC}RCPT "; fi if [ 1 -eq `egrep <${STDOUT} '^354[- ]Enter mail' | wc -l` ]; then RC="${RC}DATA "; fi if [ 3 -eq `egrep <${STDOUT} '^250[- ]2.0.0 NNTP noop fake' | wc -l` ]; then RC="${RC}post "; fi if [ 1 -eq `egrep <${STDOUT} '^221[- ]2.0.0.+closing.+channel' | wc -l` ]; then RC="${RC}QUIT "; fi if [ "${RC}" != "init LHLO MAIL RCPT DATA post QUIT " ]; then echo "NO (got ${RC})" echo "STDIN cat ${STDIN}" echo "STDOUT cat ${STDOUT}" echo "STDERR cat ${STDERR}" echo "LOG cat ${L2FILE}" exit 1; fi echo "yes" echon "checking whether -m option blocks invalid sender ... " prolog newmsg ( MFILT=".*@@is.invalid" ; ./lmtp2nntp <${STDIN} -b - -o 250/2.0.0 -g arg -d ${HOST} ${LOG} -m "${MFILT}" -n ${NODE} -s 1500 --timeoutnntpconnect=1 ${GROUP} >${STDOUT} 2>${STDERR} ) ; RC=$? RC=""; if [ 1 -eq `egrep <${STDOUT} '^220[- ]LMTP Service ready' | wc -l` ]; then RC="${RC}init "; fi if [ 1 -eq `egrep <${STDOUT} '^250[- ].+pleased to meet you' | wc -l` ]; then RC="${RC}LHLO "; fi if [ 1 -eq `egrep <${STDOUT} '^550[- ]5.7.1.+not authorized' | wc -l` ]; then RC="${RC}MAIL "; fi if [ 3 -eq `egrep <${STDOUT} '^503[- ]5.5.0.+MAIL first' | wc -l` ]; then RC="${RC}RCPT "; fi if [ 1 -eq `egrep <${STDOUT} '^503[- ]5.5.0.+RCPT first' | wc -l` ]; then RC="${RC}DATA "; fi if [ 0 -lt `egrep <${STDOUT} '^500[- ]5.5.1.+unrecognized' | wc -l` ]; then RC="${RC}post "; fi if [ 1 -eq `egrep <${STDOUT} '^221[- ]2.0.0.+closing.+channel' | wc -l` ]; then RC="${RC}QUIT "; fi if [ "${RC}" != "init LHLO MAIL RCPT DATA post QUIT " ]; then echo "NO (got ${RC})" echo "STDIN cat ${STDIN}" echo "STDOUT cat ${STDOUT}" echo "STDERR cat ${STDERR}" echo "LOG cat ${L2FILE}" exit 1; fi echo "yes" echon "checking whether -s option rejects article with invalid size ... " prolog newmsg ./lmtp2nntp <${STDIN} -b - -o 250/2.0.0 -g arg -d ${HOST} ${LOG} -m "${MFILT}" -n ${NODE} -s 100 --timeoutnntpconnect=1 ${GROUP} >${STDOUT} 2>${STDERR} ; RC=$? RC=""; if [ 1 -eq `egrep <${STDOUT} '^220[- ]LMTP Service ready' | wc -l` ]; then RC="${RC}init "; fi if [ 1 -eq `egrep <${STDOUT} '^250[- ].*pleased to meet you' | wc -l` ]; then RC="${RC}LHLO "; fi if [ 1 -eq `egrep <${STDOUT} '^250[- ]2.1.0 Sender ok' | wc -l` ]; then RC="${RC}MAIL "; fi if [ 3 -eq `egrep <${STDOUT} '^250[- ]2.1.5 Recipient accepted' | wc -l` ]; then RC="${RC}RCPT "; fi if [ 1 -eq `egrep <${STDOUT} '^354[- ]Enter mail' | wc -l` ]; then RC="${RC}DATA "; fi if [ 3 -eq `egrep <${STDOUT} '^552[- ]5.2.3.+exceeds.+limit' | wc -l` ]; then RC="${RC}post "; fi if [ 1 -eq `egrep <${STDOUT} '^221[- ]2.0.0.+closing.+channel' | wc -l` ]; then RC="${RC}QUIT "; fi if [ "${RC}" != "init LHLO MAIL RCPT DATA post QUIT " ]; then echo "NO (got ${RC})" echo "STDIN cat ${STDIN}" echo "STDOUT cat ${STDOUT}" echo "STDERR cat ${STDERR}" echo "LOG cat ${L2FILE}" exit 1; fi echo "yes" echon "checking whether -c option fails on invalid local host address ... " prolog newmsg ( LOCAL="10.255.255.255" ; ./lmtp2nntp <${STDIN} -b - -c ${LOCAL} -o 250/2.0.0 -g arg -d ${HOST} ${LOG} -m "${MFILT}" -n ${NODE} -s 1500 --timeoutnntpconnect=1 ${GROUP} >${STDOUT} 2>${STDERR} ) ; RC=$? RC=""; if [ 1 -eq `egrep <${STDOUT} '^220[- ]LMTP Service ready' | wc -l` ]; then RC="${RC}init "; fi if [ 1 -eq `egrep <${L2FILE} 'error.+binding' | wc -l` ]; then RC="${RC}bind "; fi if [ "${RC}" != "init bind " ]; then echo "NO (got ${RC})" echo "STDIN cat ${STDIN}" echo "STDOUT cat ${STDOUT}" echo "STDERR cat ${STDERR}" echo "LOG cat ${L2FILE}" exit 1; fi echo "yes" echon "checking whether -g envelope option blocks invalid group ... " prolog newmsg ( GROUP="foo.*" ; ./lmtp2nntp <${STDIN} -b - -o 250/2.0.0 -g envelope -d ${HOST} ${LOG} -m "${MFILT}" -n ${NODE} -s 1500 --timeoutnntpconnect=1 ${GROUP} >${STDOUT} 2>${STDERR} ) ; RC=$? RC=""; if [ 1 -eq `egrep <${STDOUT} '^220[- ]LMTP Service ready' | wc -l` ]; then RC="${RC}init "; fi if [ 1 -eq `egrep <${STDOUT} '^250[- ].*pleased to meet you' | wc -l` ]; then RC="${RC}LHLO "; fi if [ 1 -eq `egrep <${STDOUT} '^250[- ]2.1.0 Sender ok' | wc -l` ]; then RC="${RC}MAIL "; fi if [ 1 -eq `egrep <${STDOUT} '^550[- ]5.7.2 unmatched Group' | wc -l` ]; then RC="${RC}RCPT "; fi if [ 2 -eq `egrep <${STDOUT} '^250[- ]2.1.5 Group accepted' | wc -l` ]; then RC="${RC}RCPT "; fi if [ 1 -eq `egrep <${STDOUT} '^354[- ]Enter mail' | wc -l` ]; then RC="${RC}DATA "; fi if [ 2 -eq `egrep <${STDOUT} '^250[- ]2.0.0 NNTP noop fake' | wc -l` ]; then RC="${RC}post "; fi if [ 1 -eq `egrep <${STDOUT} '^221[- ]2.0.0.+closing.+channel' | wc -l` ]; then RC="${RC}QUIT "; fi if [ "${RC}" != "init LHLO MAIL RCPT RCPT DATA post QUIT " ]; then echo "NO (got ${RC})" echo "STDIN cat ${STDIN}" echo "STDOUT cat ${STDOUT}" echo "STDERR cat ${STDERR}" echo "LOG cat ${L2FILE}" exit 1; fi echo "yes" echon "checking whether -d option times out for invalid host ... " prolog newmsg ( HOST="10.255.255.255" ; ./lmtp2nntp <${STDIN} -b - -o 250/2.0.0 -g arg -d ${HOST} ${LOG} -m "${MFILT}" -n ${NODE} -s 1500 --timeoutnntpconnect=1 ${GROUP} >${STDOUT} 2>${STDERR} ) ; RC=$? RC=""; if [ 1 -eq `egrep <${STDOUT} '^220[- ]LMTP Service ready' | wc -l` ]; then RC="${RC}init "; fi if [ 1 -eq `egrep <${L2FILE} 'warning.+connect.+failed' | wc -l` ]; then RC="${RC}conn "; fi if [ "${RC}" != "init conn " ]; then echo "NO (got ${RC})" echo "STDIN cat ${STDIN}" echo "STDOUT cat ${STDOUT}" echo "STDERR cat ${STDERR}" echo "LOG cat ${L2FILE}" exit 1; fi echo "yes" echon "checking whether -h option adds header/value pair ... " prolog newmsg ./lmtp2nntp <${STDIN} -b - -o 250/2.0.0 -g arg -d ${HOST} -h "::X-Gateway:added it!" ${LOG} -m "${MFILT}" -n ${NODE} -s 1500 --timeoutnntpconnect=1 ${GROUP} >${STDOUT} 2>${STDERR} RC=""; if [ 1 -eq `egrep <${STDOUT} '^220[- ]LMTP Service ready' | wc -l` ]; then RC="${RC}init "; fi if [ 1 -eq `egrep <${L2FILE} 'appending header X-Gateway:' | wc -l` ]; then RC="${RC}head "; fi if [ 1 -eq `egrep <${L2FILE} 'header=X-Gateway.*data=added it!' | wc -l` ]; then RC="${RC}val. "; fi if [ 1 -eq `egrep <${L2FILE} 'verbatim.*"X-Gateway: added it!"' | wc -l` ]; then RC="${RC}pair "; fi if [ "${RC}" != "init head val. pair " ]; then echo "NO (got ${RC})" echo "STDIN cat ${STDIN}" echo "STDOUT cat ${STDOUT}" echo "STDERR cat ${STDERR}" echo "LOG cat ${L2FILE}" exit 1; fi echo "yes" echon "checking whether -r option rejects headers ... " prolog newmsg ./lmtp2nntp <${STDIN} -b - -o 250/2.0.0 -g arg -d ${HOST} -r'^X-Linefoldingtest:.*begun.$' ${LOG} -m "${MFILT}" -n ${NODE} -s 1500 --timeoutnntpconnect=1 ${GROUP} >${STDOUT} 2>${STDERR} RC=""; if [ 1 -eq `egrep <${STDOUT} '^220[- ]LMTP Service ready' | wc -l` ]; then RC="${RC}init "; fi if [ 1 -eq `egrep <${L2FILE} 'restricted header found' | wc -l` ]; then RC="${RC}rest "; fi if [ "${RC}" != "init rest " ]; then echo "NO (got ${RC})" echo "STDIN cat ${STDIN}" echo "STDOUT cat ${STDOUT}" echo "STDERR cat ${STDERR}" echo "LOG cat ${L2FILE}" exit 1; fi echo "yes" echo "CHECK COMPLETE AND PASSED" #epilog exit 0 @ 1.16 log @wrong description text @ text @d19 1 a19 1 by gateway.example.com (8.9.2/8.9.2/$Revision: 1.15 $) with SMTP id NAA08840 d22 1 a22 1 by cw.example.com (8.11.0/8.11.0/$Revision: 1.15 $) with ESMTP id f32BKPb12235 a88 1 LOCAL="0.0.0.0" d162 1 a162 1 ./lmtp2nntp <${STDIN} -b - -c ${LOCAL} -o 250/2.0.0 -g arg -d ${HOST} ${LOG} -m "${MFILT}" -n ${NODE} -s 1500 --timeoutnntpconnect=1 ${GROUP} >${STDOUT} 2>${STDERR} ; RC=$ d184 1 a184 1 ( MFILT=".*@@is.invalid" ; ./lmtp2nntp <${STDIN} -b - -c ${LOCAL} -o 250/2.0.0 -g arg -d ${HOST} ${LOG} -m "${MFILT}" -n ${NODE} -s 1500 --timeoutnntpconnect=1 ${GROUP} >${STDOUT} 2>${STDERR} ) ; RC=$? d206 1 a206 1 ./lmtp2nntp <${STDIN} -b - -c ${LOCAL} -o 250/2.0.0 -g arg -d ${HOST} ${LOG} -m "${MFILT}" -n ${NODE} -s 100 --timeoutnntpconnect=1 ${GROUP} >${STDOUT} 2>${STDERR} ; RC=$? d245 1 a245 1 ( GROUP="foo.*" ; ./lmtp2nntp <${STDIN} -b - -c ${LOCAL} -o 250/2.0.0 -g envelope -d ${HOST} ${LOG} -m "${MFILT}" -n ${NODE} -s 1500 --timeoutnntpconnect=1 ${GROUP} >${STDOUT} 2>${STDERR} ) ; RC=$? d268 1 a268 1 ( HOST="10.255.255.255" ; ./lmtp2nntp <${STDIN} -b - -c ${LOCAL} -o 250/2.0.0 -g arg -d ${HOST} ${LOG} -m "${MFILT}" -n ${NODE} -s 1500 --timeoutnntpconnect=1 ${GROUP} >${STDOUT} 2>${STDERR} ) ; RC=$? d285 1 a285 1 ./lmtp2nntp <${STDIN} -b - -c ${LOCAL} -o 250/2.0.0 -g arg -d ${HOST} -h "::X-Gateway:added it!" ${LOG} -m "${MFILT}" -n ${NODE} -s 1500 --timeoutnntpconnect=1 ${GROUP} >${STDOUT} 2>${STDERR} d304 1 a304 1 ./lmtp2nntp <${STDIN} -b - -c ${LOCAL} -o 250/2.0.0 -g arg -d ${HOST} -r'^X-Linefoldingtest:.*begun.$' ${LOG} -m "${MFILT}" -n ${NODE} -s 1500 --timeoutnntpconnect=1 ${GROUP} >${STDOUT} 2>${STDERR} @ 1.15 log @remove trailing whitespaces from source tree @ text @d19 1 a19 1 by gateway.example.com (8.9.2/8.9.2/$Revision: 1.14 $) with SMTP id NAA08840 d22 1 a22 1 by cw.example.com (8.11.0/8.11.0/$Revision: 1.14 $) with ESMTP id f32BKPb12235 d98 1 a98 1 echon "checking whether -v verbose option works ... " @ 1.14 log @Fix a big security hole: the l2_spec() is a varargs function which gets a format string and variable arguments. In case only a fixed string is used we have to use "%s" as the format string or else "%x" in the string is treated like a formatter (and hence cause a segfault or whatever else if it tries to fetch args from the stack). This especially also no longer requires the formatting constricts to be written %%X... @ text @d19 1 a19 1 by gateway.example.com (8.9.2/8.9.2/$Revision: 1.13 $) with SMTP id NAA08840 d22 1 a22 1 by cw.example.com (8.11.0/8.11.0/$Revision: 1.13 $) with ESMTP id f32BKPb12235 d82 1 a82 1 L2SPEC="'debug: prefix(prefix=\"%b %d %H:%M:%S <%L> lmtp2nntp[%P]: \",timezone=local) -> file(path=\"${L2FILE}\",append=0,perm=432)'" @ 1.13 log @Integration done replacing headervalue with new headerrule stuff. This version is v1.2a3 and runs live on visp.engelschall.com @ text @d19 1 a19 1 by gateway.example.com (8.9.2/8.9.2/$Revision: 1.12 $) with SMTP id NAA08840 d22 1 a22 1 by cw.example.com (8.11.0/8.11.0/$Revision: 1.12 $) with ESMTP id f32BKPb12235 d82 1 a82 1 L2SPEC="'debug: prefix(prefix=\"%%b %%d %%H:%%M:%%S <%%L> lmtp2nntp[%%P]: \",timezone=local) -> file(path=\"${L2FILE}\",append=0,perm=432)'" @ 1.12 log @added test suite for --headervalue and --restrictheader @ text @d19 1 a19 1 by gateway.example.com (8.9.2/8.9.2/$Revision: 1.11 $) with SMTP id NAA08840 d22 1 a22 1 by cw.example.com (8.11.0/8.11.0/$Revision: 1.11 $) with ESMTP id f32BKPb12235 d129 1 a129 1 if [ 1 -eq `egrep <${STDOUT} -- '-h.*--headervalue' | wc -l` ]; then RC="${RC}-h "; fi d286 1 a286 1 ./lmtp2nntp <${STDIN} -b - -c ${LOCAL} -o 250/2.0.0 -g arg -d ${HOST} -h "X-Gateway: added it!" ${LOG} -m "${MFILT}" -n ${NODE} -s 1500 --timeoutnntpconnect=1 ${GROUP} >${STDOUT} 2>${STDERR} d289 2 a290 2 if [ 1 -eq `egrep <${L2FILE} 'adding.*header: "X-Gateway:"' | wc -l` ]; then RC="${RC}head "; fi if [ 1 -eq `egrep <${L2FILE} 'adding.*header: "added it!"' | wc -l` ]; then RC="${RC}val. "; fi @ 1.11 log @Fixed bug in --destionation and main() not initializing data correctly causing segfaults. Deactivated leftover code from the static ns array with nsc counter where memcpy segfaults. Fixed bug in option_register() not strdup()ing the default value causing free() to fail on cleanup. Added '-b -' to test.sh cause defaultng to stdio does not currenly work. Deactivated l2_channel_destroy() because it's cleanup fails and it hangs in a infinite loop in user space. @ text @d19 1 a19 1 by gateway.example.com (8.9.2/8.9.2/$Revision: 1.10 $) with SMTP id NAA08840 d22 1 a22 1 by cw.example.com (8.11.0/8.11.0/$Revision: 1.10 $) with ESMTP id f32BKPb12235 d283 35 @ 1.10 log @"make check" works again! --operationmode now correctly sets OPERATIONMODE_FAKE and detects internal error when this mandatory option was neither given nor preset through option_register(). Found missing functionality where option_parse_internal() does not fail on syntax errors or unknown options. Corrected --timeout* options in "test.sh". @ text @d19 1 a19 1 by gateway.example.com (8.9.2/8.9.2/$Revision: 1.9 $) with SMTP id NAA08840 d22 1 a22 1 by cw.example.com (8.11.0/8.11.0/$Revision: 1.9 $) with ESMTP id f32BKPb12235 d163 1 a163 1 ./lmtp2nntp <${STDIN} -c ${LOCAL} -o 250/2.0.0 -g arg -d ${HOST} ${LOG} -m "${MFILT}" -n ${NODE} -s 1500 --timeoutnntpconnect=1 ${GROUP} >${STDOUT} 2>${STDERR} ; RC=$ d185 1 a185 1 ( MFILT=".*@@is.invalid" ; ./lmtp2nntp <${STDIN} -c ${LOCAL} -o 250/2.0.0 -g arg -d ${HOST} ${LOG} -m "${MFILT}" -n ${NODE} -s 1500 --timeoutnntpconnect=1 ${GROUP} >${STDOUT} 2>${STDERR} ) ; RC=$? d207 1 a207 1 ./lmtp2nntp <${STDIN} -c ${LOCAL} -o 250/2.0.0 -g arg -d ${HOST} ${LOG} -m "${MFILT}" -n ${NODE} -s 100 --timeoutnntpconnect=1 ${GROUP} >${STDOUT} 2>${STDERR} ; RC=$? d229 1 a229 1 ( LOCAL="10.255.255.255" ; ./lmtp2nntp <${STDIN} -c ${LOCAL} -o 250/2.0.0 -g arg -d ${HOST} ${LOG} -m "${MFILT}" -n ${NODE} -s 1500 --timeoutnntpconnect=1 ${GROUP} >${STDOUT} 2>${STDERR} ) ; RC=$? d246 1 a246 1 ( GROUP="foo.*" ; ./lmtp2nntp <${STDIN} -c ${LOCAL} -o 250/2.0.0 -g envelope -d ${HOST} ${LOG} -m "${MFILT}" -n ${NODE} -s 1500 --timeoutnntpconnect=1 ${GROUP} >${STDOUT} 2>${STDERR} ) ; RC=$? d269 1 a269 1 ( HOST="10.255.255.255" ; ./lmtp2nntp <${STDIN} -c ${LOCAL} -o 250/2.0.0 -g arg -d ${HOST} ${LOG} -m "${MFILT}" -n ${NODE} -s 1500 --timeoutnntpconnect=1 ${GROUP} >${STDOUT} 2>${STDERR} ) ; RC=$? @ 1.9 log @--version should print then exit the program. It's use is mutually exclusive and it should be checked very soon in the config process. Fixed a bug in --childsmax where sa_addr_u2a expects a colon. Started to work on testsuite which needs major corrections and exhibits lots of bugs in lmtp2nntp. Found a bug where --l2spec does not work when specified on command line. @ text @d19 1 a19 1 by gateway.example.com (8.9.2/8.9.2/$Revision: 1.8 $) with SMTP id NAA08840 d22 1 a22 1 by cw.example.com (8.11.0/8.11.0/$Revision: 1.8 $) with ESMTP id f32BKPb12235 d106 4 d152 4 d163 1 a163 2 echo ./lmtp2nntp ${STDIN} -c ${LOCAL} -o 250/2.0.0 -g arg -d ${HOST} ${LOG} -m "${MFILT}" -n ${NODE} -s 1500 -t nntp:connect=1 ${GROUP} ${STDOUT} 2${STDERR} ; RC=$ ./lmtp2nntp <${STDIN} -c ${LOCAL} -o 250/2.0.0 -g arg -d ${HOST} ${LOG} -m "${MFILT}" -n ${NODE} -s 1500 -t nntp:connect=1 ${GROUP} >${STDOUT} 2>${STDERR} ; RC=$ d174 4 a177 4 echo STDIN cat ${STDIN} echo STDOUT cat ${STDOUT} echo STDERR cat ${STDERR} echo LOG cat ${L2FILE} d185 1 a185 1 ( MFILT=".*@@is.invalid" ; ./lmtp2nntp <${STDIN} -c ${LOCAL} -o 250/2.0.0 -g arg -d ${HOST} ${LOG} -m "${MFILT}" -n ${NODE} -s 1500 -t nntp:connect=1 ${GROUP} >${STDOUT} 2>${STDERR} ) ; RC=$? d196 4 d207 1 a207 1 ./lmtp2nntp <${STDIN} -c ${LOCAL} -o 250/2.0.0 -g arg -d ${HOST} ${LOG} -m "${MFILT}" -n ${NODE} -s 100 -t nntp:connect=1 ${GROUP} >${STDOUT} 2>${STDERR} ; RC=$? d218 4 d229 1 a229 1 ( LOCAL="10.255.255.255" ; ./lmtp2nntp <${STDIN} -c ${LOCAL} -o 250/2.0.0 -g arg -d ${HOST} ${LOG} -m "${MFILT}" -n ${NODE} -s 1500 -t nntp:connect=1 ${GROUP} >${STDOUT} 2>${STDERR} ) ; RC=$? d232 1 a232 1 if [ 1 -eq `egrep <${FILE} 'error.+binding' | wc -l` ]; then RC="${RC}bind "; fi d235 4 d246 1 a246 1 ( GROUP="foo.*" ; ./lmtp2nntp <${STDIN} -c ${LOCAL} -o 250/2.0.0 -g envelope -d ${HOST} ${LOG} -m "${MFILT}" -n ${NODE} -s 1500 -t nntp:connect=1 ${GROUP} >${STDOUT} 2>${STDERR} ) ; RC=$? d258 4 d269 1 a269 1 ( HOST="10.255.255.255" ; ./lmtp2nntp <${STDIN} -c ${LOCAL} -o 250/2.0.0 -g arg -d ${HOST} ${LOG} -m "${MFILT}" -n ${NODE} -s 1500 -t nntp:connect=1 ${GROUP} >${STDOUT} 2>${STDERR} ) ; RC=$? d272 1 a272 1 if [ 1 -eq `egrep <${FILE} 'warning.+connect.+failed' | wc -l` ]; then RC="${RC}conn "; fi d275 4 @ 1.8 log @ALERT! The line folding algorithm in LMTP2NNTP_1_1_0 had a bug when wrapping long lines. It used argz_insert() inside an iteration loop while manipulating the elements the loop's based on. When the element being inserted did not fit into the previously allocated buffer, a realloc() occured. This rendered the iteration loop pointer invalid causing the code to write into the wilderness. This caused segfaults at the very best but it also happend that the folding code hung in an arbitrary loop effectively exhausting all available CPU horsepower. This happend on our live machine and was reported by ricudis@@paiko.gr, too. This fix is the ultimate reason for releasing LMTP2NNTP_1_1_1. @ text @d19 1 a19 1 by gateway.example.com (8.9.2/8.9.2/$Revision: 1.7 $) with SMTP id NAA08840 d22 1 a22 1 by cw.example.com (8.11.0/8.11.0/$Revision: 1.7 $) with ESMTP id f32BKPb12235 d80 6 a85 2 LOG="debug" FILE="${PREFIX}stdlog" d115 32 a146 2 RC=`cat ${STDERR} | egrep -- '-C.*-D.*-K.*-P.*-V.*-a.*-b.*-d.*-g.*-h.*-l.*-m.*-n.*-o.*-r.*-s.*-t.*-v.*newsgroup' | wc -l` if [ ${RC} -ne 1 -o -s ${STDOUT} ]; then d155 2 a156 1 ./lmtp2nntp <${STDIN} -c ${LOCAL} -o 250/2.0.0 -g arg -d ${HOST} -l ${LOG}:${FILE} -m "${MFILT}" -n ${NODE} -s 1500 -t nntp:connect=1 ${GROUP} >${STDOUT} 2>${STDERR} ; RC=$ d167 4 d178 1 a178 1 ( MFILT=".*@@is.invalid" ; ./lmtp2nntp <${STDIN} -c ${LOCAL} -o 250/2.0.0 -g arg -d ${HOST} -l ${LOG}:${FILE} -m "${MFILT}" -n ${NODE} -s 1500 -t nntp:connect=1 ${GROUP} >${STDOUT} 2>${STDERR} ) ; RC=$? d196 1 a196 1 ./lmtp2nntp <${STDIN} -c ${LOCAL} -o 250/2.0.0 -g arg -d ${HOST} -l ${LOG}:${FILE} -m "${MFILT}" -n ${NODE} -s 100 -t nntp:connect=1 ${GROUP} >${STDOUT} 2>${STDERR} ; RC=$? d214 1 a214 1 ( LOCAL="10.255.255.255" ; ./lmtp2nntp <${STDIN} -c ${LOCAL} -o 250/2.0.0 -g arg -d ${HOST} -l ${LOG}:${FILE} -m "${MFILT}" -n ${NODE} -s 1500 -t nntp:connect=1 ${GROUP} >${STDOUT} 2>${STDERR} ) ; RC=$? d227 1 a227 1 ( GROUP="foo.*" ; ./lmtp2nntp <${STDIN} -c ${LOCAL} -o 250/2.0.0 -g envelope -d ${HOST} -l ${LOG}:${FILE} -m "${MFILT}" -n ${NODE} -s 1500 -t nntp:connect=1 ${GROUP} >${STDOUT} 2>${STDERR} ) ; RC=$? d246 1 a246 1 ( HOST="10.255.255.255" ; ./lmtp2nntp <${STDIN} -c ${LOCAL} -o 250/2.0.0 -g arg -d ${HOST} -l ${LOG}:${FILE} -m "${MFILT}" -n ${NODE} -s 1500 -t nntp:connect=1 ${GROUP} >${STDOUT} 2>${STDERR} ) ; RC=$? @ 1.7 log @added -r restrictheaders option @ text @d19 1 a19 1 by gateway.example.com (8.9.2/8.9.2/$Revision: 1.6 $) with SMTP id NAA08840 d22 1 a22 1 by cw.example.com (8.11.0/8.11.0/$Revision: 1.6 $) with ESMTP id f32BKPb12235 d27 4 d121 1 a121 1 ./lmtp2nntp <${STDIN} -c ${LOCAL} -o 250/2.0.0 -g arg -d ${HOST} -l ${LOG}:${FILE} -m "${MFILT}" -n ${NODE} -s 1000 -t nntp:connect=1 ${GROUP} >${STDOUT} 2>${STDERR} ; RC=$ d139 1 a139 1 ( MFILT=".*@@is.invalid" ; ./lmtp2nntp <${STDIN} -c ${LOCAL} -o 250/2.0.0 -g arg -d ${HOST} -l ${LOG}:${FILE} -m "${MFILT}" -n ${NODE} -s 1000 -t nntp:connect=1 ${GROUP} >${STDOUT} 2>${STDERR} ) ; RC=$? d175 1 a175 1 ( LOCAL="10.255.255.255" ; ./lmtp2nntp <${STDIN} -c ${LOCAL} -o 250/2.0.0 -g arg -d ${HOST} -l ${LOG}:${FILE} -m "${MFILT}" -n ${NODE} -s 1000 -t nntp:connect=1 ${GROUP} >${STDOUT} 2>${STDERR} ) ; RC=$? d188 1 a188 1 ( GROUP="foo.*" ; ./lmtp2nntp <${STDIN} -c ${LOCAL} -o 250/2.0.0 -g envelope -d ${HOST} -l ${LOG}:${FILE} -m "${MFILT}" -n ${NODE} -s 1000 -t nntp:connect=1 ${GROUP} >${STDOUT} 2>${STDERR} ) ; RC=$? d207 1 a207 1 ( HOST="10.255.255.255" ; ./lmtp2nntp <${STDIN} -c ${LOCAL} -o 250/2.0.0 -g arg -d ${HOST} -l ${LOG}:${FILE} -m "${MFILT}" -n ${NODE} -s 1000 -t nntp:connect=1 ${GROUP} >${STDOUT} 2>${STDERR} ) ; RC=$? @ 1.6 log @Applied Ralf's "Approved:" header patch but in a more general form which allows any kind and any number of headers to be inserted. @ text @d19 1 a19 1 by gateway.example.com (8.9.2/8.9.2/$Revision: 1.5 $) with SMTP id NAA08840 d22 1 a22 1 by cw.example.com (8.11.0/8.11.0/$Revision: 1.5 $) with ESMTP id f32BKPb12235 d107 1 a107 1 RC=`cat ${STDERR} | egrep -- '-C.*-D.*-K.*-P.*-V.*-a.*-b.*-d.*-g.*-h.*-l.*-m.*-n.*-o.*-s.*-t.*-v.*newsgroup' | wc -l` @ 1.5 log @bugfix test suite @ text @d19 1 a19 1 by gateway.example.com (8.9.2/8.9.2/$Revision: 1.4 $) with SMTP id NAA08840 d22 1 a22 1 by cw.example.com (8.11.0/8.11.0/$Revision: 1.4 $) with ESMTP id f32BKPb12235 d103 1 a103 5 # expected typical output: USAGE: ./lmtp2nntp # [-D] [-K] [-P pidfile] [-a addr/mask[,addr/mask[,...]] [-b # -|path|addr[:port]] [-c addr[:port]] [-d addr[:port][,addr[:port], ...]] [-g # groupmode] [-l level[:logfile]] [-m mailfrom] [-n nodename] [-o operationmode] # [-s size] [-t name=sec[,name=sec[,...]] [-v] newsgroup [newsgroup ...] d107 1 a107 1 RC=`cat ${STDERR} | egrep -- '-C.*-D.*-K.*-P.*-V.*-a.*-b.*-d.*-g.*-l.*-m.*-n.*-o.*-s.*-t.*-v.*newsgroup' | wc -l` @ 1.4 log @post-bugfixes to reflect recent changes @ text @d19 1 a19 1 by gateway.example.com (8.9.2/8.9.2/$Revision: 1.3 $) with SMTP id NAA08840 d22 1 a22 1 by cw.example.com (8.11.0/8.11.0/$Revision: 1.3 $) with ESMTP id f32BKPb12235 d95 1 a95 1 RC=`cat ${STDOUT} | egrep 'lmtp2nntp[ ]+[0-9]+\.[0-9]+\.[0-9]+[ ]+\([0-9]+-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-[0-9]+\)' | wc -l` d111 1 a111 1 RC=`cat ${STDERR} | egrep -- '-D.*-K.*-P.*-a.*-b.*-d.*-g.*-l.*-m.*-n.*-o.*-s.*-t.*-v.*newsgroup' | wc -l` @ 1.3 log @defeated zombies @ text @d19 1 a19 1 by gateway.example.com (8.9.2/8.9.2/$Revision: 1.2 $) with SMTP id NAA08840 d22 1 a22 1 by cw.example.com (8.11.0/8.11.0/$Revision: 1.2 $) with ESMTP id f32BKPb12235 d104 4 a107 3 # lmtp2nntp [-b bindaddr[:port]] [-d deliverymode] [-g groupmode] [-h # host[:port][,host[:port], ...]] [-m mailfrom] [-n nodename] [-s size] [-l # level[:logfile]] [-v] [-w waittime] newsgroup [newsgroup ...] d111 1 a111 1 RC=`cat ${STDERR} | egrep -- '-a.*-b.*-d.*-g.*-h.*-l.*-m.*-n.*-s.*-v.*-w.*newsgroup' | wc -l` d121 1 a121 1 ./lmtp2nntp <${STDIN} -b ${LOCAL} -d 250/2.0.0 -g arg -h ${HOST} -l ${LOG}:${FILE} -m "${MFILT}" -n ${NODE} -s 1000 -w 1 ${GROUP} >${STDOUT} 2>${STDERR} ; RC=$ d139 1 a139 1 ( MFILT=".*@@is.invalid" ; ./lmtp2nntp <${STDIN} -b ${LOCAL} -d 250/2.0.0 -g arg -h ${HOST} -l ${LOG}:${FILE} -m "${MFILT}" -n ${NODE} -s 1000 -w 1 ${GROUP} >${STDOUT} 2>${STDERR} ) ; RC=$? d157 1 a157 1 ./lmtp2nntp <${STDIN} -b ${LOCAL} -d 250/2.0.0 -g arg -h ${HOST} -l ${LOG}:${FILE} -m "${MFILT}" -n ${NODE} -s 100 -w 1 ${GROUP} >${STDOUT} 2>${STDERR} ; RC=$? d172 1 a172 1 echon "checking whether -b option fails on invalid local host address ... " d175 1 a175 1 ( LOCAL="10.255.255.255" ; ./lmtp2nntp <${STDIN} -b ${LOCAL} -d 250/2.0.0 -g arg -h ${HOST} -l ${LOG}:${FILE} -m "${MFILT}" -n ${NODE} -s 1000 -w 1 ${GROUP} >${STDOUT} 2>${STDERR} ) ; RC=$? d188 1 a188 1 ( GROUP="foo.*" ; ./lmtp2nntp <${STDIN} -b ${LOCAL} -d 250/2.0.0 -g envelope -h ${HOST} -l ${LOG}:${FILE} -m "${MFILT}" -n ${NODE} -s 1000 -w 1 ${GROUP} >${STDOUT} 2>${STDERR} ) ; RC=$? d204 1 a204 1 echon "checking whether -h option times out for invalid host ... " d207 1 a207 1 ( HOST="10.255.255.255" ; ./lmtp2nntp <${STDIN} -b ${LOCAL} -d 250/2.0.0 -g arg -h ${HOST} -l ${LOG}:${FILE} -m "${MFILT}" -n ${NODE} -s 1000 -w 1 ${GROUP} >${STDOUT} 2>${STDERR} ) ; RC=$? @ 1.2 log @use a more unusual address @ text @d19 1 a19 1 by gateway.example.com (8.9.2/8.9.2/$Revision: 1.1 $) with SMTP id NAA08840 d22 1 a22 1 by cw.example.com (8.11.0/8.11.0/$Revision: 1.1 $) with ESMTP id f32BKPb12235 d110 1 a110 1 RC=`cat ${STDERR} | egrep -- '-b.*-d.*-g.*-h.*-m.*-n.*-s.*-l.*-v.*-w.*newsgroup' | wc -l` @ 1.1 log @revamped test/run.sh into test.sh @ text @d19 1 a19 1 by gateway.example.com (8.9.2/8.9.2/$Revision: 1.7 $) with SMTP id NAA08840 d22 1 a22 1 by cw.example.com (8.11.0/8.11.0/$Revision: 1.7 $) with ESMTP id f32BKPb12235 d76 1 a76 1 LOG="notice" d174 1 a174 1 ( LOCAL="127.0.0.255" ; ./lmtp2nntp <${STDIN} -b ${LOCAL} -d 250/2.0.0 -g arg -h ${HOST} -l ${LOG}:${FILE} -m "${MFILT}" -n ${NODE} -s 1000 -w 1 ${GROUP} >${STDOUT} 2>${STDERR} ) ; RC=$? d206 1 a206 1 ( HOST="127.0.0.255" ; ./lmtp2nntp <${STDIN} -b ${LOCAL} -d 250/2.0.0 -g arg -h ${HOST} -l ${LOG}:${FILE} -m "${MFILT}" -n ${NODE} -s 1000 -w 1 ${GROUP} >${STDOUT} 2>${STDERR} ) ; RC=$? @