Skip to content

Releases: flightaware/tclrmq

Update for nix compatibility

19 Aug 21:07
15318be
Compare
Choose a tag to compare

Add option in Makefile to pull PREFIX and TCLSH from env variable to package with nix.

Field Table Encoding

20 Dec 17:34
Compare
Choose a tag to compare

This release contains the following fixes:

  • Field table encoding involving deriving the type of the values has been fixed. In particular, encoding for booleans (which were missing an encoder), floats (which used an incorrect endian ordering) and strings (which need to be all treated as long strings) now work properly

Avoid Excessive `after idle` Calls

12 Dec 17:26
Compare
Choose a tag to compare

This release contains the following changes:

  • Avoid using the after idle idiom for invoking consumer callbacks

Makefile fix

08 Aug 14:04
Compare
Choose a tag to compare

This small release fixes an issue in the package Makefile with a package require command.

Heartbeat Improvments

06 Aug 13:20
118661d
Compare
Choose a tag to compare

This release improves the handling of heartbeats by making them conform more closely to the spec and by making sure that a heartbeat check is always scheduled. These changes address the potential situation where a heartbeat check is not properly scheduled in the client, which is particularly necessary for clients who infrequently have messages to consume from a queue.

TLS Bug Fixes

07 Feb 01:38
Compare
Choose a tag to compare

This bug-fix release contains the following changes:

  • TLS options are now supported properly
  • Fixed bug that prevented TLS connections from operating as intended
  • Removed issue with ::rmq::debug proc

Log Command

16 Sep 15:13
Compare
Choose a tag to compare

This release adds the -logCommand argument to the Connection class' constructor. This allows for debugging statements to be passed into an arbitrary Tcl command. Previously, all debugging statements were printed to stderr if -debug mode was enabled in the Connection class.

Connection and Channel Close Cleanup

06 Apr 13:27
Compare
Choose a tag to compare

This release cleans up the code related to the connectionClose and channelClose methods. Both of these methods correspond to AMQP methods that can be sent or received by the client. Previously, both cases were combined in a single method. They are now separated, which cleans up their code significantly. Additionally, the README has been updated to clear up inconsistencies regarding these methods.

Channel Close Fixes

05 Apr 20:40
Compare
Choose a tag to compare

This release fixes the following bugs:

  • Incorrect variable names were used in one branch of the Channel class' channelClose method. This caused the server to close the connection when a channel was closed due to an invalid encoding.

  • The closeD argument passed to Channel and Connection close callbacks was incorrectly created as a dictionary of nested dictionaries.

Reconnect Fixes

18 Mar 13:28
Compare
Choose a tag to compare

This bug release fix focuses on the behavior of the attemptReconnect method of the Connection class.

  • Previously, reconnects were performed in a while loop. This could have the unfortunately side-effect of blocking all other events while waiting on a connection. Instead, now all attemptReconnect calls happen in an after script.

  • Also, the count of retry attempts happened in a local variable. While typically fine, bugs could arise if attemptReconnect was called from multiple code locations, all with a separate retry count. This is especially insidious in use cases where -autoReconnect is false. The retry count is now maintained in an object member variable so that any calls to attemptReconnect will see the same count of retries.

  • A method resetRetries has been added to the Connection class to accommodate any potential need to control this behavior manually.

  • Further, the connect method, which is relied on by attemptReconnect for deciding whether a connection has been re-established, had a subtle bug where it could return true prematurely before getting official connectivity confirmation from the connectionOpenOk method. If, for instance, a proxy server was used, the connect method could return true before a RST was sent. To fix this, connect no longer returns true unless connectionOpenOk sets the connected member variable before a timeout occurs.