summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Wragg <david@rabbitmq.com>2010-07-26 03:09:38 +0100
committerDavid Wragg <david@rabbitmq.com>2010-07-26 03:09:38 +0100
commit7290a2692cd0f597573de51599c9b50088c02f90 (patch)
tree39866d75e726fe2817030e4205f68831b63d3551
parent6cc7fe86a01628483646a0b1eca423a9d8a34025 (diff)
downloadrabbitmq-c-github-ask-7290a2692cd0f597573de51599c9b50088c02f90.tar.gz
Fold amqp_end_connection socket closing into amqp_destroy_connection
-rw-r--r--examples/amqp_bind.c2
-rw-r--r--examples/amqp_consumer.c2
-rw-r--r--examples/amqp_exchange_declare.c2
-rw-r--r--examples/amqp_listen.c2
-rw-r--r--examples/amqp_listenq.c2
-rw-r--r--examples/amqp_producer.c2
-rw-r--r--examples/amqp_sendstring.c2
-rw-r--r--examples/amqp_unbind.c2
-rw-r--r--librabbitmq/amqp.h5
-rw-r--r--librabbitmq/amqp_connection.c12
-rw-r--r--tools/common.c2
11 files changed, 16 insertions, 19 deletions
diff --git a/examples/amqp_bind.c b/examples/amqp_bind.c
index cf7c377..1f183a5 100644
--- a/examples/amqp_bind.c
+++ b/examples/amqp_bind.c
@@ -99,6 +99,6 @@ int main(int argc, char const * const *argv) {
die_on_amqp_error(amqp_channel_close(conn, 1, AMQP_REPLY_SUCCESS), "Closing channel");
die_on_amqp_error(amqp_connection_close(conn, AMQP_REPLY_SUCCESS), "Closing connection");
- die_on_error(amqp_end_connection(conn), "Ending connection");
+ die_on_error(amqp_destroy_connection(conn), "Ending connection");
return 0;
}
diff --git a/examples/amqp_consumer.c b/examples/amqp_consumer.c
index 5dfbb33..6b24d8c 100644
--- a/examples/amqp_consumer.c
+++ b/examples/amqp_consumer.c
@@ -184,7 +184,7 @@ int main(int argc, char const * const *argv) {
die_on_amqp_error(amqp_channel_close(conn, 1, AMQP_REPLY_SUCCESS), "Closing channel");
die_on_amqp_error(amqp_connection_close(conn, AMQP_REPLY_SUCCESS), "Closing connection");
- die_on_error(amqp_end_connection(conn), "Ending connection");
+ die_on_error(amqp_destroy_connection(conn), "Ending connection");
return 0;
}
diff --git a/examples/amqp_exchange_declare.c b/examples/amqp_exchange_declare.c
index 32e71b0..27bff1a 100644
--- a/examples/amqp_exchange_declare.c
+++ b/examples/amqp_exchange_declare.c
@@ -94,6 +94,6 @@ int main(int argc, char const * const *argv) {
die_on_amqp_error(amqp_channel_close(conn, 1, AMQP_REPLY_SUCCESS), "Closing channel");
die_on_amqp_error(amqp_connection_close(conn, AMQP_REPLY_SUCCESS), "Closing connection");
- die_on_error(amqp_end_connection(conn), "Ending connection");
+ die_on_error(amqp_destroy_connection(conn), "Ending connection");
return 0;
}
diff --git a/examples/amqp_listen.c b/examples/amqp_listen.c
index 412dcd5..6025e5c 100644
--- a/examples/amqp_listen.c
+++ b/examples/amqp_listen.c
@@ -187,7 +187,7 @@ int main(int argc, char const * const *argv) {
die_on_amqp_error(amqp_channel_close(conn, 1, AMQP_REPLY_SUCCESS), "Closing channel");
die_on_amqp_error(amqp_connection_close(conn, AMQP_REPLY_SUCCESS), "Closing connection");
- die_on_error(amqp_end_connection(conn), "Ending connection");
+ die_on_error(amqp_destroy_connection(conn), "Ending connection");
return 0;
}
diff --git a/examples/amqp_listenq.c b/examples/amqp_listenq.c
index 1fc7db0..94d89eb 100644
--- a/examples/amqp_listenq.c
+++ b/examples/amqp_listenq.c
@@ -171,7 +171,7 @@ int main(int argc, char const * const *argv) {
die_on_amqp_error(amqp_channel_close(conn, 1, AMQP_REPLY_SUCCESS), "Closing channel");
die_on_amqp_error(amqp_connection_close(conn, AMQP_REPLY_SUCCESS), "Closing connection");
- die_on_error(amqp_end_connection(conn), "Ending connection");
+ die_on_error(amqp_destroy_connection(conn), "Ending connection");
return 0;
}
diff --git a/examples/amqp_producer.c b/examples/amqp_producer.c
index 61cc925..b83e030 100644
--- a/examples/amqp_producer.c
+++ b/examples/amqp_producer.c
@@ -151,6 +151,6 @@ int main(int argc, char const * const *argv) {
die_on_amqp_error(amqp_channel_close(conn, 1, AMQP_REPLY_SUCCESS), "Closing channel");
die_on_amqp_error(amqp_connection_close(conn, AMQP_REPLY_SUCCESS), "Closing connection");
- die_on_error(amqp_end_connection(conn), "Ending connection");
+ die_on_error(amqp_destroy_connection(conn), "Ending connection");
return 0;
}
diff --git a/examples/amqp_sendstring.c b/examples/amqp_sendstring.c
index e669505..ccd3866 100644
--- a/examples/amqp_sendstring.c
+++ b/examples/amqp_sendstring.c
@@ -108,6 +108,6 @@ int main(int argc, char const * const *argv) {
die_on_amqp_error(amqp_channel_close(conn, 1, AMQP_REPLY_SUCCESS), "Closing channel");
die_on_amqp_error(amqp_connection_close(conn, AMQP_REPLY_SUCCESS), "Closing connection");
- die_on_error(amqp_end_connection(conn), "Ending connection");
+ die_on_error(amqp_destroy_connection(conn), "Ending connection");
return 0;
}
diff --git a/examples/amqp_unbind.c b/examples/amqp_unbind.c
index bc92efe..4b92e12 100644
--- a/examples/amqp_unbind.c
+++ b/examples/amqp_unbind.c
@@ -99,6 +99,6 @@ int main(int argc, char const * const *argv) {
die_on_amqp_error(amqp_channel_close(conn, 1, AMQP_REPLY_SUCCESS), "Closing channel");
die_on_amqp_error(amqp_connection_close(conn, AMQP_REPLY_SUCCESS), "Closing connection");
- die_on_error(amqp_end_connection(conn), "Ending connection");
+ die_on_error(amqp_destroy_connection(conn), "Ending connection");
return 0;
}
diff --git a/librabbitmq/amqp.h b/librabbitmq/amqp.h
index fa76637..58d042c 100644
--- a/librabbitmq/amqp.h
+++ b/librabbitmq/amqp.h
@@ -308,9 +308,8 @@ extern int amqp_tune_connection(amqp_connection_state_t state,
int channel_max,
int frame_max,
int heartbeat);
-int amqp_get_channel_max(amqp_connection_state_t state);
-extern void amqp_destroy_connection(amqp_connection_state_t state);
-extern int amqp_end_connection(amqp_connection_state_t state);
+extern int amqp_get_channel_max(amqp_connection_state_t state);
+extern int amqp_destroy_connection(amqp_connection_state_t state);
extern int amqp_handle_input(amqp_connection_state_t state,
amqp_bytes_t received_data,
diff --git a/librabbitmq/amqp_connection.c b/librabbitmq/amqp_connection.c
index 5b5e813..3d95e98 100644
--- a/librabbitmq/amqp_connection.c
+++ b/librabbitmq/amqp_connection.c
@@ -158,22 +158,20 @@ int amqp_get_channel_max(amqp_connection_state_t state) {
return state->channel_max;
}
-void amqp_destroy_connection(amqp_connection_state_t state) {
+int amqp_destroy_connection(amqp_connection_state_t state) {
+ int s = state->sockfd;
+
empty_amqp_pool(&state->frame_pool);
empty_amqp_pool(&state->decoding_pool);
free(state->outbound_buffer.bytes);
free(state->sock_inbound_buffer.bytes);
free(state);
-}
-int amqp_end_connection(amqp_connection_state_t state) {
- int s = state->sockfd;
- amqp_destroy_connection(state);
- if (amqp_socket_close(s) < 0)
+ if (s >= 0 && amqp_socket_close(s) < 0)
return -amqp_socket_error();
else
return 0;
-}
+}
static void return_to_idle(amqp_connection_state_t state) {
state->inbound_buffer.bytes = NULL;
diff --git a/tools/common.c b/tools/common.c
index 39099c1..1d8fbd8 100644
--- a/tools/common.c
+++ b/tools/common.c
@@ -236,7 +236,7 @@ void close_connection(amqp_connection_state_t conn)
die_rpc(amqp_connection_close(conn, AMQP_REPLY_SUCCESS),
"closing connection");
- res = amqp_end_connection(conn);
+ res = amqp_destroy_connection(conn);
die_amqp_error(-res, "closing connection");
}