@@ -769,7 +769,9 @@ handle_clean_start(_, QoS, State = #state{cfg = #cfg{clean_start = true}}) ->
769769 ok ->
770770 {ok , SessPresent , State };
771771 {error , access_refused } ->
772- {error , ? RC_NOT_AUTHORIZED }
772+ {error , ? RC_NOT_AUTHORIZED };
773+ {error , _Reason } ->
774+ {error , ? RC_IMPLEMENTATION_SPECIFIC_ERROR }
773775 end
774776 end ;
775777handle_clean_start (SessPresent , QoS ,
@@ -991,7 +993,8 @@ clear_will_msg(#state{cfg = #cfg{vhost = Vhost,
991993 QName = # resource {virtual_host = Vhost , kind = queue , name = QNameBin },
992994 case delete_queue (QName , State ) of
993995 ok -> ok ;
994- {error , access_refused } -> {error , ? RC_NOT_AUTHORIZED }
996+ {error , access_refused } -> {error , ? RC_NOT_AUTHORIZED };
997+ {error , _Reason } -> {error , ? RC_IMPLEMENTATION_SPECIFIC_ERROR }
995998 end .
996999
9971000make_will_msg (# mqtt_packet_connect {will_flag = false }) ->
@@ -1323,8 +1326,10 @@ ensure_queue(QoS, State) ->
13231326 case delete_queue (QName , State ) of
13241327 ok ->
13251328 create_queue (QoS , State );
1326- {error , access_refused } = E ->
1327- E
1329+ {error , _ } = Err ->
1330+ Err ;
1331+ {protocol_error , _ , _ , _ } = Err ->
1332+ {error , Err }
13281333 end ;
13291334 {error , not_found } ->
13301335 create_queue (QoS , State )
@@ -1829,7 +1834,10 @@ maybe_delete_mqtt_qos0_queue(_) ->
18291834 ok .
18301835
18311836-spec delete_queue (rabbit_amqqueue :name (), state ()) ->
1832- ok | {error , access_refused }.
1837+ ok |
1838+ {error , access_refused } |
1839+ {error , timeout } |
1840+ {protocol_error , Type :: atom (), Reason :: string (), Args :: term ()}.
18331841delete_queue (QName ,
18341842 # state {auth_state = # auth_state {
18351843 user = User = # user {username = Username },
@@ -1841,8 +1849,12 @@ delete_queue(QName,
18411849 fun (Q ) ->
18421850 case check_resource_access (User , QName , configure , AuthzCtx ) of
18431851 ok ->
1844- {ok , _N } = rabbit_queue_type :delete (Q , false , false , Username ),
1845- ok ;
1852+ case rabbit_queue_type :delete (Q , false , false , Username ) of
1853+ {ok , _ } ->
1854+ ok ;
1855+ Err ->
1856+ Err
1857+ end ;
18461858 Err ->
18471859 Err
18481860 end
0 commit comments