Cope with Qpid brokenness

This commit is contained in:
Tony Garnock-Jones 2012-05-10 11:46:16 -04:00
parent 1512e12c2c
commit 215d869b51
1 changed files with 10 additions and 0 deletions

View File

@ -282,6 +282,11 @@ let handle_method conn channel m =
send_method conn channel Channel_close_ok;
| Channel_close_ok ->
return ()
| Exchange_declare ("", type_, passive, durable, no_wait, arguments) ->
(* Qpid does this bizarre thing of declaring the default exchange. *)
if no_wait
then return ()
else send_method conn channel Exchange_declare_ok
| Exchange_declare (exchange, type_, passive, durable, no_wait, arguments) ->
Node.send_ignore' "factory" (Message.create (Sexp.Str type_,
Sexp.Arr [Sexp.Str exchange],
@ -294,6 +299,11 @@ let handle_method conn channel m =
Sexp.Arr [Sexp.Str queue],
Sexp.Str conn.name.Node.label,
Sexp.Str "Queue_declare_reply"))
| Queue_bind (queue, "", routing_key, no_wait, arguments) ->
(* Qpid does this bizarre thing of binding to the default exchange. *)
if no_wait
then return ()
else send_method conn channel Queue_bind_ok
| Queue_bind (queue, exchange, routing_key, no_wait, arguments) ->
let queue = expand_mrdq conn queue in
if not (Node.approx_exists queue)