mirror of
https://github.com/zeromq/libzmq.git
synced 2025-10-27 19:10:22 +01:00
Pull request to merge porting to WindRiver VxWorks 6.x (#2966)
* Problem: Still need to port over more files to VxWorks 6.x Solution: Port more files to VxWorks 6.x * Problem: Need to port over remaining files to VxWorks 6.x. Also remove POSIX thread dependency for VxWorks (because of priority inversion problem in POSIX mutexes with VxWorks 6.x processes) Solution: Port over remaining files to VxWorks 6.x. Also removed POSIX thread dependency for VxWorks * Problem: Needed to modify TCP, UDP, TIPC classes with #ifdefs to be compatible with VxWorks 6.x. Solution: Modify TCP, UDP, TIPC classes with #ifdefs to be compatible with VxWorks 6.x
This commit is contained in:
committed by
Luca Boccassi
parent
0d23b5ca69
commit
4726f7262d
@@ -49,6 +49,9 @@
|
||||
#include <unistd.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#ifdef ZMQ_HAVE_VXWORKS
|
||||
#include <sockLib.h>
|
||||
#endif
|
||||
|
||||
zmq::tipc_connecter_t::tipc_connecter_t (class io_thread_t *io_thread_,
|
||||
class session_base_t *session_,
|
||||
@@ -217,9 +220,13 @@ int zmq::tipc_connecter_t::open ()
|
||||
// Set the non-blocking flag.
|
||||
unblock_socket (s);
|
||||
// Connect to the remote peer.
|
||||
#ifdef ZMQ_HAVE_VXWORKS
|
||||
int rc = ::connect (s, (sockaddr *) addr->resolved.tipc_addr->addr (),
|
||||
addr->resolved.tipc_addr->addrlen ());
|
||||
#else
|
||||
int rc = ::connect (s, addr->resolved.tipc_addr->addr (),
|
||||
addr->resolved.tipc_addr->addrlen ());
|
||||
|
||||
#endif
|
||||
// Connect was successful immediately.
|
||||
if (rc == 0)
|
||||
return 0;
|
||||
@@ -248,8 +255,11 @@ zmq::fd_t zmq::tipc_connecter_t::connect ()
|
||||
// Following code should handle both Berkeley-derived socket
|
||||
// implementations and Solaris.
|
||||
int err = 0;
|
||||
#if ZMQ_HAVE_VXWORKS
|
||||
int len = sizeof (err);
|
||||
#else
|
||||
socklen_t len = sizeof (err);
|
||||
|
||||
#endif
|
||||
int rc = getsockopt (s, SOL_SOCKET, SO_ERROR, (char *) &err, &len);
|
||||
if (rc == -1)
|
||||
err = errno;
|
||||
|
||||
Reference in New Issue
Block a user