You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by as...@apache.org on 2017/10/02 21:33:16 UTC
qpid-proton git commit: PROTON-1607: Make sure C examples are valid
C89 so that VS 2010 can compile them
Repository: qpid-proton
Updated Branches:
refs/heads/master b0a0633be -> 9e862258f
PROTON-1607: Make sure C examples are valid C89 so that VS 2010 can compile them
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/9e862258
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/9e862258
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/9e862258
Branch: refs/heads/master
Commit: 9e862258f10a7c1ce16b4ca644202cc4c3e5af57
Parents: b0a0633
Author: Andrew Stitcher <as...@apache.org>
Authored: Mon Oct 2 17:28:45 2017 -0400
Committer: Andrew Stitcher <as...@apache.org>
Committed: Mon Oct 2 17:27:47 2017 -0400
----------------------------------------------------------------------
examples/c/broker.c | 48 ++++++++++++++++++++++++++++----------------
examples/c/direct.c | 14 +++++++++----
examples/c/receive.c | 15 +++++++++-----
examples/c/send-abort.c | 20 ++++++++++++------
examples/c/send.c | 16 +++++++++++----
examples/c/thread.h | 6 ++----
6 files changed, 79 insertions(+), 40 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/9e862258/examples/c/broker.c
----------------------------------------------------------------------
diff --git a/examples/c/broker.c b/examples/c/broker.c
index 3a4d04a..b509910 100644
--- a/examples/c/broker.c
+++ b/examples/c/broker.c
@@ -34,9 +34,9 @@
#define VEC_INIT(V) \
do { \
+ void **vp = (void**)&V.data; \
V.len = 0; \
V.cap = 16; \
- void **vp = (void**)&V.data; \
*vp = malloc(V.cap * sizeof(*V.data)); \
} while(0)
@@ -45,8 +45,8 @@
#define VEC_PUSH(V, X) \
do { \
if (V.len == V.cap) { \
- V.cap *= 2; \
void **vp = (void**)&V.data; \
+ V.cap *= 2; \
*vp = realloc(V.data, V.cap * sizeof(*V.data)); \
} \
V.data[V.len++] = X; \
@@ -78,12 +78,13 @@ static void queue_init(queue_t *q, const char* name, queue_t *next) {
}
static void queue_destroy(queue_t *q) {
+ size_t i;
pthread_mutex_destroy(&q->lock);
free(q->name);
- for (size_t i = 0; i < q->messages.len; ++i)
+ for (i = 0; i < q->messages.len; ++i)
free(q->messages.data[i].start);
VEC_FINAL(q->messages);
- for (size_t i = 0; i < q->waiting.len; ++i)
+ for (i = 0; i < q->waiting.len; ++i)
pn_decref(q->waiting.data[i]);
VEC_FINAL(q->waiting);
}
@@ -144,7 +145,8 @@ static void queue_receive(pn_proactor_t *d, queue_t *q, pn_rwbytes_t m) {
pthread_mutex_lock(&q->lock);
VEC_PUSH(q->messages, m);
if (q->messages.len == 1) { /* Was empty, notify waiting connections */
- for (size_t i = 0; i < q->waiting.len; ++i) {
+ size_t i;
+ for (i = 0; i < q->waiting.len; ++i) {
pn_connection_t *c = q->waiting.data[i];
set_check_queues(c, true);
pn_connection_wake(c); /* Wake the connection */
@@ -167,7 +169,8 @@ void queues_init(queues_t *qs) {
}
void queues_destroy(queues_t *qs) {
- for (queue_t *q = qs->queues; q; q = q->next) {
+ queue_t *q;
+ for (q = qs->queues; q; q = q->next) {
queue_destroy(q);
free(q);
}
@@ -176,8 +179,8 @@ void queues_destroy(queues_t *qs) {
/** Get or create the named queue. */
queue_t* queues_get(queues_t *qs, const char* name) {
- pthread_mutex_lock(&qs->lock);
queue_t *q;
+ pthread_mutex_lock(&qs->lock);
for (q = qs->queues; q && strcmp(q->name, name) != 0; q = q->next)
;
if (!q) {
@@ -213,8 +216,9 @@ static void link_send(broker_t *b, pn_link_t *s) {
}
static void queue_unsub(queue_t *q, pn_connection_t *c) {
+ size_t i;
pthread_mutex_lock(&q->lock);
- for (size_t i = 0; i < q->waiting.len; ++i) {
+ for (i = 0; i < q->waiting.len; ++i) {
if (q->waiting.data[i] == c){
q->waiting.data[i] = q->waiting.data[0]; /* save old [0] */
VEC_POP(q->waiting);
@@ -237,13 +241,15 @@ static void link_unsub(broker_t *b, pn_link_t *s) {
/* Called in connection's event loop when a connection is woken for messages.*/
static void connection_unsub(broker_t *b, pn_connection_t *c) {
- for (pn_link_t *l = pn_link_head(c, 0); l != NULL; l = pn_link_next(l, 0))
+ pn_link_t *l;
+ for (l = pn_link_head(c, 0); l != NULL; l = pn_link_next(l, 0))
link_unsub(b, l);
}
static void session_unsub(broker_t *b, pn_session_t *ssn) {
pn_connection_t *c = pn_session_connection(ssn);
- for (pn_link_t *l = pn_link_head(c, 0); l != NULL; l = pn_link_next(l, 0)) {
+ pn_link_t *l;
+ for (l = pn_link_head(c, 0); l != NULL; l = pn_link_next(l, 0)) {
if (pn_link_session(l) == ssn)
link_unsub(b, l);
}
@@ -289,9 +295,10 @@ static void handle(broker_t* b, pn_event_t* e) {
}
case PN_CONNECTION_WAKE: {
if (get_check_queues(c)) {
- set_check_queues(c, false);
int flags = PN_LOCAL_ACTIVE&PN_REMOTE_ACTIVE;
- for (pn_link_t *l = pn_link_head(c, flags); l != NULL; l = pn_link_next(l, flags))
+ pn_link_t *l;
+ set_check_queues(c, false);
+ for (l = pn_link_head(c, flags); l != NULL; l = pn_link_next(l, flags))
link_send(b, l);
}
break;
@@ -331,9 +338,10 @@ static void handle(broker_t* b, pn_event_t* e) {
pn_link_t *l = pn_delivery_link(d);
size_t size = pn_delivery_pending(d);
pn_rwbytes_t* m = message_buffer(l); /* Append data to incoming message buffer */
+ int err;
m->size += size;
m->start = (char*)realloc(m->start, m->size);
- int err = pn_link_recv(l, m->start, m->size);
+ err = pn_link_recv(l, m->start, m->size);
if (err < 0 && err != PN_EOS) {
fprintf(stderr, "PN_DELIVERY error: %s\n", pn_code(err));
pn_delivery_settle(d); /* Free the delivery so we can receive the next message */
@@ -409,30 +417,36 @@ static void* broker_thread(void *void_broker) {
}
int main(int argc, char **argv) {
+ const char *host = (argc > 1) ? argv[1] : "";
+ const char *port = (argc > 2) ? argv[2] : "amqp";
+
broker_t b = {0};
b.proactor = pn_proactor();
queues_init(&b.queues);
b.container_id = argv[0];
b.threads = 4;
- const char *host = (argc > 1) ? argv[1] : "";
- const char *port = (argc > 2) ? argv[2] : "amqp";
+ {
/* Listen on addr */
char addr[PN_MAX_ADDR];
pn_proactor_addr(addr, sizeof(addr), host, port);
pn_proactor_listen(b.proactor, pn_listener(), addr, 16);
+ }
+ {
/* Start n-1 threads */
pthread_t* threads = (pthread_t*)calloc(sizeof(pthread_t), b.threads);
- for (size_t i = 0; i < b.threads-1; ++i) {
+ size_t i;
+ for (i = 0; i < b.threads-1; ++i) {
pthread_create(&threads[i], NULL, broker_thread, &b);
}
broker_thread(&b); /* Use the main thread too. */
/* Join the other threads */
- for (size_t i = 0; i < b.threads-1; ++i) {
+ for (i = 0; i < b.threads-1; ++i) {
pthread_join(threads[i], NULL);
}
pn_proactor_free(b.proactor);
free(threads);
return 0;
+ }
}
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/9e862258/examples/c/direct.c
----------------------------------------------------------------------
diff --git a/examples/c/direct.c b/examples/c/direct.c
index f55519e..5f72ba7 100644
--- a/examples/c/direct.c
+++ b/examples/c/direct.c
@@ -78,8 +78,8 @@ static void check_condition(pn_event_t *e, pn_condition_t *cond, app_data_t *app
static pn_bytes_t encode_message(app_data_t* app) {
/* Construct a message with the map { "sequence": app.sent } */
pn_message_t* message = pn_message();
- pn_data_put_int(pn_message_id(message), app->sent); /* Set the message_id also */
pn_data_t* body = pn_message_body(message);
+ pn_data_put_int(pn_message_id(message), app->sent); /* Set the message_id also */
pn_data_put_map(body);
pn_data_enter(body);
pn_data_put_string(body, pn_bytes(sizeof("sequence")-1, "sequence"));
@@ -93,6 +93,7 @@ static pn_bytes_t encode_message(app_data_t* app) {
}
/* app->msgout is the total buffer space available. */
/* mbuf wil point at just the portion used by the encoded message */
+ {
pn_rwbytes_t mbuf = pn_rwbytes(app->msgout.size, app->msgout.start);
int status = 0;
while ((status = pn_message_encode(message, mbuf.start, &mbuf.size)) == PN_OVERFLOW) {
@@ -106,6 +107,7 @@ static pn_bytes_t encode_message(app_data_t* app) {
}
pn_message_free(message);
return pn_bytes(mbuf.size, mbuf.start);
+ }
}
static void decode_message(pn_rwbytes_t data) {
@@ -142,9 +144,10 @@ static void handle_receive(app_data_t* app, pn_event_t* event) {
pn_link_t *l = pn_delivery_link(d);
size_t size = pn_delivery_pending(d);
pn_rwbytes_t* m = &app->msgin; /* Append data to incoming message buffer */
+ int err;
m->size += size;
m->start = (char*)realloc(m->start, m->size);
- int err = pn_link_recv(l, m->start, m->size);
+ err = pn_link_recv(l, m->start, m->size);
if (err < 0 && err != PN_EOS) {
fprintf(stderr, "PN_DELIVERY error: %s\n", pn_code(err));
pn_delivery_settle(d); /* Free the delivery so we can receive the next message */
@@ -189,9 +192,11 @@ static void handle_send(app_data_t* app, pn_event_t* event) {
++app->sent;
// Use sent counter as unique delivery tag.
pn_delivery(sender, pn_dtag((const char *)&app->sent, sizeof(app->sent)));
+ {
pn_bytes_t msgbuf = encode_message(app);
pn_link_send(sender, msgbuf.start, msgbuf.size);
pn_link_advance(sender);
+ }
}
break;
}
@@ -301,7 +306,8 @@ void run(app_data_t *app) {
/* Loop and handle events */
do {
pn_event_batch_t *events = pn_proactor_wait(app->proactor);
- for (pn_event_t *e = pn_event_batch_next(events); e; e = pn_event_batch_next(events)) {
+ pn_event_t *e;
+ for (e = pn_event_batch_next(events); e; e = pn_event_batch_next(events)) {
if (!handle(app, e)) {
return;
}
@@ -312,6 +318,7 @@ void run(app_data_t *app) {
int main(int argc, char **argv) {
struct app_data_t app = {0};
+ char addr[PN_MAX_ADDR];
app.container_id = argv[0]; /* Should be unique */
app.host = (argc > 1) ? argv[1] : "";
app.port = (argc > 2) ? argv[2] : "amqp";
@@ -321,7 +328,6 @@ int main(int argc, char **argv) {
/* Create the proactor and connect */
app.proactor = pn_proactor();
app.listener = pn_listener();
- char addr[PN_MAX_ADDR];
pn_proactor_addr(addr, sizeof(addr), app.host, app.port);
pn_proactor_listen(app.proactor, app.listener, addr, 16);
run(&app);
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/9e862258/examples/c/receive.c
----------------------------------------------------------------------
diff --git a/examples/c/receive.c b/examples/c/receive.c
index 7df955a..16f1a66 100644
--- a/examples/c/receive.c
+++ b/examples/c/receive.c
@@ -79,27 +79,30 @@ static bool handle(app_data_t* app, pn_event_t* event) {
case PN_CONNECTION_INIT: {
pn_connection_t* c = pn_event_connection(event);
+ pn_session_t* s = pn_session(c);
pn_connection_set_container(c, app->container_id);
pn_connection_open(c);
- pn_session_t* s = pn_session(c);
pn_session_open(s);
+ {
pn_link_t* l = pn_receiver(s, "my_receiver");
pn_terminus_set_address(pn_link_source(l), app->amqp_address);
pn_link_open(l);
/* cannot receive without granting credit: */
pn_link_flow(l, app->message_count ? app->message_count : BATCH);
+ }
} break;
case PN_DELIVERY: {
/* A message has been received */
pn_delivery_t *d = pn_event_delivery(event);
+ int err;
if (pn_delivery_readable(d)) {
pn_link_t *l = pn_delivery_link(d);
size_t size = pn_delivery_pending(d);
pn_rwbytes_t* m = &app->msgin; /* Append data to incoming message buffer */
m->size += size;
m->start = (char*)realloc(m->start, m->size);
- int err = pn_link_recv(l, m->start, m->size);
+ err = pn_link_recv(l, m->start, m->size);
if (err < 0 && err != PN_EOS) {
fprintf(stderr, "PN_DELIVERY error: %s\n", pn_code(err));
pn_delivery_settle(d); /* Free the delivery so we can receive the next message */
@@ -117,8 +120,8 @@ static bool handle(app_data_t* app, pn_event_t* event) {
pn_link_flow(l, BATCH - pn_link_credit(l));
}
} else if (++app->received >= app->message_count) {
- printf("%d messages received\n", app->received);
pn_session_t *ssn = pn_link_session(l);
+ printf("%d messages received\n", app->received);
pn_link_close(l);
pn_session_close(ssn);
pn_connection_close(pn_session_connection(ssn));
@@ -162,7 +165,8 @@ void run(app_data_t *app) {
/* Loop and handle events */
do {
pn_event_batch_t *events = pn_proactor_wait(app->proactor);
- for (pn_event_t *e = pn_event_batch_next(events); e; e = pn_event_batch_next(events)) {
+ pn_event_t *e;
+ for (e = pn_event_batch_next(events); e; e = pn_event_batch_next(events)) {
if (!handle(app, e) || exit_code != 0) {
return;
}
@@ -173,6 +177,8 @@ void run(app_data_t *app) {
int main(int argc, char **argv) {
struct app_data_t app = {0};
+ char addr[PN_MAX_ADDR];
+
app.container_id = argv[0]; /* Should be unique */
app.host = (argc > 1) ? argv[1] : "";
app.port = (argc > 2) ? argv[2] : "amqp";
@@ -181,7 +187,6 @@ int main(int argc, char **argv) {
/* Create the proactor and connect */
app.proactor = pn_proactor();
- char addr[PN_MAX_ADDR];
pn_proactor_addr(addr, sizeof(addr), app.host, app.port);
pn_proactor_connect(app.proactor, pn_connection(), addr);
run(&app);
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/9e862258/examples/c/send-abort.c
----------------------------------------------------------------------
diff --git a/examples/c/send-abort.c b/examples/c/send-abort.c
index 535a416..fcf3550 100644
--- a/examples/c/send-abort.c
+++ b/examples/c/send-abort.c
@@ -78,10 +78,12 @@ static pn_bytes_t encode_message(app_data_t* app) {
/* Construct a message with the map { "sequence": app.sent } */
pn_message_t* message = pn_message();
char data[MSG_SIZE + 11];
- for (size_t i=0; i<MSG_SIZE; i+=10)
+ size_t i;
+ pn_data_t* body;
+ for (i=0; i<MSG_SIZE; i+=10)
sprintf(&data[i], "<%09zu", i);
pn_data_put_int(pn_message_id(message), app->sent); /* Set the message_id also */
- pn_data_t* body = pn_message_body(message);
+ body = pn_message_body(message);
pn_data_enter(body);
pn_data_put_string(body, pn_bytes(MSG_SIZE, data));
pn_data_exit(body);
@@ -93,6 +95,7 @@ static pn_bytes_t encode_message(app_data_t* app) {
}
/* app->message_buffer is the total buffer space available. */
/* mbuf wil point at just the portion used by the encoded message */
+ {
pn_rwbytes_t mbuf = pn_rwbytes(app->message_buffer.size, app->message_buffer.start);
int status = 0;
while ((status = pn_message_encode(message, mbuf.start, &mbuf.size)) == PN_OVERFLOW) {
@@ -106,6 +109,7 @@ static pn_bytes_t encode_message(app_data_t* app) {
}
pn_message_free(message);
return pn_bytes(mbuf.size, mbuf.start);
+ }
}
/* Returns true to continue, false if finished */
@@ -114,14 +118,16 @@ static bool handle(app_data_t* app, pn_event_t* event) {
case PN_CONNECTION_INIT: {
pn_connection_t* c = pn_event_connection(event);
+ pn_session_t* s = pn_session(pn_event_connection(event));
pn_connection_set_container(c, app->container_id);
pn_connection_open(c);
- pn_session_t* s = pn_session(pn_event_connection(event));
pn_session_open(s);
+ {
pn_link_t* l = pn_sender(s, "my_sender");
pn_terminus_set_address(pn_link_target(l), app->amqp_address);
pn_link_open(l);
break;
+ }
}
case PN_LINK_FLOW: {
@@ -129,9 +135,9 @@ static bool handle(app_data_t* app, pn_event_t* event) {
pn_link_t *sender = pn_event_link(event);
while (app->in_progress || (pn_link_credit(sender) > 0 && app->sent < app->message_count)) {
if (!app->in_progress) {
+ pn_bytes_t msgbuf = encode_message(app);
// Use sent counter as unique delivery tag.
pn_delivery(sender, pn_dtag((const char *)&app->sent, sizeof(app->sent)));
- pn_bytes_t msgbuf = encode_message(app);
pn_link_send(sender, msgbuf.start, msgbuf.size - HOLDBACK); // Send some part of message
app->in_progress = true;
// Return from this link flow event and abort the message on next,
@@ -193,7 +199,8 @@ void run(app_data_t *app) {
/* Loop and handle events */
do {
pn_event_batch_t *events = pn_proactor_wait(app->proactor);
- for (pn_event_t *e = pn_event_batch_next(events); e; e = pn_event_batch_next(events)) {
+ pn_event_t* e;
+ for (e = pn_event_batch_next(events); e; e = pn_event_batch_next(events)) {
if (!handle(app, e)) {
return;
}
@@ -204,6 +211,8 @@ void run(app_data_t *app) {
int main(int argc, char **argv) {
struct app_data_t app = {0};
+ char addr[PN_MAX_ADDR];
+
app.container_id = argv[0]; /* Should be unique */
app.host = (argc > 1) ? argv[1] : "";
app.port = (argc > 2) ? argv[2] : "amqp";
@@ -211,7 +220,6 @@ int main(int argc, char **argv) {
app.message_count = (argc > 4) ? atoi(argv[4]) : 10;
app.proactor = pn_proactor();
- char addr[PN_MAX_ADDR];
pn_proactor_addr(addr, sizeof(addr), app.host, app.port);
pn_proactor_connect(app.proactor, pn_connection(), addr);
run(&app);
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/9e862258/examples/c/send.c
----------------------------------------------------------------------
diff --git a/examples/c/send.c b/examples/c/send.c
index c1a6244..9817164 100644
--- a/examples/c/send.c
+++ b/examples/c/send.c
@@ -58,8 +58,8 @@ static void check_condition(pn_event_t *e, pn_condition_t *cond) {
static pn_bytes_t encode_message(app_data_t* app) {
/* Construct a message with the map { "sequence": app.sent } */
pn_message_t* message = pn_message();
- pn_data_put_int(pn_message_id(message), app->sent); /* Set the message_id also */
pn_data_t* body = pn_message_body(message);
+ pn_data_put_int(pn_message_id(message), app->sent); /* Set the message_id also */
pn_data_put_map(body);
pn_data_enter(body);
pn_data_put_string(body, pn_bytes(sizeof("sequence")-1, "sequence"));
@@ -73,6 +73,7 @@ static pn_bytes_t encode_message(app_data_t* app) {
}
/* app->message_buffer is the total buffer space available. */
/* mbuf wil point at just the portion used by the encoded message */
+ {
pn_rwbytes_t mbuf = pn_rwbytes(app->message_buffer.size, app->message_buffer.start);
int status = 0;
while ((status = pn_message_encode(message, mbuf.start, &mbuf.size)) == PN_OVERFLOW) {
@@ -86,6 +87,7 @@ static pn_bytes_t encode_message(app_data_t* app) {
}
pn_message_free(message);
return pn_bytes(mbuf.size, mbuf.start);
+ }
}
/* Returns true to continue, false if finished */
@@ -94,14 +96,16 @@ static bool handle(app_data_t* app, pn_event_t* event) {
case PN_CONNECTION_INIT: {
pn_connection_t* c = pn_event_connection(event);
+ pn_session_t* s = pn_session(pn_event_connection(event));
pn_connection_set_container(c, app->container_id);
pn_connection_open(c);
- pn_session_t* s = pn_session(pn_event_connection(event));
pn_session_open(s);
+ {
pn_link_t* l = pn_sender(s, "my_sender");
pn_terminus_set_address(pn_link_target(l), app->amqp_address);
pn_link_open(l);
break;
+ }
}
case PN_LINK_FLOW: {
@@ -111,8 +115,10 @@ static bool handle(app_data_t* app, pn_event_t* event) {
++app->sent;
// Use sent counter as unique delivery tag.
pn_delivery(sender, pn_dtag((const char *)&app->sent, sizeof(app->sent)));
+ {
pn_bytes_t msgbuf = encode_message(app);
pn_link_send(sender, msgbuf.start, msgbuf.size);
+ }
pn_link_advance(sender);
}
break;
@@ -167,7 +173,8 @@ void run(app_data_t *app) {
/* Loop and handle events */
do {
pn_event_batch_t *events = pn_proactor_wait(app->proactor);
- for (pn_event_t *e = pn_event_batch_next(events); e; e = pn_event_batch_next(events)) {
+ pn_event_t *e;
+ for (e = pn_event_batch_next(events); e; e = pn_event_batch_next(events)) {
if (!handle(app, e)) {
return;
}
@@ -178,6 +185,8 @@ void run(app_data_t *app) {
int main(int argc, char **argv) {
struct app_data_t app = {0};
+ char addr[PN_MAX_ADDR];
+
app.container_id = argv[0]; /* Should be unique */
app.host = (argc > 1) ? argv[1] : "";
app.port = (argc > 2) ? argv[2] : "amqp";
@@ -185,7 +194,6 @@ int main(int argc, char **argv) {
app.message_count = (argc > 4) ? atoi(argv[4]) : 10;
app.proactor = pn_proactor();
- char addr[PN_MAX_ADDR];
pn_proactor_addr(addr, sizeof(addr), app.host, app.port);
pn_proactor_connect(app.proactor, pn_connection(), addr);
run(&app);
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/9e862258/examples/c/thread.h
----------------------------------------------------------------------
diff --git a/examples/c/thread.h b/examples/c/thread.h
index d96104a..e675ed7 100644
--- a/examples/c/thread.h
+++ b/examples/c/thread.h
@@ -38,12 +38,10 @@ static unsigned __stdcall pthread_run(void *thr0) {
}
static int pthread_create(pthread_t *t, void *unused, void *(*f)(void *), void *arg) {
- t->handle = 0;
t->func = f;
t->arg = arg;
- HANDLE th = (HANDLE) _beginthreadex(0, 0, &pthread_run, t, 0, 0);
- if (th) {
- t->handle = th;
+ t->handle = (HANDLE) _beginthreadex(0, 0, &pthread_run, t, 0, 0);
+ if (t->handle) {
return 0;
}
return -1;
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org