usefor-usepro-01 September 2004
[< Prev]
[TOC] [ Next >]
7.4. Duties of a Serving Agent
A Serving Agent takes an article from a relaying or injecting agent
and files it in a "news database". It also provides an interface for
reading agents to access the news database. This database is normally
indexed by newsgroup with articles in each newsgroup identified by an
article-locator (usually in the form of a decimal number - see a-
6.16).
A serving agent MUST maintain a list of the newsgroups it stores in
its news database showing the moderation status of each one (see
6.2.1), and SHOULD include in that list all groups likely to be
crossposted to from those groups (e.g. all other groups in the same
hierarchy(ies)).
NOTE: Since control messages are often of interest, but should
not be displayed as normal articles in regular newsgroups, it is
common for serving agents to make them available in a pseudo-
newsgroup named "control" or in a pseudo-newsgroup in a sub-
hierarchy under "control." (e.g. "control.cancel").
A serving agent MAY decline to accept an article if its own path-
identity is already present in the Path-content or if the Path-
content contains some path-identity whose articles the serving agent
does not want, as a matter of local policy.
[That has been changed from a-5.6.1 in previous drafts, where it said "A
relaying agent MAY decline...". That seemed plain wrong to me. It is
fine for a relaying agent to ignore articles which have apparently
already passed through it (and I still say that), but surely it is for
serving agents to "reject" for policy reasons, and to which the NOTE
below would apply. Comments?]
NOTE: This last facility is sometimes used to detect and decline
control messages (notably cancel messages) which have been
deliberately seeded with a path-identity to be "aliased out" by
sites not wishing to act upon them.
[Again, is this "aliasing out" usually detected by the serving agent, or
does it more usually work because the previous relaying agent will never
have sent it in the first place?]
A serving agent processes articles as follows:
1. It MUST establish the trusted identity of the source of the
article and modify the Path-header as for a relaying agent (7.3).
2. It MUST examine the Injection-Date-header (or, if that is absent,
the Date-header) and reject the article as stale (a-5.7) if that
predates the earliest articles of which it normally keeps record,
or if it is more than 24 hours into the future (the margin MAY be
less than that 24 hours).
3. It MUST reject any article that does not have the correct
mandatory headers (section a-5) present, or which contains any
header that does not have legal contents.
4. It SHOULD reject any article that has already been sent to it (a
database of message identifiers of recent articles is usually kept
and matched against).
5. It SHOULD reject any article that matches an already received
cancel message (or an equivalent Supersedes-header) issued by its
poster or by some other trusted entity.
6. It MUST reject any article without an Approved-header posted to
any newsgroup listed as moderated.
7. It MUST remove any Xref-header (a-6.16) from each article. It
then MAY (and usually will) generate a fresh Xref-header.
8. Finally, it stores the article in its news database.
Serving agents MUST NOT create new newsgroups simply because an
unrecognized newsgroup-name occurs in a Newsgroups-header (see a-
7.2.1 for the correct method of newsgroup creation).
Serving agents MUST NOT alter, delete or rearrange any part of an
article in any other way. The list of particular cases given for
relaying agents (7.3) applies here also.
[< Prev]
[TOC] [ Next >]
#Diff to first older
--- ../usefor-usepro-00/Duties_of_a_Serving_Agent.out August 2004
+++ ../usefor-usepro-01/Duties_of_a_Serving_Agent.out September 2004
@@ -1,4 +1,4 @@
-7.5. Duties of a Serving Agent
+7.4. Duties of a Serving Agent
A Serving Agent takes an article from a relaying or injecting agent
and files it in a "news database". It also provides an interface for
@@ -7,10 +7,11 @@
article-locator (usually in the form of a decimal number - see a-
6.16).
- A serving agent MUST maintain a list showing the moderation status
- (see 6.2.1) of the newsgroups it stores in the news database, and
- SHOULD include in that list all groups likely to be crossposted to
- from those groups (e.g. all other groups in the same hierarchy(ies)).
+ A serving agent MUST maintain a list of the newsgroups it stores in
+ its news database showing the moderation status of each one (see
+ 6.2.1), and SHOULD include in that list all groups likely to be
+ crossposted to from those groups (e.g. all other groups in the same
+ hierarchy(ies)).
NOTE: Since control messages are often of interest, but should
not be displayed as normal articles in regular newsgroups, it is
@@ -18,6 +19,25 @@
newsgroup named "control" or in a pseudo-newsgroup in a sub-
hierarchy under "control." (e.g. "control.cancel").
+ A serving agent MAY decline to accept an article if its own path-
+ identity is already present in the Path-content or if the Path-
+ content contains some path-identity whose articles the serving agent
+ does not want, as a matter of local policy.
+[That has been changed from a-5.6.1 in previous drafts, where it said "A
+relaying agent MAY decline...". That seemed plain wrong to me. It is
+fine for a relaying agent to ignore articles which have apparently
+already passed through it (and I still say that), but surely it is for
+serving agents to "reject" for policy reasons, and to which the NOTE
+below would apply. Comments?]
+
+ NOTE: This last facility is sometimes used to detect and decline
+ control messages (notably cancel messages) which have been
+ deliberately seeded with a path-identity to be "aliased out" by
+ sites not wishing to act upon them.
+[Again, is this "aliasing out" usually detected by the serving agent, or
+does it more usually work because the previous relaying agent will never
+have sent it in the first place?]
+
A serving agent processes articles as follows:
1. It MUST establish the trusted identity of the source of the
@@ -34,7 +54,7 @@
header that does not have legal contents.
4. It SHOULD reject any article that has already been sent to it (a
- database of message identifiers of recent messages is usually kept
+ database of message identifiers of recent articles is usually kept
and matched against).
5. It SHOULD reject any article that matches an already received
@@ -48,4 +68,12 @@
then MAY (and usually will) generate a fresh Xref-header.
8. Finally, it stores the article in its news database.
+
+ Serving agents MUST NOT create new newsgroups simply because an
+ unrecognized newsgroup-name occurs in a Newsgroups-header (see a-
+ 7.2.1 for the correct method of newsgroup creation).
+
+ Serving agents MUST NOT alter, delete or rearrange any part of an
+ article in any other way. The list of particular cases given for
+ relaying agents (7.3) applies here also.