history - record of current and recently expired Usenet articles
The file <pathdb in inn.conf>/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 nor-
mally kept sorted in the order in which articles are received, although this is not a
requirement. Innd(8) appends a new line each time it files an article, and expire(8)
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 header. This is
directly used for the key of the dbz(3).
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 -- i.e., a time_t; see get-
timeofday(2). The first sub-field is the article's arrival date. If copies of the arti-
cle are still present then the second sub-field is either the value of the article's
Expires header, 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, recording when the article was posted.
The token field is a token of the article. This field is empty if the article has been
For example, an article whose Message-ID was <email@example.com>, posted on 26
Aug 1999 08:02:34 GMT and recieved at 26 Aug 1999 08:06:54 GMT, could have a history line
(broken into three lines for display) like the following:
In addition to the text file, there is a dbz(3) 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 <firstname.lastname@example.org> for InterNetNews. This is revision 18.104.22.168,
dbz(3), expire(8), inn.conf(5), innd(8), makehistory(8).