history - Record of current and recently expired Usenet articles
The file
pathdb/history keeps a record of all articles currently stored
in the news system, as well as those that have been received but since
expired. In a typical production environment, this file will be many
megabytes.
The file consists of text lines. Each line corresponds to one article. The file
is normally kept sorted in the order in which articles are received, although
this is not a requirement.
innd appends a new line each time it files
an article, and
expire builds a new version of the file by removing old
articles and purging old entries.
Each line consists of two or three fields separated by a tab, shown below as
" \t ":
[hash] \t date
[hash] \t date \t @token@
The
hash field is the ASCII representation of the hash of the Message-ID.
This is directly used for the key of the
dbz.
The
date field consists of three sub-fields separated by a tilde. All
sub-fields are the text representation of the number of seconds since the
epoch, that is to say a
time_t like in
gettimeofday(2). The first
sub-field is the article's arrival date. If copies of the article are still
present, then the second sub-field is either the value of the article's
Expires header field, or a hyphen if no expiration date was specified. If an
article has been expired, then the second sub-field will be a hyphen. The
third sub-field is the value of the article's Date header field, recording
when the article was posted.
The
token field is a token of the article. This field is empty if the
article has been expired.
For example, an article whose Message-ID was
<7q2saq$sal$
[email protected]>, posted on 26 Aug 1999 08:02:34 GMT and
received at 26 Aug 1999 08:06:54 GMT, could have a history line (broken into
three lines for display) like the following:
[E6184A5BC2898A35A3140B149DE91D5C] \t
935678987~-~935678821 \t
@030154574F00000000000007CE3B000004BA@
In addition to the text file, there is a
dbz database associated with the
file that uses the Message-ID field as a key to determine the offset in the
text file where the associated line begins. For historical reasons, the key
includes the trailing "\0" byte (which is not stored in the text
file).
Written by Rich $alz <
[email protected]> for InterNetNews. Rewritten into
POD by Julien Elie.
expire(8),
inn.conf(5),
innd(8),
libinn_dbz(3),
makehistory(8).