diff options
author | Arnaud Cogoluègnes <acogoluegnes@gmail.com> | 2021-09-27 09:52:48 +0200 |
---|---|---|
committer | mergify-bot <noreply@mergify.io> | 2021-09-27 19:28:56 +0000 |
commit | 65924fbcb30c2255b82be3d4e94d1973acf32363 (patch) | |
tree | 372d2a5bc57ec7c94fefa8ac5547ac5dd09576eb | |
parent | 5319336492bc4327247a0db55c391220b3da2f19 (diff) | |
download | rabbitmq-server-git-mergify/bp/v3.9.x/pr-3509.tar.gz |
Handle no-context delivery in web stompmergify/bp/v3.9.x/pr-3509
To support messages from streams, which do not have a
context (for credit flow).
References rabbitmq/rabbitmq-stomp#138
Fixes #3508
(cherry picked from commit b758edc64247ef8b33bf8c897b37013d9eef99ec)
-rw-r--r-- | deps/rabbitmq_stomp/src/rabbit_stomp_processor.erl | 2 | ||||
-rw-r--r-- | deps/rabbitmq_web_stomp/src/rabbit_web_stomp_handler.erl | 9 |
2 files changed, 10 insertions, 1 deletions
diff --git a/deps/rabbitmq_stomp/src/rabbit_stomp_processor.erl b/deps/rabbitmq_stomp/src/rabbit_stomp_processor.erl index 30a0b94b35..4cbdaf10ba 100644 --- a/deps/rabbitmq_stomp/src/rabbit_stomp_processor.erl +++ b/deps/rabbitmq_stomp/src/rabbit_stomp_processor.erl @@ -827,7 +827,7 @@ send_delivery(Delivery = #'basic.deliver'{consumer_tag = ConsumerTag}, NewState. notify_received(undefined) -> - %% no notification for quorum queues + %% no notification for quorum queues and streams ok; notify_received(DeliveryCtx) -> %% notification for flow control diff --git a/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_handler.erl b/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_handler.erl index 3a1bcd42cb..ebec3da671 100644 --- a/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_handler.erl +++ b/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_handler.erl @@ -183,6 +183,15 @@ websocket_info({Delivery = #'basic.deliver'{}, DeliveryCtx, ProcState0), {ok, State#state{ proc_state = ProcState }}; +websocket_info({Delivery = #'basic.deliver'{}, + #amqp_msg{props = Props, payload = Payload}}, + State=#state{ proc_state = ProcState0 }) -> + ProcState = rabbit_stomp_processor:send_delivery(Delivery, + Props, + Payload, + undefined, + ProcState0), + {ok, State#state{ proc_state = ProcState }}; websocket_info(#'basic.cancel'{consumer_tag = Ctag}, State=#state{ proc_state = ProcState0 }) -> case rabbit_stomp_processor:cancel_consumer(Ctag, ProcState0) of |