summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Antonuk <alan.antonuk@gmail.com>2014-10-19 13:10:13 -0700
committerAlan Antonuk <alan.antonuk@gmail.com>2014-10-19 13:10:13 -0700
commit9626dd5cd5f78894f1416a1afd2d624ddd4904ae (patch)
tree55540078f96ea519c239f5710c2a0b05af5f8218
parent2340b039f029f3b8101a164d3bcd547be1106906 (diff)
downloadrabbitmq-c-github-ask-9626dd5cd5f78894f1416a1afd2d624ddd4904ae.tar.gz
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
-rw-r--r--examples/amqp_exchange_declare.c2
-rw-r--r--examples/amqps_exchange_declare.c2
-rw-r--r--librabbitmq/amqp_framing.c8
-rw-r--r--librabbitmq/amqp_framing.h4
-rw-r--r--librabbitmq/codegen.py1
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
}