mirror of
https://github.com/zeromq/libzmq.git
synced 2025-03-17 08:34:00 +00:00
Problem: windows socket error number cleared before saved to saved_errno
Solution: call tune_socket only if connect was successful
This commit is contained in:
parent
66d0f3511f
commit
302436515c
15
src/ip.cpp
15
src/ip.cpp
@ -449,20 +449,23 @@ int zmq::make_fdpair (fd_t *r_, fd_t *w_)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Listen for incoming connections.
|
// Listen for incoming connections.
|
||||||
if (rc != SOCKET_ERROR)
|
if (rc != SOCKET_ERROR) {
|
||||||
rc = listen (listener, 1);
|
rc = listen (listener, 1);
|
||||||
|
}
|
||||||
|
|
||||||
// Connect writer to the listener.
|
// Connect writer to the listener.
|
||||||
if (rc != SOCKET_ERROR)
|
if (rc != SOCKET_ERROR) {
|
||||||
rc = connect (*w_, reinterpret_cast<struct sockaddr *> (&addr),
|
rc = connect (*w_, reinterpret_cast<struct sockaddr *> (&addr),
|
||||||
sizeof addr);
|
sizeof addr);
|
||||||
|
}
|
||||||
// Set TCP_NODELAY on writer socket.
|
|
||||||
tune_socket (*w_);
|
|
||||||
|
|
||||||
// Accept connection from writer.
|
// Accept connection from writer.
|
||||||
if (rc != SOCKET_ERROR)
|
if (rc != SOCKET_ERROR) {
|
||||||
|
// Set TCP_NODELAY on writer socket.
|
||||||
|
tune_socket (*w_);
|
||||||
|
|
||||||
*r_ = accept (listener, NULL, NULL);
|
*r_ = accept (listener, NULL, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
// Send/receive large chunk to work around TCP slow start
|
// Send/receive large chunk to work around TCP slow start
|
||||||
// This code is a workaround for #1608
|
// This code is a workaround for #1608
|
||||||
|
Loading…
x
Reference in New Issue
Block a user