From 072191a6e9815c54bac2ce276db8b7abf26c3230 Mon Sep 17 00:00:00 2001 From: Alan Antonuk Date: Mon, 25 Aug 2014 22:54:28 -0700 Subject: Add platform, version, copyright client properties Add 'platform' 'version', 'copyright' client-properties to start-ok method during connection handshake. Adapted from: https://github.com/synety-jdebp/rabbitmq-c/commit/e3c76e1887ff50378f6146167daa024dbd7d4eeb by: Jonathan de Boyne Pollard --- cmake/config.h.in | 2 ++ configure.ac | 1 + librabbitmq/amqp_private.h | 3 +++ librabbitmq/amqp_socket.c | 22 ++++++++++++++++++++-- 4 files changed, 26 insertions(+), 2 deletions(-) diff --git a/cmake/config.h.in b/cmake/config.h.in index e7a83c4..7f3fa71 100644 --- a/cmake/config.h.in +++ b/cmake/config.h.in @@ -8,4 +8,6 @@ #cmakedefine HAVE_HTONLL +#define AMQ_PLATFORM "@CMAKE_SYSTEM@" + #endif /* CONFIG_H */ diff --git a/configure.ac b/configure.ac index df9338d..6d465b0 100644 --- a/configure.ac +++ b/configure.ac @@ -188,6 +188,7 @@ AM_CONDITIONAL([EXAMPLES], [test "x$enable_examples" = "xyes"]) AC_SUBST([requires_private], [$ssl_pkg_required]) AC_SUBST([libs_private], [$LIBS]) +AC_DEFINE_UNQUOTED([AMQ_PLATFORM], ["$host_os"], [Host operating system string]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([ librabbitmq.pc diff --git a/librabbitmq/amqp_private.h b/librabbitmq/amqp_private.h index e11ce16..21f4ead 100644 --- a/librabbitmq/amqp_private.h +++ b/librabbitmq/amqp_private.h @@ -41,6 +41,9 @@ #include "config.h" #endif +#define AMQ_COPYRIGHT "Copyright (c) 2007-2014 VMWare Inc, Tony Garnock-Jones," \ + " and Alan Antonuk." + #include "amqp.h" #include "amqp_framing.h" #include diff --git a/librabbitmq/amqp_socket.c b/librabbitmq/amqp_socket.c index 660ebbb..3a2881e 100644 --- a/librabbitmq/amqp_socket.c +++ b/librabbitmq/amqp_socket.c @@ -1158,7 +1158,7 @@ static amqp_rpc_reply_t amqp_login_inner(amqp_connection_state_t state, } { - amqp_table_entry_t default_properties[2]; + amqp_table_entry_t default_properties[5]; amqp_table_t default_table; amqp_connection_start_ok_t s; amqp_pool_t *channel_pool; @@ -1182,9 +1182,27 @@ static amqp_rpc_reply_t amqp_login_inner(amqp_connection_state_t state, default_properties[0].value.value.bytes = amqp_cstring_bytes("rabbitmq-c"); - default_properties[1].key = amqp_cstring_bytes("information"); + /* version */ + default_properties[1].key = amqp_cstring_bytes("version"); default_properties[1].value.kind = AMQP_FIELD_KIND_UTF8; default_properties[1].value.value.bytes = + amqp_cstring_bytes(AMQP_VERSION_STRING); + + /* platform */ + default_properties[2].key = amqp_cstring_bytes("platform"); + default_properties[2].value.kind = AMQP_FIELD_KIND_UTF8; + default_properties[2].value.value.bytes = + amqp_cstring_bytes(AMQ_PLATFORM); + + /* copyright */ + default_properties[3].key = amqp_cstring_bytes("copyright"); + default_properties[3].value.kind = AMQP_FIELD_KIND_UTF8; + default_properties[3].value.value.bytes = + amqp_cstring_bytes(AMQ_COPYRIGHT); + + default_properties[4].key = amqp_cstring_bytes("information"); + default_properties[4].value.kind = AMQP_FIELD_KIND_UTF8; + default_properties[4].value.value.bytes = amqp_cstring_bytes("See https://github.com/alanxz/rabbitmq-c"); default_table.entries = default_properties; -- cgit v1.2.1