- Connecting to invalid server (port) now generates an error.

- Removed usage 'ipAddrToA' from the code. Replaced with 'ipAddrToDottedIP'.
This commit is contained in:
miha_vitorovic
2011-01-10 15:51:35 +01:00
parent 44516e8a40
commit 6db84be16e
7 changed files with 28 additions and 14 deletions

View File

@@ -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"<<hex<<(int)command<<", v0x"<<hex;

View File

@@ -97,7 +97,7 @@ namespace epics {
if(_closed) return false;
char ipAddrStr[48];
ipAddrToA(&_socketAddress->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);

View File

@@ -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,

View File

@@ -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);

View File

@@ -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 '"<<ipAddrStr
<<"'.";
THROW_BASE_EXCEPTION(temp.str().c_str());
}
// use blocking channel
// socket is blocking bya default
@@ -138,7 +149,7 @@ namespace epics {
if(!transport->waitUntilVerified(3.0)) {
transport->close(true);
errlogSevPrintf(
errlogInfo,
errlogMinor,
"Connection to CA server %s failed to be validated, closing it.",
ipAddrStr);
ostringstream temp;

View File

@@ -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.",

View File

@@ -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;