Commit Graph

408 Commits

Author SHA1 Message Date
Arnaud Cogoluègnes cf5e99cd29 Add offset tracking commands 2020-09-15 17:52:05 +02:00
Arnaud Cogoluègnes 21d9aea96c Add publisher ID 2020-09-02 15:13:37 +02:00
Arnaud Cogoluègnes b2f30a55ba Use byte for sub ID in credit notification 2020-09-01 18:14:07 +02:00
Arnaud Cogoluègnes db93e14932 Use byte for subscription ID
Instead of integer. This is to be consistent with the introduction of a
similar ID for publishers (which will be a byte as well).
2020-09-01 18:07:27 +02:00
Arnaud Cogoluègnes ea2636cbb3 Add debug log during deletion 2020-08-07 16:43:34 +02:00
Arnaud Cogoluègnes 40f2db4291 Add function to kill connection based on name
For test purposes.
2020-08-05 14:43:07 +02:00
Arnaud Cogoluègnes a886cd8872 Send heartbeat from the reader process
If the heartbeat frame is sent from a dedicated process, it interleaves
between 2 socket calls from the reader process. Frames are typically
sent in one call, so this is fine, but a chunk is delivered with 2
calls, one for the frame header and one send_file for the chunk. So the
heartbeat frame can sneak in between these 2 calls, which makes clients
fail to parse frames.
2020-07-10 09:42:00 +02:00
Arnaud Cogoluègnes 92ebb825cb Handle error case when creating a stream 2020-07-10 09:24:24 +02:00
Arnaud Cogoluègnes 7740fee13e Pass in monitor reference, not stream name 2020-07-09 11:33:44 +02:00
Arnaud Cogoluègnes af2dcf7f57 Handle publishing sub-entries (batch) 2020-06-30 17:29:28 +02:00
Arnaud Cogoluègnes 7270125c0b Fix closing sequence
When server sends close, it would not listen on the socket for the
client confirmation.
2020-06-26 16:33:39 +02:00
Arnaud Cogoluègnes 4a05b6b62a Ignore non-responding brokers in metadata command 2020-06-25 15:32:33 +02:00
Arnaud Cogoluègnes 1d3978ae40 Change response code label
From "stream deleted" to "stream not available". It covers now the
deletion of a stream and the unavailibility due to a failure. This is up
to the client to find out what to do (typically send a metadata request
about the stream and see if it's still there).
2020-06-23 10:51:34 +02:00
Arnaud Cogoluègnes 7b3d8c4ad0 Use Erlang monitor to detect stream deletion/failure 2020-06-22 18:33:54 +02:00
Arnaud Cogoluègnes 5bd352737c Pass in node information to Java test suite 2020-06-22 16:35:07 +02:00
Arnaud Cogoluègnes f8074a9f93 Notify client when it credits an unknown subscription 2020-06-19 15:19:39 +02:00
Arnaud Cogoluègnes 27c4e1e707 Add authorisation on publishing 2020-06-18 17:00:02 +02:00
Arnaud Cogoluègnes 5f69ef7cf7 Add authorisation for subscription 2020-06-18 16:13:14 +02:00
Arnaud Cogoluègnes 397c5ca078 Add authorisation for creation/deletion 2020-06-18 15:25:50 +02:00
Arnaud Cogoluègnes 3c18498734 Clean manager listener code
Now the manager uses the coordinator to know about deleted streams.
2020-06-18 10:57:01 +02:00
Arnaud Cogoluègnes a1314a13c9 Use coordinator to get notified on stream deletion 2020-06-18 08:58:59 +02:00
Arnaud Cogoluègnes 625eaec004 Use rabbit_log 2020-06-15 11:17:27 +02:00
Arnaud Cogoluègnes 6a07d385ae Add specs t stream manager 2020-06-11 11:05:02 +02:00
Arnaud Cogoluègnes bb5efad9ef Fix dialyzer errors 2020-06-10 18:13:55 +02:00
Arnaud Cogoluègnes 76162b18a2 Add type specifications 2020-06-10 16:24:18 +02:00
Arnaud Cogoluègnes 19a1eb4013 Remove some unnecessary comments 2020-06-10 15:06:51 +02:00
Arnaud Cogoluègnes 16288a2596 Separate changing state from (almost) immutable state 2020-06-10 15:04:31 +02:00
Arnaud Cogoluègnes c39852fa72 Introduce PeerProperties command
To exchange client/server properties at the beginning of the connection.
2020-06-10 10:42:29 +02:00
Arnaud Cogoluègnes d2a29c5aef Support client properties 2020-06-09 17:48:23 +02:00
Arnaud Cogoluègnes 6ef10c8573 Use MPL 2.0 2020-06-08 09:54:33 +02:00
Arnaud Cogoluègnes a56cf4013c Support first/last/next/offset/timestamp offset spec 2020-06-02 16:35:00 +02:00
Arnaud Cogoluègnes ecf47a8a42 Fix typo 2020-06-02 10:47:46 +02:00
Arnaud Cogoluègnes 2ab7e864dc Consume from a local member 2020-05-28 11:59:13 +02:00
Arnaud Cogoluègnes efc6fbc089 Add advertised host/port settings
This allows to communicate whatever it's appropriate to clients when
they issue the metadata command.
2020-05-28 10:47:30 +02:00
Arnaud Cogoluègnes b54026aa32 Add arguments for stream creation
To handle retention settings.
2020-05-19 18:18:30 +02:00
Arnaud Cogoluègnes 55adca1b44 Make sure queue is stream queue 2020-05-07 11:00:45 +02:00
Arnaud Cogoluègnes c2e35eb55f Use stream coordinator to manage streams 2020-05-06 17:35:41 +02:00
Arnaud Cogoluègnes 2d19e85925 Use stream instead of target 2020-05-06 09:15:16 +02:00
Arnaud Cogoluègnes b61a79b9ff Credit value is signed 2020-04-03 11:00:35 +02:00
Arnaud Cogoluègnes 204f61399b Handle client heartbeat 2020-04-01 10:08:32 +02:00
Arnaud Cogoluègnes 8c97d442ce Add heartbeat 2020-03-31 14:43:06 +02:00
Arnaud Cogoluègnes ece2a4770f Refactoring before introducing heartbeat
Introduce a level of supervisors to have a parent PID for the heartbeat
process.
2020-03-31 10:12:35 +02:00
Arnaud Cogoluègnes b693f71c5d Add todo task 2020-03-30 17:46:27 +02:00
Arnaud Cogoluègnes 47d46d145b Send close when client sends frame too large 2020-03-30 15:18:57 +02:00
Arnaud Cogoluègnes e899bdfb3e Refactor tune
Use int32 for both max frame size and bump max frame size to 1 MB.
2020-03-27 15:55:57 +01:00
Arnaud Cogoluègnes 9667525cd7 Update test for opening sequence 2020-03-26 17:52:54 +01:00
Arnaud Cogoluègnes 4e035dfbdb Add support to send close 2020-03-26 16:56:53 +01:00
Arnaud Cogoluègnes a26962cfcb Handle close command from client 2020-03-26 14:52:19 +01:00
Arnaud Cogoluègnes 7c33112f25 Check virtual host access in open 2020-03-26 09:53:28 +01:00
Arnaud Cogoluègnes 728a017f9e Add skeleton for tune and open 2020-03-25 17:06:04 +01:00
Arnaud Cogoluègnes b84de96d0b Add test for authentication 2020-03-25 10:08:10 +01:00
Arnaud Cogoluègnes 55a836b488 Refactor to pre/post authentication frame handling 2020-03-24 17:42:10 +01:00
Arnaud Cogoluègnes 6ae44768f3 Handle null binary in SASL authenticate 2020-03-24 16:40:05 +01:00
Arnaud Cogoluègnes 22dc72c9d9 Handle SASL authenticate 2020-03-24 11:47:50 +01:00
Arnaud Cogoluègnes e2f11fdafc Handle SASL handshake 2020-03-23 14:54:59 +01:00
Arnaud Cogoluègnes 1f42faeab8 Refactor after some Osiris changes 2020-03-23 10:48:46 +01:00
Arnaud Cogoluègnes 4e8a801e8d Add license information 2020-03-17 10:59:37 +01:00
Arnaud Cogoluègnes ab98aecd17 Initial import 2020-03-16 16:40:02 +01:00