9999
100100-export_type ([process_frame_result / 0 ]).
101101
102+ -export ([adapter_name /1 ]).
103+
102104% %----------------------------------------------------------------------------
103105% % Public API
104106% %----------------------------------------------------------------------------
107+ adapter_name (# state {cfg = # cfg {adapter_info = # amqp_adapter_info {name = Name }}}) ->
108+ Name .
105109
106110-spec initial_state (
107111 # stomp_configuration {},
@@ -313,7 +317,7 @@ process_connect(Implicit, Frame,
313317 adapter_info = AdapterInfo }}) ->
314318 process_request (
315319 fun (StateN ) ->
316- maybe
320+ Res1 = maybe
317321 {ok , Version } = negotiate_version (Frame ),
318322 FT = frame_transformer (Version ),
319323 Frame1 = FT (Frame ),
@@ -322,12 +326,12 @@ process_connect(Implicit, Frame,
322326 VHost = login_header (Frame1 , ? HEADER_HOST , DefaultVHost ),
323327 Heartbeat = login_header (Frame1 , ? HEADER_HEART_BEAT , " 0,0" ),
324328 {ProtoName , _ } = AdapterInfo # amqp_adapter_info .protocol ,
325- StateN1 = StateN # state {cfg = # cfg {vhost = VHost ,
326- adapter_info = AdapterInfo # amqp_adapter_info {
327- protocol = {ProtoName , Version }},
328- frame_transformer = FT ,
329- auth_mechanism = Auth ,
330- auth_login = Username }},
329+ StateN1 = StateN # state {cfg = Config # cfg {vhost = VHost ,
330+ adapter_info = AdapterInfo # amqp_adapter_info {
331+ protocol = {ProtoName , Version }},
332+ frame_transformer = FT ,
333+ auth_mechanism = Auth ,
334+ auth_login = Username }},
331335 {Username , AuthProps } = auth_props_for_creds (Creds , StateN1 ),
332336 {ok , User } ?= rabbit_access_control :check_user_login (Username , AuthProps ),
333337 {ok , AuthzCtx } ?= check_vhost_access (VHost , User , PeerIp ),
@@ -347,10 +351,10 @@ process_connect(Implicit, Frame,
347351 false -> [{? HEADER_SERVER , server_header ()} | Headers ]
348352 end ,
349353 " " ,
350- StateN1 # state {cfg = # cfg {
351- session_id = SessionId ,
352- version = Version
353- },
354+ StateN1 # state {cfg = StateN1 # state . cfg # cfg {
355+ session_id = SessionId ,
356+ version = Version
357+ },
354358 user = User ,
355359 authz_ctx = AuthzCtx }),
356360 self () ! connection_created ,
@@ -375,14 +379,15 @@ process_connect(Implicit, Frame,
375379 rabbit_log :warning (" STOMP login failed for user '~ts ': "
376380 " this user's access is restricted to localhost" , [EUsername ]),
377381 error (" Bad CONNECT" , " non-loopback access denied" , State )
378- end
379- case {Res , Implicit } of
382+ end ,
383+ case {Res1 , Implicit } of
380384 {{ok , _ , StateN2 }, implicit } ->
381385 self () ! connection_created , ok (StateN2 );
382386 _ ->
383- self () ! connection_created , Res
387+ self () ! connection_created , Res1
384388
385- end ,
389+ end
390+ end ,
386391 State ).
387392
388393creds (_ , _ , # cfg {default_login = DefLogin ,
@@ -659,7 +664,7 @@ maybe_delete_durable_sub_queue({topic, Name}, Frame,
659664 {ok , Id } = rabbit_stomp_frame :header (Frame , ? HEADER_ID ),
660665 QName = rabbit_stomp_util :subscription_queue_name (Name , Id , Frame ),
661666 QRes = rabbit_misc :r (VHost , queue , list_to_binary (QName )),
662- io : format (" Durable QRes: ~p~n " , [QRes ]),
667+ ? LOG_DEBUG (" Durable QRes: ~p~n " , [QRes ]),
663668 delete_queue (QRes , Username ),
664669 ok (State );
665670 false ->
@@ -753,6 +758,7 @@ do_subscribe(Destination, DestHdr, Frame,
753758 try
754759 {ok , State1 } = consume_queue (QueueName , #{no_ack => (AckMode == auto ),
755760 prefetch_count => Prefetch ,
761+ mode => {simple_prefetch , Prefetch },
756762 consumer_tag => ConsumerTag ,
757763 exclusive_consume => false ,
758764 args => Arguments },
@@ -913,16 +919,16 @@ do_send(Destination, _DestHdr,
913919
914920 Message = rabbit_message_interceptor :intercept (Message0 ),
915921
916- io :format (" Message: ~p~n " , [Message ]),
922+ % % io:format("Message: ~p~n", [Message]),
917923
918924 QNames = rabbit_exchange :route (Exchange , Message , #{return_binding_keys => true }),
919- io :format (" QNames ~p~n " , [QNames ]),
925+ % % io:format("QNames ~p~n", [QNames]),
920926
921927 Delivery = {Message , DeliveryOptions , QNames },
922- io :format (" Delivery: ~p~n " , [Delivery ]),
928+ % % io:format("Delivery: ~p~n", [Delivery]),
923929 deliver_to_queues (ExchangeName , Delivery , State2 );
924930 {error , _ } = Err ->
925- io :format (" Err ~p~n " , [Err ]),
931+ % % io:format("Err ~p~n", [Err]),
926932 Err
927933 end .
928934
@@ -941,7 +947,7 @@ deliver_to_queues(XName,
941947 Qs0 = rabbit_amqqueue :lookup_many (RoutedToQNames ),
942948 Qs = rabbit_amqqueue :prepend_extra_bcc (Qs0 ),
943949 MsgSeqNo = maps :get (correlation , Options , undefined ),
944- io :format (" Qs: ~p~n " , [Qs ]),
950+ % % io:format("Qs: ~p~n", [Qs]),
945951 case rabbit_queue_type :deliver (Qs , Message , Options , QStates0 ) of
946952 {ok , QStates , Actions } ->
947953 rabbit_global_counters :messages_routed (stomp , length (Qs )),
@@ -1183,10 +1189,10 @@ deliver_to_client(ConsumerTag, Ack, Msgs, State) ->
11831189
11841190deliver_one_to_client (ConsumerTag , _Ack , {QName , QPid , MsgId , Redelivered , MsgCont0 } = _Msg ,
11851191 State = # state {queue_states = QStates ,
1186- delivery_tag = DeliveryTag }) ->
1192+ delivery_tag = DeliveryTag }) ->
11871193
1188- [RoutingKey | _ ] = mc :get_annotation ( routing_keys , MsgCont0 ),
1189- ExchangeNameBin = mc :get_annotation ( exchange , MsgCont0 ),
1194+ [RoutingKey | _ ] = mc :routing_keys ( MsgCont0 ),
1195+ ExchangeNameBin = mc :exchange ( MsgCont0 ),
11901196 MsgCont = mc :convert (mc_amqpl , MsgCont0 ),
11911197 Content = mc :protocol_state (MsgCont ),
11921198 Delivery = # 'basic.deliver' {consumer_tag = ConsumerTag ,
@@ -1338,7 +1344,7 @@ ensure_reply_queue(TempQueueId, State = #state{reply_queues = RQS,
13381344% %----------------------------------------------------------------------------
13391345
13401346ensure_receipt (Frame = # stomp_frame {command = Command }, State ) ->
1341- io :format (" ER Frame: ~p~n " , [Frame ]),
1347+ % % io:format("ER Frame: ~p~n", [Frame]),
13421348 case rabbit_stomp_frame :header (Frame , ? HEADER_RECEIPT ) of
13431349 {ok , Id } -> do_receipt (Command , Id , State );
13441350 not_found -> State
@@ -1653,7 +1659,7 @@ delete_queue(QRes, Username) ->
16531659 case rabbit_amqqueue :with (
16541660 QRes ,
16551661 fun (Q ) ->
1656- io : format ( " Delete queue ~p~n " , [ rabbit_queue_type :delete (Q , false , false , Username )] )
1662+ rabbit_queue_type :delete (Q , false , false , Username )
16571663 end ,
16581664 fun (not_found ) ->
16591665 ok ;
@@ -1693,7 +1699,7 @@ ensure_binding(QName, {Exchange, RoutingKey}, _State = #state{cfg = #cfg{
16931699 ok ->
16941700 ok
16951701 end ,
1696- io :format (" rabbit_binding:add ~p ~p~n " , [Binding , Res ]),
1702+ % % io:format("rabbit_binding:add ~p ~p~n", [Binding, Res]),
16971703 Res .
16981704
16991705check_resource_access (User , Resource , Perm , Context ) ->
@@ -1911,18 +1917,22 @@ new_amqqueue(QNameBin0, Type, Params0, _State = #state{user = #user{username = U
19111917 false -> [{auto_delete , true }, {exclusive , true } | Params0 ];
19121918 true -> Params0
19131919 end ,
1914-
1915- amqqueue :new (QName ,
1916- none ,
1917- proplists :get_value (durable , Params , false ),
1918- proplists :get_value (auto_delete , Params , false ),
1919- case proplists :get_value (exclusive , Params , false ) of
1920- false -> none ;
1921- true -> self ()
1922- end ,
1923- proplists :get_value (arguments , Params , []),
1924- VHost ,
1925- #{user => Username }).
1920+ Args = proplists :get_value (arguments , Params , []),
1921+
1922+ AMQ = amqqueue :new (QName ,
1923+ none ,
1924+ proplists :get_value (durable , Params , false ),
1925+ proplists :get_value (auto_delete , Params , false ),
1926+ case proplists :get_value (exclusive , Params , false ) of
1927+ false -> none ;
1928+ true -> self ()
1929+ end ,
1930+ Args ,
1931+ VHost ,
1932+ #{user => Username },
1933+ rabbit_amqqueue :get_queue_type (Args )),
1934+ % % io:format("~p", [AMQ]),
1935+ AMQ .
19261936
19271937
19281938to_url ([]) -> [];
0 commit comments