mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-03-05 14:06:27 -05:00
Merge bitcoin/bitcoin#22052: net: remove non-blocking bool from interface
c71117fcb0
net: remove non-blocking bool from interface (Bushstar) Pull request description: SetSocketNonBlocking was added in 0.11 in the PR below with a second argument to toggle non-blocking mode for the socket. That argument has always been set to true in all subsequent releases and I'm not sure why it is present. https://github.com/bitcoin/bitcoin/pull/4491 ACKs for top commit: promag: Code review ACKc71117fcb0
. lsilva01: Code review ACKc71117fcb0
vasild: ACKc71117fcb0
Tree-SHA512: feebfcfa75d997460a0ba42ffe1e0c25a7e0bfcad12510ad73ea4942cc1c653f9ad429adbbb00b9288fe319009552906fcb635a14dfd7dcbde3853baab6be065
This commit is contained in:
commit
b69fd5eaa9
2 changed files with 10 additions and 22 deletions
|
@ -305,7 +305,7 @@ enum class IntrRecvError {
|
|||
*
|
||||
* @see This function can be interrupted by calling InterruptSocks5(bool).
|
||||
* Sockets can be made non-blocking with SetSocketNonBlocking(const
|
||||
* SOCKET&, bool).
|
||||
* SOCKET&).
|
||||
*/
|
||||
static IntrRecvError InterruptibleRecv(uint8_t* data, size_t len, int timeout, const Sock& sock)
|
||||
{
|
||||
|
@ -518,7 +518,7 @@ std::unique_ptr<Sock> CreateSockTCP(const CService& address_family)
|
|||
SetSocketNoDelay(hSocket);
|
||||
|
||||
// Set the non-blocking option on the socket.
|
||||
if (!SetSocketNonBlocking(hSocket, true)) {
|
||||
if (!SetSocketNonBlocking(hSocket)) {
|
||||
CloseSocket(hSocket);
|
||||
LogPrintf("Error setting socket to non-blocking: %s\n", NetworkErrorString(WSAGetLastError()));
|
||||
return nullptr;
|
||||
|
@ -711,28 +711,16 @@ bool LookupSubNet(const std::string& subnet_str, CSubNet& subnet_out)
|
|||
return false;
|
||||
}
|
||||
|
||||
bool SetSocketNonBlocking(const SOCKET& hSocket, bool fNonBlocking)
|
||||
bool SetSocketNonBlocking(const SOCKET& hSocket)
|
||||
{
|
||||
if (fNonBlocking) {
|
||||
#ifdef WIN32
|
||||
u_long nOne = 1;
|
||||
if (ioctlsocket(hSocket, FIONBIO, &nOne) == SOCKET_ERROR) {
|
||||
u_long nOne = 1;
|
||||
if (ioctlsocket(hSocket, FIONBIO, &nOne) == SOCKET_ERROR) {
|
||||
#else
|
||||
int fFlags = fcntl(hSocket, F_GETFL, 0);
|
||||
if (fcntl(hSocket, F_SETFL, fFlags | O_NONBLOCK) == SOCKET_ERROR) {
|
||||
int fFlags = fcntl(hSocket, F_GETFL, 0);
|
||||
if (fcntl(hSocket, F_SETFL, fFlags | O_NONBLOCK) == SOCKET_ERROR) {
|
||||
#endif
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
#ifdef WIN32
|
||||
u_long nZero = 0;
|
||||
if (ioctlsocket(hSocket, FIONBIO, &nZero) == SOCKET_ERROR) {
|
||||
#else
|
||||
int fFlags = fcntl(hSocket, F_GETFL, 0);
|
||||
if (fcntl(hSocket, F_SETFL, fFlags & ~O_NONBLOCK) == SOCKET_ERROR) {
|
||||
#endif
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
|
@ -221,8 +221,8 @@ bool ConnectSocketDirectly(const CService &addrConnect, const Sock& sock, int nT
|
|||
*/
|
||||
bool ConnectThroughProxy(const Proxy& proxy, const std::string& strDest, uint16_t port, const Sock& sock, int nTimeout, bool& outProxyConnectionFailed);
|
||||
|
||||
/** Disable or enable blocking-mode for a socket */
|
||||
bool SetSocketNonBlocking(const SOCKET& hSocket, bool fNonBlocking);
|
||||
/** Enable non-blocking mode for a socket */
|
||||
bool SetSocketNonBlocking(const SOCKET& hSocket);
|
||||
/** Set the TCP_NODELAY flag on a socket */
|
||||
bool SetSocketNoDelay(const SOCKET& hSocket);
|
||||
void InterruptSocks5(bool interrupt);
|
||||
|
|
Loading…
Add table
Reference in a new issue