From 9babc06ab38d417a0482234404d25ae207c90309 Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Sat, 12 Jan 2019 15:13:53 -0800 Subject: [PATCH] pvasr show PeerInfo --- src/server/serverContext.cpp | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/server/serverContext.cpp b/src/server/serverContext.cpp index 447dc1c..25c3b8e 100644 --- a/src/server/serverContext.cpp +++ b/src/server/serverContext.cpp @@ -398,7 +398,7 @@ void ServerContextImpl::printInfo(ostream& str, int lvl) { const Transport::shared_pointer& transport(*it); - str<<"client "<getType()<<"://"<getRemoteName() + str<<" "<getType()<<"://"<getRemoteName() <<" ver="<getRevision()) <<" "<<(transport->isClosed()?"closed!":""); @@ -406,6 +406,31 @@ void ServerContextImpl::printInfo(ostream& str, int lvl) if(casTransport) { str<<" "<<(casTransport ? casTransport->getChannelCount() : size_t(-1))<<" channels"; + + PeerInfo::const_shared_pointer peer; + { + epicsGuard G(casTransport->_mutex); + peer = casTransport->_peerInfo; + } + if(peer) { + str<<" user: "<authority<<"/"<account; + if(!peer->realm.empty()) + str<<"@"<realm; + if(lvl>=2 && !peer->roles.empty()) { + str<<" groups:"; + int n=0; + for(PeerInfo::roles_t::const_iterator it(peer->roles.begin()), end(peer->roles.end()); it!=end; ++it, ++n) { + if(n) + str<<','; + str<<(*it); + } + } + if(lvl>=3 && peer->aux) { + str<<" aux. auth.:\n"; + format::indent_scope I(str); + str<<(*peer->aux); + } + } } str<<"\n";