Merge pull request #2431 from Erbengi/poco-1.9.1

Backport #2257 to Poco 1.9.1
This commit is contained in:
Günter Obiltschnig 2018-08-18 16:00:49 +02:00 committed by GitHub
commit 64a3c8124a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 13 additions and 6 deletions

View File

@ -63,7 +63,7 @@ public:
///
/// Throws a Poco::InvalidAccessException.
void bind(const SocketAddress& address, bool reuseAddress = false);
void bind(const SocketAddress& address, bool reuseAddress = false, bool reusePort = false);
/// Bind a local address to the socket.
///
/// This is usually only done when establishing a server
@ -72,6 +72,10 @@ public:
///
/// If reuseAddress is true, sets the SO_REUSEADDR
/// socket option.
///
/// If reusePort is true, sets the SO_REUSEPORT
/// socket option.
void listen(int backlog = 64);
/// Puts the socket into listening state.

View File

@ -78,7 +78,7 @@ public:
/// the TCP server at the given address. Prior to opening the
/// connection the socket is set to nonblocking mode.
void bind(const SocketAddress& address, bool reuseAddress = false);
void bind(const SocketAddress& address, bool reuseAddress = false, bool reusePort = false);
/// Bind a local address to the socket.
///
/// This is usually only done when establishing a server
@ -87,6 +87,9 @@ public:
///
/// If reuseAddress is true, sets the SO_REUSEADDR
/// socket option.
///
/// If reusePort is true, sets the SO_REUSEPORT
/// socket option.
void listen(int backlog = 64);
/// Puts the socket into listening state.

View File

@ -62,9 +62,9 @@ void SecureServerSocketImpl::connectNB(const SocketAddress& address)
}
void SecureServerSocketImpl::bind(const SocketAddress& address, bool reuseAddress)
void SecureServerSocketImpl::bind(const SocketAddress& address, bool reuseAddress, bool reusePort)
{
_impl.bind(address, reuseAddress);
_impl.bind(address, reuseAddress, reusePort);
reset(_impl.sockfd());
}

View File

@ -192,11 +192,11 @@ void SecureSocketImpl::connectSSL(bool performHandshake)
}
void SecureSocketImpl::bind(const SocketAddress& address, bool reuseAddress)
void SecureSocketImpl::bind(const SocketAddress& address, bool reuseAddress, bool reusePort)
{
poco_check_ptr (_pSocket);
_pSocket->bind(address, reuseAddress);
_pSocket->bind(address, reuseAddress, reusePort);
}