From 1ee18911ce38b11fb63e425097a6cdc3ede38324 Mon Sep 17 00:00:00 2001 From: Emiel Bruijntjes Date: Sat, 10 Mar 2018 10:20:52 +0100 Subject: [PATCH] fixed writing address to std::stream --- include/amqpcpp/address.h | 6 ++++++ include/amqpcpp/login.h | 24 +++++++++++++++++++++--- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/include/amqpcpp/address.h b/include/amqpcpp/address.h index c8faaa1..32e00fb 100644 --- a/include/amqpcpp/address.h +++ b/include/amqpcpp/address.h @@ -299,6 +299,12 @@ public: { // start with the protocol and login stream << (address._secure ? "amqps://" : "amqp://"); + + // do we have a login? + if (address._login) stream << address._login << "@"; + + // write hostname + stream << address._hostname; // do we need a special portnumber? if (address._port != 5672) stream << ":" << address._port; diff --git a/include/amqpcpp/login.h b/include/amqpcpp/login.h index b9276da..f805e18 100644 --- a/include/amqpcpp/login.h +++ b/include/amqpcpp/login.h @@ -3,7 +3,7 @@ * * This class combines login, password and vhost * - * @copyright 2014 Copernica BV + * @copyright 2014 - 2018 Copernica BV */ /** @@ -65,7 +65,25 @@ public: /** * Destructor */ - virtual ~Login() {} + virtual ~Login() = default; + + /** + * Cast to boolean: is the login set? + * @return bool + */ + operator bool () const + { + return !_user.empty() || !_password.empty(); + } + + /** + * Negate operator: is it not set + * @return bool + */ + bool operator! () const + { + return _user.empty() && _password.empty(); + } /** * Retrieve the user name @@ -143,7 +161,7 @@ public: friend std::ostream &operator<<(std::ostream &stream, const Login &login) { // write username and password - return stream << login._user << "@" << login._password; + return stream << login._user << ":" << login._password; } };