History of updates
Major improvements are in bold.
Version 4.4 (20 November 2005)
In NpPlay
- Added a -N option (randomize), which changes
the random sequence every time
NpPlay is run.
In NpSync
- In synchronize mode (-S) we no more compare
files in the reverse scan, which was pointless: unique files
are deleted, the other ones are not considered.
- The -C option now makes NpSync skip files
whose names contain characters invalid on Windows.
This option can be helpful when syncing with a Unix
filesystem mounted by NFS.
In NpTunnel
- Introduced 3 new settings:
- reallyConnect= setting, if set to 0,
makes NpTunnel not connect to the destination and just
observe what the client requests or sends.
- forwardLocalData= setting, if set to 0,
makes NpTunnel not forward local client's data to the
remote server. It will still log them, if requested.
- returnRemoteData= setting, if set to 0,
makes NpTunnel not return the data from the remote
server back to local client. It will still log them,
if requested.
In NewsPlex
- Introduced the access.maxNntp= setting and the access.maxWeb= setting
which allow to define how many incoming client connections of each
type are allowed.
- Introduced the access.nntpQueueRequests= setting and the
access.webQueueRequests= setting which allow to define
whether NewsPlex should wait till a "connection slot"
becomes free in overload conditions or reject an incoming
connection immediately.
By default there is no waiting; this is a change
from previous versions. Note that NewsPlex
does not do a very good job of queuing. It will
reject connections very soon. This setting is mostly
there to allow reverting to the traditional behavior rather
than to introduce a specific feature.
- Introduced the clients.logPostedBodies= setting, which allows
to decide whether bodies of posted articles should be logged.
- A error in the etc\servers.ini file, for example a duplicated
id= setting, would crash NewsPlex rather than just terminating
with an error code. This problem appeared in the previous
version.
- NewsPlex could crash if server-available asynchronous article retrievals were used together with the
general.verbose= setting.
- NewsPlex would often improperly display the status of connections
which were kept-alive as just idle.
- The connect.maxConnectTasks= setting is really named
connect.maxTasks=
- Introduced the access.allowedIP= setting, the
access.allowedHostName= setting and the
access.hostNameRequired= setting which allow to better control
who is allowed to connect to NewsPlex. The two first settings
can be repeated, can contain wildcards and can also specify a
rejection if the ! character is used at the beginning
of the pattern.
- Changed the Too many EOFs in XOVER message in
the logs into more accurate Too many EOFs in XOVER,
XHDR or XPAT.
- Too old or filtered out articles are now indicated
with a simple - in the logs rather than
will a full article description dump, to save on file size.
- During the exploration of a news-group, in the
Message-ID matching phase, NewsPlex would retry
the same interval after an error. This
was not suitable for the initial exploration
of very large groups, which could never
succeed in one go.
- When applying the etc\retrievd or etc\hidden
files to news-groups, the timestamp was improperly displayed
in the logs, between the news-group names and
the application statuses.
- When exploring a yet unknown news-group on a news-server, NewsPlex
will no more ask for article numbers before asking
for number-to-Message-ID mappings. This served no useful
purpose, yet slowed down the first exploration of
a news-server.
- NewsPlex will now save the full active news-group list to the newsrc2
file (with 0 as last exploration timestamps) immediately after
getting it from the news-server and before actually exploring the
news-groups. Previously, the newsrc2 file was only updated
as each news-group was explored and if the explore failed for some
reason or was interrupted, the next time NewsPlex would
only look at the news-groups previously explored. This would
persist until the time to reget a full news-group list came.
- Fixed a problem where index or dataset2 could get
corrupted with apparently correctly constructed
but misnumbered lines. This resulted in Number
not greater than previous error messages when
the corresponding news-group was accessed.
The problem only occurred on Windows and was due to
the system ignoring and implicitly stripping trailing
dots in filenames (Windows considers e.g. filename...
and filename as the same file and if filename...
is referenced, filename will be accessed implicitly).
So if a news-group's name ended with one or more dots, then
NewsPlex
would actually access the files for the news-group without the
trailing dots, and such parallel access would corrupt them
on update. Now such news-group names are rejected as invalid.
- Introduced the groups.noByPattern= setting, which allows to
exclude broad categories of news-groups by name patterns. The older
groups.no= setting has been renamed to groups.noByName=.
- NewsPlex can now be installed as a Windows service (on
Windows NT/2000/XP/2003), using
the new -si command-line option. The newsplex.exe executable can also be used
to start (-sa), stop (-so), pause (-sp),
continue (-sc) and uninstall (-su) this
service. The -sl pattern command-line option can be used
to list Windows services whose names match the pattern.
- Added two new per-news-server settings allowing to properly explore
some broken-by-design news-servers.
The server.xhdrMessageIdAllowNumberNotGreater= setting makes
NewsPlex stop requiring that the list of article number-Message-ID
mappings returned by XHDR MESSAGE-ID has strictly
progressing article numbers,
while the server.xoverAllowNumberNotGreater= setting
does the same for the list returned by XOVER.
- Introduced a clients.addPostedHeaderLeading= setting,
a clients.addPostedHeaderTrailing= setting,
a clients.addPostedBodyLeading= setting and
a clients.addPostedBodyTrailing= setting,
which allow to insert either header or body lines into posted
articles, at either the first/leading or the last/trailing
position, for example in order to identify postings.
- Fixed a problem with asynchronous article retrievals getting delayed without apparent
reason in version 4.3, unless server-available asynchronous article retrievals (asyncav tasks)
were disabled on news-servers where exploration was turned off.
The problem was actually old, but remained latent
as NewsPlex was not managing idle connections well enough.
The server-available asynchronous article retrieval code tries to download an article
if it is explicitly present on the news-server to which a connection has
just become free. But this code was disturbing the normal
direct asynchronous article retrieval, by pushing it one minute into the future if
the news-server was not listed as having the article in the database.
Previously server-available asynchronous article retrievals
were only done after finishing exploring a news-server, after finishing
downloading an article by number and after posting
an article to the news-server. The news-server was necessarily explored in the
first two cases, so the server-available asynchronous article retrievals had a good chance to find
the article as "present on the server" in the database and to
proceeed with the download. In 4.3, thanks to the introduction
of "server waiting", NewsPlex could better decide when a connection
was no more needed, so server-available asynchronous article retrievals were attempted in other
circumstances as well. Most of the time server-available asynchronous article retrievals silently failed,
pushing away direct asynchronous article retrievals in time.
Now, we reschedule the direct asynchronous article retrievals at the originally scheduled
time if a server-available asynchronous article retrieval fails.
- Shutting down NewsPlex just after activating many news-groups
would generate a number of traces in
the journal file, about not completed late explore
tasks, and about users remaining for news-servers, approximately
equal to 1 plus the number of not yet explored news-groups.
|