From c5fe16eff2ac1f71e6e5b711cfdcdabfd12b2771 Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Wed, 13 Feb 2019 21:27:50 -0800 Subject: [PATCH] fix search PeerInfo --- src/server/pv/responseHandlers.h | 3 ++- src/server/responseHandlers.cpp | 7 ++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/server/pv/responseHandlers.h b/src/server/pv/responseHandlers.h index aec3d07..03dc30b 100644 --- a/src/server/pv/responseHandlers.h +++ b/src/server/pv/responseHandlers.h @@ -144,6 +144,7 @@ public: epics::pvData::int32 cid, osiSockAddr const & sendTo, bool responseRequired, bool serverSearch); virtual void channelFindResult(const epics::pvData::Status& status, ChannelFind::shared_pointer const & channelFind, bool wasFound) OVERRIDE FINAL; + virtual std::tr1::shared_ptr getPeerInfo() OVERRIDE FINAL; virtual void send(epics::pvData::ByteBuffer* buffer, TransportSendControl* control) OVERRIDE FINAL; virtual void callback() OVERRIDE FINAL; @@ -158,7 +159,7 @@ private: bool _responseRequired; bool _wasFound; const ServerContextImpl::shared_pointer _context; - const PeerInfo::const_shared_pointer& _peer; + const PeerInfo::const_shared_pointer _peer; mutable epics::pvData::Mutex _mutex; const epics::pvData::int32 _expectedResponseCount; epics::pvData::int32 _responseCount; diff --git a/src/server/responseHandlers.cpp b/src/server/responseHandlers.cpp index 7d3f455..a5afe34 100644 --- a/src/server/responseHandlers.cpp +++ b/src/server/responseHandlers.cpp @@ -339,7 +339,7 @@ void ServerSearchHandler::handleResponse(osiSockAddr* responseFrom, if(allowed) { info.reset(new PeerInfo); info->transport = "pva"; - info->peer = transport->getRemoteName(); + info->peer = inetAddressToString(*responseFrom); info->transportVersion = transport->getRevision(); } @@ -467,6 +467,11 @@ void ServerChannelFindRequesterImpl::channelFindResult(const Status& /*status*/, } } +std::tr1::shared_ptr ServerChannelFindRequesterImpl::getPeerInfo() +{ + return _peer; +} + void ServerChannelFindRequesterImpl::send(ByteBuffer* buffer, TransportSendControl* control) { control->startMessage(CMD_SEARCH_RESPONSE, 12+4+16+2);