summaryrefslogtreecommitdiff
path: root/src/pgm_socket.cpp
diff options
context:
space:
mode:
authormalosek <malosek@fastmq.com>2010-01-27 11:30:22 +0100
committermalosek <malosek@fastmq.com>2010-01-27 11:30:22 +0100
commit0b97e7a4f23f7add763ac6e0fc945c9a342a7d32 (patch)
treea3ff05f7cf8d95053a2e9c3de3a322f3bf19f874 /src/pgm_socket.cpp
parent943125bd12dbf181f4dfce7babddf1af7bcb7e18 (diff)
libpgm updated to 2.6.21rc6
Diffstat (limited to 'src/pgm_socket.cpp')
-rw-r--r--src/pgm_socket.cpp25
1 files changed, 19 insertions, 6 deletions
diff --git a/src/pgm_socket.cpp b/src/pgm_socket.cpp
index 11084ff..4d713e3 100644
--- a/src/pgm_socket.cpp
+++ b/src/pgm_socket.cpp
@@ -27,8 +27,6 @@
#ifdef ZMQ_HAVE_LINUX
#include <poll.h>
-// Has to be defined befiore including pgm/pgm.h
-#define CONFIG_HAVE_POLL
#endif
#include <stdlib.h>
@@ -88,10 +86,25 @@ int zmq::pgm_socket_t::init (bool udp_encapsulation_, const char *network_)
// Note that if you want to use gettimeofday and sleep for openPGM timing,
// set environment variables PGM_TIMER to "GTOD"
// and PGM_SLEEP to "USLEEP".
- int rc = pgm_init ();
- if (rc != 0) {
- errno = EINVAL;
- return -1;
+ int rc = pgm_init (&pgm_error);
+ if (rc != TRUE) {
+
+ if (pgm_error->domain == PGM_IF_ERROR && (
+ pgm_error->code == PGM_IF_ERROR_INVAL ||
+ pgm_error->code == PGM_IF_ERROR_XDEV ||
+ pgm_error->code == PGM_IF_ERROR_NODEV ||
+ pgm_error->code == PGM_IF_ERROR_NOTUNIQ ||
+ pgm_error->code == PGM_IF_ERROR_ADDRFAMILY ||
+ pgm_error->code == PGM_IF_ERROR_FAMILY ||
+ pgm_error->code == PGM_IF_ERROR_NODATA ||
+ pgm_error->code == PGM_IF_ERROR_NONAME ||
+ pgm_error->code == PGM_IF_ERROR_SERVICE)) {
+ errno = EINVAL;
+ g_error_free (pgm_error);
+ return -1;
+ }
+
+ zmq_assert (false);
}
// PGM transport GSI.