News

Transitioned to GitHub

Added by Chad Trabant 5 months ago

This project has been migrated to GitHub:

https://github.com/iris-edu/ringserver

Releases are available for download at:

https://github.com/iris-edu/ringserver/releases

Some documentation in this project Wiki will remain available here until it is migrated to GitHub.

ringserver-2015.188 released

Added by Chad Trabant about 2 years ago

2015.188:

- Fix parsing of MaxClientsPerIP configuration parameter when the
  MaxClients parameter is also being specified.
- Allow connections from addresses that have write permission even
  when the maximum number of connections has been reached.  The reserve
  space is currently 10 connections.
- Clarify in documentation that clients connecting from the localhost
  loopback address (127.0.0.1) is only granted write permission if no
  other addresses are explicitly granted write permission.

ringserver-2015.182 released

Added by Chad Trabant about 2 years ago

Mostly refinements and bug-fixes, this release contains one significant operator feature: the new MaxClientsPerIP parameter enforces a limit of connections per IP address.

Full change list:

2015.182:
        - Dynamically allocate record buffer for use in slclient.c:HandleInfo()
        in order guarantee that it is properly aligned for the host architecture.
        Thanks Doug Neuhauser for identifying this issue (under Solaris x86).

2015.156:
        - Update pcre to 8.37.
        - Add 'MaxClientsPerIP' config parameter and -M command line option to
        enforce a maximum number of connections per IP address.  The limit does
        not apply to addresses with write permission.  Default is no per-IP maximum.
        - Copy pcre/pcre_chartables.c.dist to pcre/pcre_chartables.c to avoid
        symbolic link problems on, for example, Cygwin.

2015.149:
        - Update libmseed to 2.16m.
        - Restart listening server threads (SeedLink and DataLink) without
        initializing the server socket when the socket is already set up.
        - Continue accept()ing new connections and do not exit if the accept()
        returns an error of ECONNABORTED or EINTR.  These errors are
        non-critical and should not cause the listening thread to exit.
        - InitServerSocket(): close socket on error return from setsockopt() to
        avoid leaving an open socket in that error condition.
        Thanks to Doug Neuhauser for reporting and suggesting above fixes.
        - Close corrupt ring buffer file when performing autorecovery in 
        all cases.

ringserver-2015.074 released

Added by Chad Trabant over 2 years ago

2015.074:

- Update libmseed to 2.15.
- Update pcre to 8.36.  Note: development of pcre has moved to pcre2.
- Update mxml to 2.9.
- Improve detection of ring corruption by adding a 'corruptflag' to the
ring parameters, setting it in RingWrite() and checking it on initialization.
This will trigger consistent corruption detection on initialization
whenever the previous execution ended when RingWrite() detected an error.
- mseedscan.c: rearrange stored directory entry listing details to avoid
needing to copy potentially variable length struct dirent.  This code now
works on platforms without dirent.d_reclen support, e.g. Cygwin.  Thanks
to Eric Thomas for reporting this.

ringserver-2014.269 released

Added by Chad Trabant almost 3 years ago

2014.269: Dudes!

- Update mxml to 2.8.
- Update pcre to 8.35.
- Update libmseed to 2.13.
- Changes to support much larger SeedLink requests:
 a) Increase max internal regex buffer size from 65,536 to 1,048,576 by
    changing SLMAXREGEXLEN and DLMAXREGEXLEN.
 b) Increase max buffer for per-station/global selectors from 400 to 2,048.
 c) Configure the PCRE to use an internal link size of 4 instead of 2.
  The effective limit depends on the composite selection, e.g. number of
  STATIONs and number SELECTions per STATION.  With 6 selections each,
  over 10,000 stations may be requested.  Over 200 selectors for a
  request with fewer stations.  Requests can now be unreasonably large.
- Optimize packet search loop in RingAfter() and RingAfterRev(), which
  are used to position a reader based on packet time, by avoiding the
  regex tests when possible. Suggested code by Mark Chadwick.
- Include offset in the regex pattern in the error message printed when
  pcre_compile() returns an error.
- Improve error messasges in sliclient.c when RingMatch() or
  RingReject() return failures.
- Add " ..." to log messages that were truncated at 200 characters.
- Add example of using Match with the MSeedScan option to the man page.
- Clean up Makefile and src/Makefile.

2014.007:

- Increment transmission packet count per stream for SeedLink clients;
  for transmission logging, packet counts were previously zero, byte
  counts were (and remain) correct.

(1-5/5)

Also available in: Atom