Skip to content

NewsCache 1.3.17

Choose a tag to compare

@go-while go-while released this 18 Oct 23:27
· 790 commits to main since this release

First release from https://github.com/go-while/NewsCache, which continues
NewsCache with Christof Meerwald's agreement. It is SVN trunk r80 (1.3.16)
plus the fixes and tests below.

Bug fixes

  • Access list: a Client entry with a plain IP address and no mask (for
    example "Client 10.1.2.3") had prefix length 0 and matched every client of
    that address family. It now means exactly that host. Affects 1.3.ipv6 to
    1.3.16 (since the IPv6 support); configs with a mask or a host name are not
    affected, and 1.2rc6 matched such entries by name only.
  • Access list: entries for one exact host (a.b.c.d/32, /255.255.255.255,
    /128) never matched, including the example in newscache.conf(5). A prefix
    longer than the address is now a syntax error.
  • SIGHUP with a broken newscache.conf no longer kills the daemon; it logs the
    error and keeps the running configuration.
  • Upstream articles without an Xref header are served instead of failing with
    423/430.
  • "400 too many users" is no longer followed by a NUL byte.
  • "502 You have no permission to talk" ends with CRLF instead of a bare LF.
  • Log file timestamps (builds without syslog) showed the previous month.
  • newscacheclean: "ng == NULL | nr < firstnr" read an uninitialized variable
    (| instead of ||); the result was the same.
  • The sample newscache.conf-dist loads again: BindFrom only takes numeric
    addresses since the IPv6 support, and the sample used a host name.
  • make dist works again (a misspelled header name in NServer-0.9.1, there
    since 1.2rc6), and make distcheck passes: the test programs are now
    check_PROGRAMS, so make clean removes them.
  • configure.in carries the release version again; it still said 1.3.ipv6,
    so 1.3.16 greeted clients with "NewsCache 1.3.ipv6".

Tests

  • make check passes again (cArticle, cNewsgroupFilter and cConfig were broken).
  • New end-to-end tests in tests/e2e (Go, using
    github.com/go-while/nntp-testkit) run the real newscache binary against a
    fake upstream server. make check runs them when Go is installed and skips
    them otherwise.

Documentation

  • README.md: project history, building, and a check of the old documentation.
  • FEDORA.md: building, testing and installing on Fedora, with a systemd unit
    and a cleanup timer.

Build

tar xzf NewsCache-1.3.17.tar.gz && cd NewsCache-1.3.17
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
make && make check && sudo make install

Tested on Ubuntu 24.04 (g++ 13.3) and Fedora 44 (g++ 16.2, Fedora's rpm flags). See README.md and FEDORA.md.

SHA-256: b72ed76b6a747d630a2544dc3e41d770e8d3d815d8c73fc6f97212549749d2f6