13th December 2025 Release notes for XRouter version 504p ###################################### The previous XRouter release was version 504n, on 9th November 2025. There have been quite a few bugfixes and changes since then, and I have to stop work for a few days. hence this latest rushed release. This version (504p) should be a "drop-in replacement" as usual. It is recommended that you back up your current XRouter executable, and rename the new one as required. For Linux versions only, you will need to give the new file "execute" permissions using "chmod +x ". As usual this is an unfinished and un-polished release! As packet and software evolves, it is sometimes necessary to break good reliable code to add new features. This process may introduce new bugs. Please report bugs and make suggestions for improvements. Static Versions =============== Variants marked "-static" are 100% self contained programs with no external dependencies. Thus they should work on any version of Linux, unlike the non-static versions which require specific versions of LIBC to be present. But one downside is that the Linux kernel resolver can not be used from a statically linked application. Thus in order to resolve hostnames into IP addresses (e.g. for AXUDP, node map etc) you MUST add a DNS line into XROUTER.CFG. I suggest "DNS=8.8.8.8". This lets XRouter use its own resolver. The other downside is that ALSA audio cannot be compiled into static versions either. If you want audio, or kernel-based domain resolution, you have to use a non-static version and put up with "dependency hell". Generally, a version compiled on an old operating system such as Debian "Stretch", will work on a later O/S, but not the other way around. Windows versions don't suffer from this lunacy. An EXE file is self-contained, and just works! XrPi32v504p-static ================== This was cross-compiled from X86-64, and hasn't been tested. Reports would be appreciated. Changes Since Version 504n ========================== Fixed: ROUTE commands, which had been broken by v504j. Fixed: WP "Is_BBS" entries were not updated from routing headers Fixed: On very fast connections, CHARGEN was using most of the resources. Slowed it down to a more manageable pace, still plenty fast enough for AXUDP or RF connections. Fixed: L4 RX Flow Control. L4 circuits would sometimes choke on very large buletins sent on fast links, and would take a long time to unchoke. Fixed: XRouter would silently exit if OARC map server sent a TCP reset. Fixed: When a non-XRouter neighbour enabled INP3, any conventional "qualities" it sent in NODES broadcasts were being heavily de-rated by XRouter, often causing them to fall below the high MINQUALs that are used nowadays. This was was caused by code from long ago, when the only non-XRouter neighbours capable of INP3 were (X)Net. ((X)net manufactured artificially high "qualities" from RTT and hops, distorting the routing). With BPQ now having INP3, the forgotten code came back into play, so it has now been disabled for anything other than (X)net. But note that the last time I looked, Linux's INP3 implementation was also wrong, so please report any instances of silly qualities from such neighbours. Fixed: Chatserver would sometimes lose sysop's settings (name etc) Fixed: Excessive DNS requests in cases where non-authoritative name server couldn't resolve a name. Fixed: "Private" IP route indication was potentially unreliable, although this had never actually been observed in practice. Fixed: BBS Mail import from "mail.in" file, broken by v504j. Fixed: If BBS forwarding script was edited via the HTTP interface, it was saved in upper case, upsetting "Waitfor" lines which are case sensitive. Fixed: The C[onnect] command was passing garbage to the ARDOP and VARA TNC's. Fixed: ARDOP, VARA and TCP interfaces were rejecting RADIONUM, so they were prevented from using rig control. Fixed: UIFLOOD and UITRACE digipeating were not working. Fixed: APRS digipeating was disabled unless the "DIGI_UI" flag was set in DIGIFLAGS, meaning that it was not possible to enable APRS digipeating independently of "normal" digipeating. Fixed: DISTRIB.SYS "don't forward" entries were distributing everything to BBS callsign "*". Fixed: Storage for COM device name is now explicitly deallocated at closedown, to prevent orphaned memory upon "hot" restarts. Change: Prevented attempts to make AX25 connections on ports that don't support AX25. Change: Following a complaint that it was slowing workflow, removed the HTML dialog confirming message deletion. Change: AXRoutes command was always sysop-only, but why? As is useful for network debugging, it is now open to all except guests. Change: Connections to BBS now always use "Connected to" instead of replying in the caller's language, otherwise it confuses simple machines. Change: Added more fields to the BBS "J" response. Added: BBS "JK" command, to list the recent connections separately in chronological order. Added: "ilen=" to L4 trace, so that the payload length can be known even when there's no AX25 layer on the trace to display the packet length. Added: "CONFIG={ipaddr}" in INTERFACE type TCP, to prevent connections from unauthorised client IPs. Added: S[tats] PORT [reset] Added: R[oute] S[tats] [R[eset]]. Added: Route connection / disconnection history Added: BBSBEACONS flag (8) to TXOK. Setting this flag on a PORT's TXOK enables FBB "Resync" requests, mail header broadcasts, and "Mail for:" beacons on that PORT. Added: FBB unproto headers and resync capability. To enable this on a PORT, you must add 8 to the TXOK flags for that port, e.g. normally TXOK=9, or TXOK=13 if weather beacons are also enabled. Added: BBS "Mail for" beacons. Enabled as above. Added: New directive "FbbUnprotos" to PMS.CFG. Setting FbbUnprotos=1 enables FBB unproto (UI) mail header broadcasts on any PORT that has the BBSBEACONS flag (8) set in TXOK. If the FbbUnprotos directive is not included, it defaults to 0 (no unprotos) Added: New directive "MaxUnprotos" to PMS.CFG. This specifies the maximum number of message headers that will be returned in response to an FBB "resync" request. The default is 100. Setting this to 0 disables the resync capability. Note that resync requests are ignored unless the TXOK flags for the PORT include the BBSBEACONS flag (8). Added: Controls for setting FbbUnprotos and MaxUnprotos via the BBS Admin HTTP interface. Added Logging to syslog. Added Live BBS activity logging to a console, allowing scrollback and capture, to remote sysop sesions, and to HTTP interface Added Live logging to console, remote sysop sessions, and HTTP interface. Added: Sysop command "LOG L[ive] [n]", where [n] specifies the subsystem(s) to display: 0=off, 1=BBS, 2=All. (unfinished) Added: At console, F6 key enables "Live Log" mode on that console. Normal console operation is suspended while in Live Log mode. Options are displayed on the menubar. Use Q[uit] to exit. Added: L[og] [ A[ll] | B[bs] | O[ff] ] subcommand to MON[itor] cmd. Added: BBS "OLR" command to enable "Off Line Reader" mode. This is for automated mail programs such as Sally and Winpack. If the client sends the command "OLR" soon after connection, the session will switch to OLR mode, turning off colour and pagination, and ensuring a consistent machine-friendly mail header format. Added: New or updated MAN files, to be placed in the XRouter's MAN subdirectory, overwriting any existing files of the same name. Added: New or updated BBS help files, to be placed in the HELP/PMS subdirectory, overwriting any existing files of the same name. "XRouter - The Serious Sysop's Choice"