From d8fd120578f9a0903af17d6090716e1cfa4979aa Mon Sep 17 00:00:00 2001 From: Matej Sekoranja Date: Thu, 3 Mar 2011 13:07:28 +0100 Subject: [PATCH] fixed dynamic port allocation --- pvAccessApp/remote/blockingTCPAcceptor.cpp | 3 +++ pvAccessApp/server/serverContext.cpp | 3 +-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/pvAccessApp/remote/blockingTCPAcceptor.cpp b/pvAccessApp/remote/blockingTCPAcceptor.cpp index 580c06e..a41626c 100644 --- a/pvAccessApp/remote/blockingTCPAcceptor.cpp +++ b/pvAccessApp/remote/blockingTCPAcceptor.cpp @@ -66,6 +66,9 @@ namespace epics { THROW_BASE_EXCEPTION(temp.str().c_str()); } else { + + epicsSocketEnableAddressReuseDuringTimeWaitState(_serverSocketChannel); + // try to bind int retval = ::bind(_serverSocketChannel, &_bindAddress.sa, sizeof(sockaddr)); diff --git a/pvAccessApp/server/serverContext.cpp b/pvAccessApp/server/serverContext.cpp index 9059d92..5cc6cc2 100644 --- a/pvAccessApp/server/serverContext.cpp +++ b/pvAccessApp/server/serverContext.cpp @@ -143,8 +143,7 @@ void ServerContextImpl::internalInitialize() initializeBroadcastTransport(); _acceptor = new BlockingTCPAcceptor(this, _serverPort, _receiveBufferSize); - //TODO fix this - //_serverPort = _acceptor->getBindAddress()->ia.sin_port; + _serverPort = ntohs(_acceptor->getBindAddress()->ia.sin_port); _beaconEmitter = new BeaconEmitter(_broadcastTransport, this); }