News protocol (RFC 977) implementation problem

  • Thread starter Thread starter ProJee
  • Start date Start date
P

ProJee

Hi,

I've got the following problems while trying to finish my NewsReader class:

#1
There's a NEWNEWS command in the RFC specs, which should retrieve the
list of articles posted after the specified date.

this command doesn't work with msnews.microsoft.com:119 :(
(Returns "Access denied")
Is it really so dangerous:) that it has to be disabled for normal users?!


#2
Each news message stored on the News server has an ID number.

because of #1, I will have to store IDs of all those I already
downloaded (or maybe the last one only). During each synchronization I
will download messages having the ID higher than the stored one.

my "problem" is.. can it happen that the news server administrator
resets the numbering starting from zero again.. If positive, how
will I know about this...

Please help if you have any experience with it.

thanks for your time.

ProJee
 
Hi,

I've got the following problems while trying to finish my NewsReader class:

#1
There's a NEWNEWS command in the RFC specs, which should retrieve the
list of articles posted after the specified date.

this command doesn't work with msnews.microsoft.com:119 :(
(Returns "Access denied")
Is it really so dangerous:) that it has to be disabled for normal users?!

Send a "help" command to the server: it will usually respond with a
list of the commands it does support.

I don't think NEWNEWS is still much in use nowadays, most NNTP clients
use XOVER instead (RFC2980). NEWNEWS is time/date-based, which could
easily lead to missed messages (your clock only needs to be 1 second
off).


You probably keep a record of the message numbers you already have:
instead of using NEWNEWS, compare your own last number to the value
returned by a GROUP command.

| group microsoft.public.dotnet.languages.vb
| 211 21020 1 204930 microsoft.public.dotnet.languages.vb

The server says here that it has a total of 20120 messages between #1
and #204930. The 1 looks suspicious, but all you need is the highest
number.


Then ask for the new headers with an XOVER.

I suppose you can even ignore the numbers the server reports, and just
ask for an XOVER starting with the first message you haven't had yet
(if you have 11224 as last message, send "XOVER 11225-": if there are
any new messages it will send the overview; otherwise it will just
send a period.)

If you're not familiar with XOVER, this is the list of fields you get
(one line per message, tab-delimited) and the command to get that
list:

| list overview.fmt
| 215 Order of fields in overview database.
| Subject:
| From:
| Date:
| Message-ID:
| References:
| Bytes:
| Lines:
| Xref:full
| .


#2
Each news message stored on the News server has an ID number.

because of #1, I will have to store IDs of all those I already
downloaded (or maybe the last one only). During each synchronization I
will download messages having the ID higher than the stored one.

my "problem" is.. can it happen that the news server administrator
resets the numbering starting from zero again..

Assume that it will happen.

My home ISP is notorious for it, I wonder if it's related to the
rather high frequency of crashes of their newsserver.

I've seen the numbers jump at msnews once or twice too.

As for keeping all numbers, Forte Agent contains this text in its
online help:

| Server Creates messages out of order
|
| When this box is checked, Agent always records any gaps in the list
| of messages that it has retrieved, so that it can check for new
| messages in the gaps the next time it retrieves new headers.
| When this box is unchecked, Agent records the range of retrieved
| messages from the lowest message retrieved, through the highest,
| ignoring gaps. Since most news servers don't add messages out of
| order (with the exception of Demon's), you can probably leave this
| unchecked.


If positive, how
will I know about this...

If (Server Message Numbers) < (My Message Numbers) Then
(get all headers)
Else
(get new headers)
End If

If that misses it, the user will have to click "get all headers" by
himself.
 
Back
Top