Skip to content

Releases: EarthScope/ringserver

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.

v4.0.0

24 Nov 21:28

Choose a tag to compare

Note

The ring buffer format has changed in this release. Older versions of the saved buffer format will be converted for a seamless upgrade. Once this conversion is completed, older releases of ringserver will detect the buffer as corrupt and discard the contents, a consequence of downgrading to an earlier release.

Major new features:

  • Add support for SeedLink protocol version 4.
  • Support for buffer sizes up to UINT64_MAX (aka more than you need).
  • Map 24-bit SeedLink v3 sequence numbers into 64-bit range, allowing v3 clients to resume from the most recent 16,777,215 packets in the buffer even if the buffer can contain more packets.
  • Add support for TLS/SSL using mbedtls release 3.6.2
  • Add TLS flag for listening port configuration
  • Add TLSCertfile, TLSKeyFile, and TLSVerfiyClientCert parameters (and equivalent environment variables) for TLS configuration.
  • Allow DataLink v1.1 WRITE command to accept a packet ID.
  • All configuration options can be specified with environment variables.
  • Container images are built for release versions and published to Docker Hub:
    https://hub.docker.com/r/earthscope/ringserver

Other changes:

  • Add HTTP endpoints that return status information in JSON format: /id/json, /streams/json, /status/json, /connections/json
  • Add -C command line option to print a reference configuration file.
  • Add HTTPPort parameter, RS_HTTP_PORT evnvvar, and -HL option for HTTP-only ports.
  • Automatically convert packet buffer from previous version to current.
  • Convert internal time stamps from microsecond ticks (hptime) to use nanosecond ticks, as used by the libmseed3.
  • Most generated time strings are now YYYY-MM-DDThh:mm:ss.sss*Z formatted.
  • All legacy stream IDs for miniSEED of the form: NN_SSSSS_LL_CCC/MSEED will be converted to FDSN Source ID form: FDSN:NN_SSSSS_LL_C_C_C/MSEED.
  • Allow ring size to be specified in fractional large units, e.g. "1.5g".
  • Update libmseed to 3.1.3, adapt for miniSEED 3 API.
  • Upgrade to PCRE2 10.44 from legacy PCRE.
  • Upgrade mini-XML (mxml) to 4.0.3.

v2020.075

17 Mar 17:17

Choose a tag to compare

  • Fix resuming SeedLink connections when both sequence and begin time are included in multi-station mode.
  • Add IPv6 support, on by default if supported by the system.
  • Add ability to serve variable miniSEED record lengths via SeedLink.
  • Add ability to scan variable miniSEED record length via file scanning.
  • Apply LimitIP SourceID pattern to limit what a client can write in addition to read.
  • Update libmseed to 2.19.6.
  • Update mini-XML library to 3.1.
  • Update pcre library to 8.43.
  • License ringserver specific code as Apache 2.

v2018.078

19 Mar 20:56

Choose a tag to compare

  • Add MIME-type mappings for static files with extensions: htm, css, xml, json, text. Already supported were html, js and txt.

v2018.054

23 Feb 18:40

Choose a tag to compare

  • Fix unmasking of received data for DataLink over WebSockets

v2018.050

20 Feb 05:08

Choose a tag to compare

  • Change output of /streamids to always be only stream IDs (no type included)

v2018.047

17 Feb 00:32

Choose a tag to compare

  • Add HTTPHeader config file parameter that specifies custom HTTP headers that will be added to HTTP responses.
  • Decode percent-encoded URLs (for HTTP).
  • Append 'Z' time zone designator to earliest and latest times in HTTP streams output.
  • Add /streamids endpoint to HTTP support to return a list of streams. This is similar to the /streams endpoint but without the time extents. The /streamids endpoint is consistent, always and only a list of streams.
  • Disallow SeedLink TIME requests with future start time, return error to the client.
  • Update mini-XML library to 2.11.
  • Update pcre library to 8.41.