On Mon, 4 Nov 1996, Paul Haggart wrote:

>   Argh, this has caused me problems to no end!  Can someone please send me a
> working configuration for suck and inn?  
> 
>   I can get suck to gather news and send it locally, but I can't figure out
> how to get locally written messages sent to my ISP's news server.  I don't
> want to use nntp-style reading, because I don't have a 24/7 connection.
> 
>   Thanks in advance.

I use suck with CNews locally and INN on the remote system which feeds me.
CNews creates a /var/spool/news/out.going/sentex/togo file which contains
references to the articles that are to be sent out to my ISP (sentex).
If you use INN locally, I think that things should work similarly as far
as getting locally posted messages to your ISP's news server. (At least
the relevant portions of the get-news.cnews and get-news.inn looked
very similar).

(I used dpkg -i suck_2.6.3-1.deb)

Here's the files I've had to configure:

1)  I set up a /etc/suck/get-news.conf file with the following entries:

server: xwing.xwing.org
remoteserver: news.sentex.net
outgoingfile: sentex

2)  I set up the required /etc/suck/sucknewsrc file.  Here's its
    (partial) contents:

alt.comp.hardware 2096
alt.comp.hardware.homebuilt 24343
alt.comp.hardware.homedesigned 702
alt.comp.hardware.pc-homebuilt 8334
alt.fishing 40064
alt.folklore.computers 156001

3)  I had to customize some paths in the /usr/sbin/get-news.cnews
    file.  Note that I've added a number of echo statements in order
    to verify that all the paths that get-news needed were correct.
    They weren't on first try.  Here's the contents of this file:

#!/bin/sh
# NOTE: this script probably needs to be run by root.
# Most systems will not let a normal user run rnews

LOCAL_HOST=`cat /etc/suck/get-news.conf | grep "^server:" \
        | awk '{gsub(" ","");print}' | cut -c8-`
REMOTE_HOST=`cat /etc/suck/get-news.conf | grep "^remoteserver:" \
        | awk '{gsub(" ","");print}' | cut -c14-`
SITE=`cat /etc/suck/get-news.conf | grep "^outgoingfile:" \
        | awk '{gsub(" ","");print}' | cut -c14-`

echo "LOCAL_HOST is ${LOCAL_HOST}"
echo "REMOTE_HOST is ${REMOTE_HOST}"
echo "SITE is ${SITE}"

SPOOLDIR=/var/spool/news                # base directory for articles to be 
rposted
NEWSDIR=/usr/lib/news                   # base directory for news binaries 
BINDIR=/usr/bin                         # base directory for suck rpost and 
scripts
SBINDIR=/usr/sbin                       # base directory for scripts (Added 
this Nov. 3/96)

TMPDIR=/tmp                             # location for suck.* files
DATADIR=/etc/suck                       # location of sucknewsrc and killfile
MSGDIR=/var/lib/suck                    # where to put MultiFile articles when 
getting them

BATCHFILE=${TMPDIR}/batch.$$            # Name of batchfile to build for rnews 
or innxmit
OUTGOING=${SPOOLDIR}/out.going/${SITE}/togo     # location of the list of 
articles to upload

echo "OUTGOING is ${OUTGOING}"
echo "SPOOLDIR is ${SPOOLDIR}"

SCRIPT=${SBINDIR}/put-news              # my filter for rpost
OUTFILE=${TMPDIR}/suck-tmp.$$           # used by rpost as article after it is 
filtered

echo "OUTFILE is ${OUTFILE}"
echo "SCRIPT is ${SCRIPT}, used as filter for rpost"
echo "filter output file is \$\$o=${OUTFILE}"

RPOST=${BINDIR}/rpost                   # my rpost
SUCK=${BINDIR}/suck                     # my suck
TESTHOST=${BINDIR}/testhost             # my testhost

RNEWS=/usr/lib/news/input/rnews         # location of rnews

# is the local host up and running so we can post articles we download?
${TESTHOST} ${LOCAL_HOST} > /dev/null 2>&1
LOCAL_RESULT=$?

# is the remote host up and running so we can download articles?
${TESTHOST} ${REMOTE_HOST} > /dev/null 2>&1
REMOTE_RESULT=$?

if [ ${REMOTE_RESULT} -eq 0 -a ${LOCAL_RESULT} -eq 0 ]; then

        # download articles
        #if using rnews change the -bi to -br
        ${SUCK} ${REMOTE_HOST} -br ${BATCHFILE} -dt ${TMPDIR} -dm ${MSGDIR} -dd 
${DATADIR}
        SUCK_STATUS=$?

        if [ ${SUCK_STATUS} -eq 0 ]; then
                echo "Downloaded Articles"
                mv ${DATADIR}/sucknewsrc ${DATADIR}/old.newsrc
                mv ${TMPDIR}/suck.newrc ${DATADIR}/sucknewsrc
                rm ${TMPDIR}/suck.*
                if [ -f ${DATADIR}/suckothermsgs ]; then
                        rm ${DATADIR}/suckothermsgs
                fi
        fi

        # now upload articles
        if [ -s ${OUTGOING} ]; then
                # outgoing articles to post
                ${RPOST} ${REMOTE_HOST} -b ${OUTGOING} -p ${SPOOLDIR} -f 
\$\$o=${OUTFILE} ${SCRIPT} \$\$i ${OUTFILE}

                if [ $? -ne 0 ]; then
                        echo "Error remote posting"
                        exit -1;
                else
                        echo "Remotely posted articles"
                        rm ${OUTFILE} ${OUTGOING}
                fi
        fi      
        
        echo "You can hang up the modem now"

        if [ ${SUCK_STATUS} -eq 0 ]; then       
                # locally post articles
                ${RNEWS} ${LOCAL_HOST} < ${BATCHFILE}
                
                if [ $? -eq 0 ]; then
                        echo "Posted Articles Locally"
                        rm -rf ${MSGDIR}
                        rm ${BATCHFILE}
                fi      
        fi      
fi


4)   I also had to change the filter program /usr/sbin/put-news to filter
     out the Xref header line instead of the NNTP-Posting-Host line
     because the remote INN program complained about not being able to
     set the Xref header.

     Here' the contents of it:

#!/bin/sh
# this is just a simple script to run the one line sed
# command to strip off the NNTP Posting Header that
# my ISP's newsfeed doesn't like.
# this could be written as a one liner
# sed -e CMD $1 > $2

#set -x

if [ $# -ne 2 ]; then
        echo
        echo "Usage `basename $0` infile outfile <RETURN>"
        echo
        exit -1
fi

#SEDCMD="/^NNTP-Posting-Host/d"
SEDCMD="/^Xref/d"
OUTFILE=$2
INFILE=$1

if [ -f ${INFILE} ]; then

        sed -e ${SEDCMD} ${INFILE} > ${OUTFILE}
                
        if [ $? -ne 0 ]; then
                echo "Error"
                exit -1
        fi

else
        echo "$1 does not exist"
        exit -1
fi
        
Well, that's about it.  Your situation may be different, but if you
instrument your get-news script as I did and pay careful attention to any
error messages, you should be able to get things working. 

Hope this helps a bit.

Best regards,

                               Nick

--------------------------------------------------------------------------
Nick Busigin                                                [EMAIL PROTECTED]

To obtain my pgp public key, email me with the subject: "get pgp-key"
--------------------------------------------------------------------------

--
TO UNSUBSCRIBE FROM THIS MAILING LIST: e-mail the word "unsubscribe" to
[EMAIL PROTECTED] . Trouble? e-mail to [EMAIL PROTECTED]

Reply via email to