From 2dd16f43621f62e0d3319cbafbcdabffc587349f Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Sun, 31 Jul 2016 15:10:36 -0400 Subject: [PATCH] cas: honor DOREPLY for TCP searches --- src/ca/legacy/pcas/generic/casStrmClient.cc | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/ca/legacy/pcas/generic/casStrmClient.cc b/src/ca/legacy/pcas/generic/casStrmClient.cc index 6b1de3629..015192769 100644 --- a/src/ca/legacy/pcas/generic/casStrmClient.cc +++ b/src/ca/legacy/pcas/generic/casStrmClient.cc @@ -1219,6 +1219,14 @@ caStatus casStrmClient :: searchResponse ( const pvExistReturn & retVal ) { if ( retVal.getStatus() != pverExistsHere ) { + if (msg.m_dataType == DOREPLY ) { + long status = this->out.copyInHeader ( CA_PROTO_NOT_FOUND, 0, + msg.m_dataType, msg.m_count, msg.m_cid, msg.m_available, 0 ); + + if ( status == S_cas_success ) { + this->out.commitMsg (); + } + } return S_cas_success; } @@ -1383,11 +1391,8 @@ caStatus casStrmClient :: searchAction ( epicsGuard < casClientMutex > & guard ) // switch ( pver.getStatus() ) { case pverExistsHere: - status = this->searchResponse ( guard, *mp, pver ); - break; - case pverDoesNotExistHere: - status = S_cas_success; + status = this->searchResponse ( guard, *mp, pver ); break; case pverAsyncCompletion: