diff options
author | unknown <sustrik@.(none)> | 2009-09-08 11:30:49 +0200 |
---|---|---|
committer | unknown <sustrik@.(none)> | 2009-09-08 11:30:49 +0200 |
commit | ec6822a477b89ac77afc90425bf36c4829dbef3d (patch) | |
tree | d8708a7d56fc2a1db9a163be795bc5b84955f48c /src/tcp_connecter.cpp | |
parent | b71c3005e68d02f800ff09bcacece79d167bff75 (diff) |
win port for c and cpp perf tests
Diffstat (limited to 'src/tcp_connecter.cpp')
-rw-r--r-- | src/tcp_connecter.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/tcp_connecter.cpp b/src/tcp_connecter.cpp index fa99538..22caafb 100644 --- a/src/tcp_connecter.cpp +++ b/src/tcp_connecter.cpp @@ -98,7 +98,23 @@ zmq::fd_t zmq::tcp_connecter_t::get_fd () return s; } -// connect +zmq::fd_t zmq::tcp_connecter_t::connect () +{ + // Nonblocking connect have finished. Check whether an error occured. + int err = 0; + socklen_t len = sizeof err; + int rc = getsockopt (s, SOL_SOCKET, SO_ERROR, (char*) &err, &len); + zmq_assert (rc == 0); + if (err != 0) { + errno = err; + return retired_fd; + } + + // Return the newly connected socket. + fd_t result = s; + s = retired_fd; + return result; +} #else |