home *** CD-ROM | disk | FTP | other *** search
- Short: update to NNTP client for AS225
- Author: Michael van Elst (mlelstv@serpens.rhein.de)
-
- nntpget is a NNTP (Net News Transfer Protocol) client that gathers news
- articles from a remote NNTP server. It was written for AS225R2 but seems
- to work fine with AmiTCP and the faked socket.library done by Henning
- Schmiedehausen (also on Aminet).
-
- What would you do when you do not have a working NNTP daemon or do not
- want to run (and let it write to disk) all the time ?
-
- My solution is nntpget, a program that talks with a remote NNTP server
- using the 'newnews' and 'article' commands to query for new articles
- since a specific date and then to retrieve these articles. nntpget
- generates a valid batchfile suitable for 'rnews' or the like (i.e.
- including the #! rnews xxxx headers).
-
- Usage:
-
- > nntpget ?
- FROM/M,SUBSCRIPTIONS/K,ARTICLES/K,SINCE/K,DATESTAMP/K,TO/A/K,APPEND/S,NNTPSERVER/K/A,CPS/K/N,NBUFS/K,HISTORY/K:
-
- FROM multiple strings denoting newsgroups or complete hierarchies
- like: FROM de.test alt.* news.announce
-
- SUBSCRIPTIONS file with list of newsgroups or hierarchies, one per line
- Characters after the first white space are ignored, so
- that you can use your active file.
-
- ARTICLES file with list of MsgIDs, one per line
-
- you can use all 3 sources at the same time. nntpget will first work on FROM,
- then on SUBSCRIPTIONS then on ARTICLES.
-
- SINCE date fetch only articles since given date in AmigaDOS format
- substitutes like 'monday' or 'yesterday' are valid meaning
- the last such weekday (at current time). So yesterday says
- to retrieve news from the last 24 hours.
- If you tell it the current day or 'today' this says to fetch
- all articles since this day at midnight.
- You can also specify a time meaning since today (or yesterday
- if the time would be in the future) at that time.
-
- DATESTAMP file fetch only articles newer than that file. When all
- goes well then the modification time of that file
- is updated to the _starting time_ of nntpget. This
- ensures that subsequent runs will not lose articles.
-
- The filesystem where the datestamp file is located
- must support the SetFileDate function (which is
- true for the standard ROM filesystem).
-
- If you do not use either the SINCE or the DATESTAMP
- parameter the newserver is told to retrieve articles
- since 1.1.1900 (i.e. since ever).
- Some servers may interpret this as 1.1.2000 instead and
- won't send anything for a while.
-
- Articles requested by the ARTICLES file are not filtered
- out. You will get all articles independent of age !
-
- TO file generated batch file
-
- APPEND append to batch file
-
- NNTPSERVER the name or IP number of your NNTP server machine
-
- CPS num bandwidth limitation. nntpget tries to keep traffic below
- the given characters per second. This can only be an average
- since there are bursts of at least one TCP segment which
- are under control of the TCP protocol stack.
- The bandwidth is just limited for article transfers and not
- for the initial transfer of article MsgIDs but which is
- short.
-
- NBUFS num n-buffer NNTP protocol while fetching articles. nntpget
- will request up to num articles in advance. This should
- improve throughput if you receive lots of small articles.
- A good value for num is 5. A value of 1 means to fetch
- articles in lock-step with the server's answers (which
- is the default).
-
- There have been reports about problems with n-buffering
- and the INN (InterNetNews) daemon. Reason is that n-
- buffering can produce bulks of output. If the network
- is slow then INN erroneously assumes that the connection
- has been lost and terminates the session.
-
- HISTORY base If you want to update your news database from several
- servers or don't know what articles need to be fetched
- you can use this option to tell nntpget the basename
- of a dbz(1) compatible history database (i.e. without
- the .pag or .dir suffixes). nntpget will then match
- msgids against the history and just transfer articles
- that are not in your database.
-
- nntpget uses 2 temporary files in T:. One to gather all MsgIDs, one for the
- current article (it cannot write directly to the batchfile since it doesn't know
- the size at that time which has to go to the #! rnews header). So please have
- enough space on that filesystem (usually T: is on RAM:).
-
- While running nntpget will show you (part of) the NNTP traffic on stdout as well
- as the average transfer rate.
-
- >> NEWS (0.95) <<
- This version fixes some problems of the first version.
-
- When you used the CPS option and something modifies the clock (say when
- adjusting for DST) then nntpget measures a negative speed and would wait
- a very long time.
-
- Again with the CPS option it was impossible to stop nntpget while it
- was throttling the transfer making the previous problem even more
- nasty.
-
- When you abort nntpget it removes the temporary files including the
- article list but while it is running it did maintain an exclusive lock
- on the list file. Now it closes and reopens the list file so that you
- can examine (or copy) the list while the transfer is in progress. This
- helps when you want to abort and resume a transfer.
- Caveat: if you keep the list file open from a second process then nntpget
- cannot delete it.
-
- >> NEWS (0.101) <<
-
- Some minor corrections to follow closer the NNTP specification.
-
- >> NEWS (0.115) <<
-
- Added DATESTAMP, NBUFS and HISTORY options. Fixed two cases where a
- parameter was missing from an error message.
-
- The CPS and NBUFS options aren't that useful together. NBUFS is used
- to improve transfer rates which would be reduced again by CPS. You
- may still want it for maintaining a low average bandwidth usage
- together with a high peak bandwidth usage after a temporary network
- failure.
-
- Michael van Elst
-