[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [leafnode-list] Problem with texpire



Matthias Andree <ma@xxxxxxxxxxxxxxxxxxxxxxxxxxxx> writes:

> Stefan Wiens <s.wi@xxxxxxx> writes:
>
>>   All subdirectories under /var/spool/news whose name is a valid
>>   newsgroup name are considered for expiry. The only character that
>>   will never show up in a group name is ".". (lost+found is also
>>   excluded.)
>> 
>>   All files whose name is all-digits or ".overview" and which can be
>>   accessed via directories whose names could form valid newsgroup
>>   names may be affected by expiry.
>> 
>>   If you have to put something under /var/spool/news that leafnode
>>   doesn't know about, give it a name containing ".".
>
> No. /var/spool/news belongs to leafnode and nobody else. Don't store
> your data in a directory that does not belong to you.

IMHO my proposal is the least intrusive way to solve the problem.
Why should we perform a destructive operation on data we don't know
about if it isn't absolutely necessary?

> Yup. That's what my new nntpd draft does as well. It also logs files
> that don't belong into groups (core dumps e. g.), they should just be
> killed instead).

Logging may be acceptable. Be careful when removing unknown files.

> Whatever. At the moment, I'd rather think of optimizing the reads from
> the spool, thus, I'd force incoming articles to use CRLF line ends and
> have dots escaped, so that nntpd can just feed the entire article out
> with a simple file copy (read/write on a fixed block size), without
> looking for line endings, escaping dots and so on.

That's indeed worth thinking about.

Besides performance issues, Leafnode could then get rid of arbitrary
line length restrictions. E.g. nntpd.c:doarticle() may chop legal
article lines because it uses a ridiculously small fixed-size buffer.
And it could deal with '\n' characters not preceded by '\r'. >:-)

Searching for "\r\n\r\n" (across block boundaries) would still be
necessary as long as HEAD and BODY are stored in a single file.

Storing HEAD and BODY in distinct files could make many things easier.

Stefan


-- 
leafnode-list@xxxxxxxxxxxxxxxxxxxxxxxxxxxx -- mailing list for leafnode
To unsubscribe, send mail with "unsubscribe" in the subject to the list