summaryrefslogtreecommitdiff
path: root/src/tcp_connecter.cpp
diff options
context:
space:
mode:
authorunknown <sustrik@.(none)>2009-09-08 11:30:49 +0200
committerunknown <sustrik@.(none)>2009-09-08 11:30:49 +0200
commitec6822a477b89ac77afc90425bf36c4829dbef3d (patch)
treed8708a7d56fc2a1db9a163be795bc5b84955f48c /src/tcp_connecter.cpp
parentb71c3005e68d02f800ff09bcacece79d167bff75 (diff)
win port for c and cpp perf tests
Diffstat (limited to 'src/tcp_connecter.cpp')
-rw-r--r--src/tcp_connecter.cpp18
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