Commit 511d701d authored by Constantin Rack's avatar Constantin Rack

Merge pull request #1725 from GreatFruitOmsk/master

parents 1c7d59a5 77f5344f
...@@ -41,8 +41,8 @@ ...@@ -41,8 +41,8 @@
#include "err.hpp" #include "err.hpp"
#include "ip.hpp" #include "ip.hpp"
#include "address.hpp" #include "address.hpp"
#include "ipc_address.hpp"
#include "session_base.hpp" #include "session_base.hpp"
#include "vmci_address.hpp"
#include "vmci.hpp" #include "vmci.hpp"
zmq::vmci_connecter_t::vmci_connecter_t (class io_thread_t *io_thread_, zmq::vmci_connecter_t::vmci_connecter_t (class io_thread_t *io_thread_,
...@@ -226,8 +226,8 @@ int zmq::vmci_connecter_t::open () ...@@ -226,8 +226,8 @@ int zmq::vmci_connecter_t::open ()
// Connect to the remote peer. // Connect to the remote peer.
int rc = ::connect ( int rc = ::connect (
s, addr->resolved.ipc_addr->addr (), s, addr->resolved.vmci_addr->addr (),
addr->resolved.ipc_addr->addrlen ()); addr->resolved.vmci_addr->addrlen ());
// Connect was successful immediately. // Connect was successful immediately.
if (rc == 0) if (rc == 0)
...@@ -244,14 +244,18 @@ int zmq::vmci_connecter_t::open () ...@@ -244,14 +244,18 @@ int zmq::vmci_connecter_t::open ()
return -1; return -1;
} }
int zmq::vmci_connecter_t::close () void zmq::vmci_connecter_t::close ()
{ {
zmq_assert (s != retired_fd); zmq_assert (s != retired_fd);
int rc = ::close (s); #ifdef ZMQ_HAVE_WINDOWS
const int rc = closesocket (s);
wsa_assert (rc != SOCKET_ERROR);
#else
const int rc = ::close (s);
errno_assert (rc == 0); errno_assert (rc == 0);
#endif
socket->event_closed (endpoint, s); socket->event_closed (endpoint, s);
s = retired_fd; s = retired_fd;
return 0;
} }
zmq::fd_t zmq::vmci_connecter_t::connect () zmq::fd_t zmq::vmci_connecter_t::connect ()
......
...@@ -88,7 +88,7 @@ namespace zmq ...@@ -88,7 +88,7 @@ namespace zmq
int open (); int open ();
// Close the connecting socket. // Close the connecting socket.
int close (); void close ();
// Get the file descriptor of newly created connection. Returns // Get the file descriptor of newly created connection. Returns
// retired_fd if the connection was unsuccessful. // retired_fd if the connection was unsuccessful.
......
...@@ -45,8 +45,12 @@ ...@@ -45,8 +45,12 @@
#include "socket_base.hpp" #include "socket_base.hpp"
#include "vmci.hpp" #include "vmci.hpp"
#if defined ZMQ_HAVE_WINDOWS
#include "windows.hpp"
#else
#include <unistd.h> #include <unistd.h>
#include <fcntl.h> #include <fcntl.h>
#endif
zmq::vmci_listener_t::vmci_listener_t (io_thread_t *io_thread_, zmq::vmci_listener_t::vmci_listener_t (io_thread_t *io_thread_,
socket_base_t *socket_, const options_t &options_) : socket_base_t *socket_, const options_t &options_) :
...@@ -174,16 +178,18 @@ int zmq::vmci_listener_t::set_address (const char *addr_) ...@@ -174,16 +178,18 @@ int zmq::vmci_listener_t::set_address (const char *addr_)
return -1; return -1;
} }
int zmq::vmci_listener_t::close () void zmq::vmci_listener_t::close ()
{ {
zmq_assert (s != retired_fd); zmq_assert (s != retired_fd);
#ifdef ZMQ_HAVE_WINDOWS
int rc = closesocket (s);
wsa_assert (rc != SOCKET_ERROR);
#else
int rc = ::close (s); int rc = ::close (s);
errno_assert (rc == 0); errno_assert (rc == 0);
#endif
s = retired_fd;
socket->event_closed (endpoint, s); socket->event_closed (endpoint, s);
return 0; s = retired_fd;
} }
zmq::fd_t zmq::vmci_listener_t::accept () zmq::fd_t zmq::vmci_listener_t::accept ()
......
...@@ -71,7 +71,7 @@ namespace zmq ...@@ -71,7 +71,7 @@ namespace zmq
void in_event (); void in_event ();
// Close the listening socket. // Close the listening socket.
int close (); void close ();
// Accept the new connection. Returns the file descriptor of the // Accept the new connection. Returns the file descriptor of the
// newly created connection. The function may return retired_fd // newly created connection. The function may return retired_fd
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment