Skip to content

Releases: EarthScope/ringserver

v4.4.0

24 Mar 15:31

Choose a tag to compare

  • Rename transfer logging options to usage logging, old options still supported.
  • Add access logging to log connections, disconnections, and important commands.
  • Omit entries in transfer logging output with no entries in favor of usage logging.
  • Restore config file options when parsing fails, avoid indeterminate state.
  • Numerous fixes to edge cases, string handling robustness, etc.

Note

Usage that was dependent on the empty entries in the transfer logging files to track
clients that connected (but did not request data, e.g. INFO-only connections) needs
to be adjusted to use the new access logging, which contains useful details.

v4.3.1

14 Mar 16:41

Choose a tag to compare

  • Add TRUSTED listener option to grant trusted permission to all clients on a port.
  • Include PROXYv2 and TRUSTED flags in listener info; include PROXYv2 in client connection type.

v4.3.0

13 Mar 20:34

Choose a tag to compare

  • Add support for proxy protocol v2, configurable with PROXYv2 listener option.
  • Add support for JSONL transfer logging.
  • Authorizer program is now expected to include a username key in the response.
  • Update illustrative example authorizer to support auth via JWT.

v4.2.2

11 Feb 00:28

Choose a tag to compare

  • Parse multiple, comma-separated values from the configuration environment variables:
    • RS_LISTEN_PORT
    • RS_SEEDLINK_PORT
    • RS_DATALINK_PORT
    • RS_HTTP_PORT
    • RS_WRITE_IP
    • RS_TRUSTED_IP
    • RS_ACCEPT_IP
    • RS_DENY_IP.

v4.2.1

09 Feb 22:26

Choose a tag to compare

  • Fix DataLink match strings for INFO requests.

Also edge case out-of-memory error caused leaks and code correctness.

v4.2.0

08 Feb 00:17

Choose a tag to compare

  • Fix consuming of received data for quickly disconnecting clients.
  • Retain buffer contents on parameter changes when possible. See #75.
  • Fix binary search for client read positioning.
  • Improve calculation of client statistics, smooth rates over ~4 seconds.
  • Fix confusing error for -version. See #78
  • Add --version and --help as aliases.
  • Fix parsing of InitCurrentState and AutoRecovery from config file.
  • Add protections for edge case networking errors (e.g. incomplete commands).
  • Add protections for misbehaving clients.
  • Fix memory leaks in cases of memory allocation errors.
  • Update libmseed to v3.2.4
  • Update mbedtls to v3.6.5
  • Update pcre2 to v10.47

v4.1.2

04 Oct 18:48

Choose a tag to compare

  • Avoid pruning files from scan list when a scan has been interrupted by a termination signal and aggressively flush scanning state file.
  • Fix file descriptor and memory leaks on errors in miniSEED scanning.
  • Remove use of inode values when tracking miniSEED files being scanned; storage layers, such as Docker mounts, render inode values inconsistent.
  • Update Docker container instructions to illustrate and recommend using named volume for server state storage.

v4.1.1

08 Aug 01:04

Choose a tag to compare

  • Enable linux/arm64 docker image build for releases.
  • Update libmseed to v3.1.6
  • Update mbedtls to v3.6.4

v4.1.0

17 Jul 00:35

Choose a tag to compare

  • Now requires a C11 compiler and uses --std=c11 when building.
  • For SeedLink, miniSEED packets must be identified using an FDSN Source Identifier with a suffix of /MSEED or /MSEED3.
  • Allow protocol detection on connections using TLS. This enables secure mixed-protocol use, e.g. secure WebSocket for SeedLink or DataLink.
  • Support for SeedLink selector filters (:3) to convert data to miniSEED v3.
  • Add authentication and authorization support:
    • Support AUTH command of SeedLink v4.0
    • Support AUTH command of DataLink v1.1
    • Add example authorization code and description
  • Add AuthRequiredForStreams/RS_AUTH_REQUIRED_FOR_STREAMS config parameter.
  • Rename following parameters (and environment variables):
    • MatchIP/RS_MATCH_IP renamed to AcceptIP/RS_ACCEPT_IP
    • RejectIP/RS_REJECT_IP renamed to DenyIP/RS_DENY_IP
    • LimitIP/RS_LIMIT_IP renamed to AllowedStreamsIP/RS_ALLOWED_STREAMS_IP
      The old parameters (and environment variables) are supported but deprecated.
  • Add ForbiddenStreamsIP/RS_FORBIDDEN_STREAMS_IP config parameter.
  • Add NetIOTimeout/RS_NETIO_TIMEOUT config option.
  • Improve WebSocket handling regarding closing and ping/pong.
  • Increase MAXSTREAMID from 60 to 64 for improved alignment and allowing maximum stream IDs of 63 bytes.
  • Fix assignment of starting packet when not provided in SeedLink DATA/FETCH.
  • Remove unused mbedtls PSA initialization and thread-unsafe free'ing causing crashes.
  • Improve TLS entropy seeding and diagnostic printing.
  • Use the C11 _Atomic feature and reorganize for increased thread safety.
  • Include fdsn_source_identifiers, datalink_protocols, and seedlink_protocols in "status" details.
  • Fix inclusion of start_packet_time element in connection station list.
  • Move the seedlink_protocol and datalink_protocol arrays to the "id" details.
  • Enable PCRE2 JIT compilation and matching for regexes (much faster).
  • New version of ring buffer (v3) with consistent binary layout.
  • Update mbedtls to v3.6.4
  • Update pcre2 to v10.45
  • Update mxml to v4.0.4
  • Update libmseed to v3.1.5

v4.0.1

17 Jul 00:06

Choose a tag to compare

  • Include server_port key in INFO CONNECTIONS response.
  • Fix parsing of HTTP requests that required URL decoding.
  • Fix and enhance HTTP /connections endpoint response.
  • Fix WebSocket connection handling and variable terminators.
  • Document stream ID limitations and conventions in manual.
  • Return error for WRITE command when stream ID exceeds limit.
  • Remove colons from date-time values in transfer log file names, e.g. txlog-20241205T0000-20241206T0000 instead of txlog-20241205T00:00-20241206T00:00
  • Add SeedLink-specific details to INFO CONNECTIONS response.
  • Implement handling of SeedLink v4 ENDFETCH command.
  • Strict matching of HTTP URL paths and improved 404 messages.