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