Skip to content
This repository
Fetching contributors…

Cannot retrieve contributors at this time

file 125 lines (77 sloc) 3.225 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
0.4.5
=====

Fix heartbeat support in event transport


0.4.4
=====

Fix handling of socket timeouts in gevent transport


0.4.3
=====

Client sends heartbeat frames on its own rather than simply replying to ones
received from the broker


0.4.2
=====

Channel close listeners are now notified before channel local data is cleaned
up

Default to the gevent transport

Removed fixed requirements for libevent or gevent. It is now up to the user to
install the packages corresponding to their preferred transport.


0.4.1
=====

Added a write lock around GeventTransport.write() call to socket.sendall()


0.4.0
=====

Fixed handling of channel closures due to error. This cleaned up several DoS
vulnerabilities, including a lockup in the ChannelPool, unbounded memory
consumption, and failure to re-use channel ids after max id enumerator
rolled over. Channel cleanup relies on reference counting to ensure a client
can respond to rapid opening and closing of channels.

Fixed failure to always cast GeventTransport.read() return to a bytearray,
which caused problems when reading partial frames.

Fixed failure in GeventTransport to switch to non-blocking socket after
connecting.

Fixed fetching of close_info when connection close callback executes.


0.3.4
=====

Abstracted libevent requirement and added support for gevent backend

Support non-blocking connect on libevent transport

Removed connection strategies from Connection and deleted ConnectionStrategy
class. Combined with a simplified and abstracted approach to IO and scheduling
in the Transports, the strategy for failed connections is more deterministic
and left in the hands of the user.


0.3.3
=====

Added cap to ChannelPool. This should be used to ensure that all of the broker
memory is consumed by channels in cases where it is slow to process
transactions.

0.3.2
=====

Fixed calling into user-provided close callback, changed interface of close_cb
to accept no arguments

Use buffer-per-frame in Connection.send_frame() to work around a memory
freeing problem in EventSocket

First round of in-depth documentation in DOCUMENTATION.rst

Added callbacks to Exchange.declare(), Exchange.delete() and
Transaction.select().

Fixed FIFO ordering problems for all methods that support callbacks to user
after a synchronous operation.


0.3.1
=====

Removed encoding of arrays as table fields


0.3.0
=====

Test coverage of all protocol and frame classes

Test coverage, bug fixes and minor performance improvements to Reader and
Writer classes

Reader and Writer conform to RabbitMQ and QPid errata as documented
at http://dev.rabbitmq.com/wiki/Amqp091Errata#section_3. Added
scripts/rabbit_table_test for integration testing.


0.2.3
=====

First changelog.

Removed manipulation of channels in Connection.disconnect(). It's now
up to the application to manage channels when explicitly shutting down a
connection or when the socket is dropped and the strategy reconnects. This
fixed a problem wherein an application may have created a connection,
created some channels and queued operations on them, but it takes the
strategy a few attempts before completing a socket connection.

Fixed character escpaing when logging outbound ContentFrames.
Something went wrong with that request. Please try again.