From 9626dd5cd5f78894f1416a1afd2d624ddd4904ae Mon Sep 17 00:00:00 2001 From: Alan Antonuk Date: Sun, 19 Oct 2014 13:10:13 -0700 Subject: Enable auto_delete & internal for exchange.declare Enable auto_delete and internal parameters of amqp_exchange_declare() in codegen. These were once not generated because RabbitMQ did not support these parameters. The broker now supports these and so should we. This fixes #218 --- examples/amqp_exchange_declare.c | 2 +- examples/amqps_exchange_declare.c | 2 +- librabbitmq/amqp_framing.c | 8 +++++--- librabbitmq/amqp_framing.h | 4 +++- librabbitmq/codegen.py | 1 - 5 files changed, 10 insertions(+), 7 deletions(-) diff --git a/examples/amqp_exchange_declare.c b/examples/amqp_exchange_declare.c index 9a20a62..16ebe14 100644 --- a/examples/amqp_exchange_declare.c +++ b/examples/amqp_exchange_declare.c @@ -82,7 +82,7 @@ int main(int argc, char const *const *argv) die_on_amqp_error(amqp_get_rpc_reply(conn), "Opening channel"); amqp_exchange_declare(conn, 1, amqp_cstring_bytes(exchange), amqp_cstring_bytes(exchangetype), - 0, 0, amqp_empty_table); + 0, 0, 0, 0, amqp_empty_table); die_on_amqp_error(amqp_get_rpc_reply(conn), "Declaring exchange"); die_on_amqp_error(amqp_channel_close(conn, 1, AMQP_REPLY_SUCCESS), "Closing channel"); diff --git a/examples/amqps_exchange_declare.c b/examples/amqps_exchange_declare.c index 85a29aa..d53fa2e 100644 --- a/examples/amqps_exchange_declare.c +++ b/examples/amqps_exchange_declare.c @@ -99,7 +99,7 @@ int main(int argc, char const *const *argv) die_on_amqp_error(amqp_get_rpc_reply(conn), "Opening channel"); amqp_exchange_declare(conn, 1, amqp_cstring_bytes(exchange), amqp_cstring_bytes(exchangetype), - 0, 0, amqp_empty_table); + 0, 0, 0, 0, amqp_empty_table); die_on_amqp_error(amqp_get_rpc_reply(conn), "Declaring exchange"); die_on_amqp_error(amqp_channel_close(conn, 1, AMQP_REPLY_SUCCESS), "Closing channel"); diff --git a/librabbitmq/amqp_framing.c b/librabbitmq/amqp_framing.c index 64c30bb..76fc0cc 100644 --- a/librabbitmq/amqp_framing.c +++ b/librabbitmq/amqp_framing.c @@ -1926,12 +1926,14 @@ AMQP_CALL amqp_channel_flow(amqp_connection_state_t state, amqp_channel_t channe * @param [in] type type * @param [in] passive passive * @param [in] durable durable + * @param [in] auto_delete auto_delete + * @param [in] internal internal * @param [in] arguments arguments * @returns amqp_exchange_declare_ok_t */ AMQP_PUBLIC_FUNCTION amqp_exchange_declare_ok_t * -AMQP_CALL amqp_exchange_declare(amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t exchange, amqp_bytes_t type, amqp_boolean_t passive, amqp_boolean_t durable, amqp_table_t arguments) +AMQP_CALL amqp_exchange_declare(amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t exchange, amqp_bytes_t type, amqp_boolean_t passive, amqp_boolean_t durable, amqp_boolean_t auto_delete, amqp_boolean_t internal, amqp_table_t arguments) { amqp_exchange_declare_t req; req.ticket = 0; @@ -1939,8 +1941,8 @@ AMQP_CALL amqp_exchange_declare(amqp_connection_state_t state, amqp_channel_t ch req.type = type; req.passive = passive; req.durable = durable; - req.auto_delete = 0; - req.internal = 0; + req.auto_delete = auto_delete; + req.internal = internal; req.nowait = 0; req.arguments = arguments; diff --git a/librabbitmq/amqp_framing.h b/librabbitmq/amqp_framing.h index 1179012..e392dcc 100644 --- a/librabbitmq/amqp_framing.h +++ b/librabbitmq/amqp_framing.h @@ -788,12 +788,14 @@ AMQP_CALL amqp_channel_flow(amqp_connection_state_t state, amqp_channel_t channe * @param [in] type type * @param [in] passive passive * @param [in] durable durable + * @param [in] auto_delete auto_delete + * @param [in] internal internal * @param [in] arguments arguments * @returns amqp_exchange_declare_ok_t */ AMQP_PUBLIC_FUNCTION amqp_exchange_declare_ok_t * -AMQP_CALL amqp_exchange_declare(amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t exchange, amqp_bytes_t type, amqp_boolean_t passive, amqp_boolean_t durable, amqp_table_t arguments); +AMQP_CALL amqp_exchange_declare(amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t exchange, amqp_bytes_t type, amqp_boolean_t passive, amqp_boolean_t durable, amqp_boolean_t auto_delete, amqp_boolean_t internal, amqp_table_t arguments); /** * amqp_exchange_delete * diff --git a/librabbitmq/codegen.py b/librabbitmq/codegen.py index 6611716..510a071 100644 --- a/librabbitmq/codegen.py +++ b/librabbitmq/codegen.py @@ -225,7 +225,6 @@ apiMethodInfo = { "amqp_channel_open": ["out_of_band"], "amqp_channel_close": False, # needs special handling "amqp_access_request": False, # huh? - "amqp_exchange_declare": ["auto_delete", "internal"], "amqp_basic_get": False, # get-ok has content } -- cgit v1.2.1