Welcome to the NewsPlex download site! (a courtesy of Mark Thompson).

Version 4.4 has been released on Sunday, November 20th 2005, for Windows, Linux/x86 and Solaris/SPARC.

Please go to the download page here.
Click here to join NewsPlex
Click to join the NewsPlex group
Subscribe to the NewsPlex group

Here are two excerpts from the manual:

Overview

NewsPlex is a news-server multiplexer. It allows any news-reader to access several news-servers simultaneously, by merging their content transparently into one single virtual news-server. NewsPlex merges the lists of news-groups proposed by different news-servers into one single list, and for each news-group, it merges the lists of articles available on different news-servers into one single list of articles. For each active news-group, NewsPlex maintains an index, and when a news-reader requests an article, NewsPlex forwards this request to the appropriate news-server.

Additionally, NewsPlex can be used to quickly explore large lists of candidate news-servers and evaluate their service value. This is called the Minimal mode.

NewsPlex runs on your own machine (or possibly on some other machine), in the background, and appears as a standard news-server to your news-reader and as a news-reader to your news-servers. It is therefore somewhat similar to a proxy or to a web cache.

NewsPlex runs on Windows (95/98/Me/NT/2000/XP), OS/2 and Unix (Linux, Solaris, FreeBSD and Windows's Interix subsystem). This version and this manual are for Windows.

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.