From 6db84be16e30466093256a2d2bfcdb416fa91a33 Mon Sep 17 00:00:00 2001 From: miha_vitorovic Date: Mon, 10 Jan 2011 15:51:35 +0100 Subject: [PATCH] - Connecting to invalid server (port) now generates an error. - Removed usage 'ipAddrToA' from the code. Replaced with 'ipAddrToDottedIP'. --- pvAccessApp/remote/abstractResponseHandler.cpp | 2 +- .../remote/blockingClientTCPTransport.cpp | 6 +++--- .../remote/blockingServerTCPTransport.cpp | 2 +- pvAccessApp/remote/blockingTCPAcceptor.cpp | 10 ++++++---- pvAccessApp/remote/blockingTCPConnector.cpp | 17 ++++++++++++++--- pvAccessApp/server/responseHandlers.cpp | 2 +- testApp/remote/testRemoteClientImpl.cpp | 3 ++- 7 files changed, 28 insertions(+), 14 deletions(-) diff --git a/pvAccessApp/remote/abstractResponseHandler.cpp b/pvAccessApp/remote/abstractResponseHandler.cpp index b5399b0..2d5f0b3 100644 --- a/pvAccessApp/remote/abstractResponseHandler.cpp +++ b/pvAccessApp/remote/abstractResponseHandler.cpp @@ -27,7 +27,7 @@ namespace epics { int payloadSize, ByteBuffer* payloadBuffer) { if(_debug) { char ipAddrStr[48]; - ipAddrToA(&responseFrom->ia, ipAddrStr, sizeof(ipAddrStr)); + ipAddrToDottedIP(&responseFrom->ia, ipAddrStr, sizeof(ipAddrStr)); ostringstream prologue; prologue<<"Message [0x"<ia, ipAddrStr, sizeof(ipAddrStr)); + ipAddrToDottedIP(&_socketAddress->ia, ipAddrStr, sizeof(ipAddrStr)); errlogSevPrintf(errlogInfo, "Acquiring transport to %s.", ipAddrStr); _ownersMutex->lock(); @@ -127,7 +127,7 @@ namespace epics { int refs = _owners->size(); if(refs>0) { char ipAddrStr[48]; - ipAddrToA(&_socketAddress->ia, ipAddrStr, sizeof(ipAddrStr)); + ipAddrToDottedIP(&_socketAddress->ia, ipAddrStr, sizeof(ipAddrStr)); errlogSevPrintf( errlogInfo, "Transport to %s still has %d client(s) active and closing...", @@ -145,7 +145,7 @@ namespace epics { if(_closed) return; char ipAddrStr[48]; - ipAddrToA(&_socketAddress->ia, ipAddrStr, sizeof(ipAddrStr)); + ipAddrToDottedIP(&_socketAddress->ia, ipAddrStr, sizeof(ipAddrStr)); errlogSevPrintf(errlogInfo, "Releasing transport to %s.", ipAddrStr); diff --git a/pvAccessApp/remote/blockingServerTCPTransport.cpp b/pvAccessApp/remote/blockingServerTCPTransport.cpp index 9048920..042a2b8 100644 --- a/pvAccessApp/remote/blockingServerTCPTransport.cpp +++ b/pvAccessApp/remote/blockingServerTCPTransport.cpp @@ -52,7 +52,7 @@ namespace epics { if(_channels->size()==0) return; char ipAddrStr[64]; - ipAddrToA(&_socketAddress->ia, ipAddrStr, sizeof(ipAddrStr)); + ipAddrToDottedIP(&_socketAddress->ia, ipAddrStr, sizeof(ipAddrStr)); errlogSevPrintf( errlogInfo, diff --git a/pvAccessApp/remote/blockingTCPAcceptor.cpp b/pvAccessApp/remote/blockingTCPAcceptor.cpp index c5bfcb7..10c5f21 100644 --- a/pvAccessApp/remote/blockingTCPAcceptor.cpp +++ b/pvAccessApp/remote/blockingTCPAcceptor.cpp @@ -51,7 +51,7 @@ namespace epics { char strBuffer[64]; char ipAddrStr[48]; - ipAddrToA(&_bindAddress->ia, ipAddrStr, sizeof(ipAddrStr)); + ipAddrToDottedIP(&_bindAddress->ia, ipAddrStr, sizeof(ipAddrStr)); int tryCount = 0; while(tryCount<2) { @@ -150,7 +150,7 @@ namespace epics { void BlockingTCPAcceptor::handleEvents() { // rise level if port is assigned dynamically char ipAddrStr[48]; - ipAddrToA(&_bindAddress->ia, ipAddrStr, sizeof(ipAddrStr)); + ipAddrToDottedIP(&_bindAddress->ia, ipAddrStr, sizeof(ipAddrStr)); errlogSevPrintf(errlogInfo, "Accepting connections at %s.", ipAddrStr); @@ -183,7 +183,8 @@ namespace epics { _serverSocketChannel, &address.sa, &len); if(newClient!=INVALID_SOCKET) { // accept succeeded - ipAddrToA(&address.ia, ipAddrStr, sizeof(ipAddrStr)); + ipAddrToDottedIP(&address.ia, ipAddrStr, + sizeof(ipAddrStr)); errlogSevPrintf(errlogInfo, "Accepted connection from CA client: %s", ipAddrStr); @@ -273,7 +274,8 @@ namespace epics { if(_serverSocketChannel!=INVALID_SOCKET) { char ipAddrStr[48]; - ipAddrToA(&_bindAddress->ia, ipAddrStr, sizeof(ipAddrStr)); + ipAddrToDottedIP(&_bindAddress->ia, ipAddrStr, + sizeof(ipAddrStr)); errlogSevPrintf(errlogInfo, "Stopped accepting connections at %s.", ipAddrStr); diff --git a/pvAccessApp/remote/blockingTCPConnector.cpp b/pvAccessApp/remote/blockingTCPConnector.cpp index 4a066b6..5c3b021 100644 --- a/pvAccessApp/remote/blockingTCPConnector.cpp +++ b/pvAccessApp/remote/blockingTCPConnector.cpp @@ -38,7 +38,7 @@ namespace epics { if(tryCount>0) epicsThreadSleep(0.1); char strBuffer[64]; - ipAddrToA(&address.ia, strBuffer, sizeof(strBuffer)); + ipAddrToDottedIP(&address.ia, strBuffer, sizeof(strBuffer)); errlogSevPrintf(errlogInfo, "Opening socket to CA server %s, attempt %d.", @@ -73,7 +73,7 @@ namespace epics { SOCKET socket = INVALID_SOCKET; char ipAddrStr[64]; - ipAddrToA(&address.ia, ipAddrStr, sizeof(ipAddrStr)); + ipAddrToDottedIP(&address.ia, ipAddrStr, sizeof(ipAddrStr)); // first try to check cache w/o named lock... BlockingClientTCPTransport @@ -106,6 +106,17 @@ namespace epics { ipAddrStr); socket = tryConnect(address, 3); + // verify + if(socket==INVALID_SOCKET) { + errlogSevPrintf( + errlogMajor, + "Connection to CA server %s failed.", + ipAddrStr); + ostringstream temp; + temp<<"Failed to verify TCP connection to '"<waitUntilVerified(3.0)) { transport->close(true); errlogSevPrintf( - errlogInfo, + errlogMinor, "Connection to CA server %s failed to be validated, closing it.", ipAddrStr); ostringstream temp; diff --git a/pvAccessApp/server/responseHandlers.cpp b/pvAccessApp/server/responseHandlers.cpp index c0ab2ae..fe57284 100644 --- a/pvAccessApp/server/responseHandlers.cpp +++ b/pvAccessApp/server/responseHandlers.cpp @@ -31,7 +31,7 @@ namespace epics { transport, version, command, payloadSize, payloadBuffer); char ipAddrStr[48]; - ipAddrToA(&responseFrom->ia, ipAddrStr, sizeof(ipAddrStr)); + ipAddrToDottedIP(&responseFrom->ia, ipAddrStr, sizeof(ipAddrStr)); errlogSevPrintf(errlogInfo, "Undecipherable message (bad response type %d) from %s.", diff --git a/testApp/remote/testRemoteClientImpl.cpp b/testApp/remote/testRemoteClientImpl.cpp index 987006d..8ab748b 100644 --- a/testApp/remote/testRemoteClientImpl.cpp +++ b/testApp/remote/testRemoteClientImpl.cpp @@ -410,7 +410,8 @@ class ClientContextImpl; { char ipAddrStr[48]; std::cout << "ole" << std::endl; - ipAddrToA(&responseFrom->ia, ipAddrStr, sizeof(ipAddrStr)); + ipAddrToDottedIP(&responseFrom->ia, ipAddrStr, + sizeof(ipAddrStr)); std::cout << "ole2" << std::endl; ostringstream prologue;