You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by tr...@apache.org on 2016/05/10 20:42:19 UTC

qpid-dispatch git commit: DISPATCH-290 (Patch from Adel Boutros) - Updates to support the Solaris build

Repository: qpid-dispatch
Updated Branches:
  refs/heads/master 6422f523a -> 4926d75aa


DISPATCH-290 (Patch from Adel Boutros) - Updates to support the Solaris build


Project: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/commit/4926d75a
Tree: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/tree/4926d75a
Diff: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/diff/4926d75a

Branch: refs/heads/master
Commit: 4926d75aa1315731755fcf5bbc9a4f848083d5ae
Parents: 6422f52
Author: Ted Ross <tr...@redhat.com>
Authored: Tue May 10 16:41:23 2016 -0400
Committer: Ted Ross <tr...@redhat.com>
Committed: Tue May 10 16:41:23 2016 -0400

----------------------------------------------------------------------
 CMakeLists.txt     |  4 ++-
 router/src/main.c  | 10 +++++++
 src/CMakeLists.txt |  3 +-
 src/compose.c      |  1 +
 src/error.c        |  4 +--
 src/posix/driver.c | 24 ++++++++++++---
 tests/timer_test.c | 80 ++++++++++++++++++++++++-------------------------
 7 files changed, 77 insertions(+), 49 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/4926d75a/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 21bdca7..9f71025 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -114,9 +114,11 @@ endif (NOT COMMAND add_compile_options)
 
 add_compile_options(-pthread)
 add_compile_options(-Wall)
+if (NOT CMAKE_SYSTEM_NAME STREQUAL SunOS)
 add_compile_options(-Werror)
+endif (NOT CMAKE_SYSTEM_NAME STREQUAL SunOS)
 add_compile_options(-std=gnu99)
-set(CATCH_UNDEFINED "-Wl,--no-undefined")
+set(CATCH_UNDEFINED "-Wl,-z,defs")
 
 ##
 ## Header file installation

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/4926d75a/router/src/main.c
----------------------------------------------------------------------
diff --git a/router/src/main.c b/router/src/main.c
index c452c63..b121043 100644
--- a/router/src/main.c
+++ b/router/src/main.c
@@ -86,7 +86,12 @@ static void server_signal_handler(void* context, int signum)
 static void check(int fd) {
     if (qd_error_code()) {
         qd_log(log_source, QD_LOG_CRITICAL, "Router start-up failed: %s", qd_error_message());
+        #ifdef __sun
+        FILE *file = fdopen(fd, "a+");
+        fprintf(file, "%s: %s\n", argv0, qd_error_message());
+        #else
         dprintf(fd, "%s: %s\n", argv0, qd_error_message());
+        #endif
         close(fd);
         exit(1);
     }
@@ -128,7 +133,12 @@ static void main_process(const char *config_path, const char *python_pkgdir, int
     signal(SIGINT,  signal_handler);
 
     if (fd > 2) {               /* Daemon mode, fd is one end of a pipe not stdout or stderr */
+        #ifdef __sun
+        FILE *file = fdopen(fd, "a+");
+        fprintf(file, "ok");
+        #else
         dprintf(fd, "ok"); // Success signal
+        #endif
         close(fd);
     }
 

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/4926d75a/src/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 4d7f784..c5aa589 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -106,7 +106,6 @@ set_target_properties(qpid-dispatch PROPERTIES
 install(TARGETS qpid-dispatch
   LIBRARY DESTINATION ${QPID_DISPATCH_HOME})
 
-# Set in parent scope for calling cmake file.
-set (QPID_DISPATCH_LIB "libqpid-dispatch.so" PARENT_SCOPE)
+set (QPID_DISPATCH_LIB "libqpid-dispatch.so")
 
 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/4926d75a/src/compose.c
----------------------------------------------------------------------
diff --git a/src/compose.c b/src/compose.c
index e0b7956..df77f44 100644
--- a/src/compose.c
+++ b/src/compose.c
@@ -23,6 +23,7 @@
 #include <qpid/dispatch/amqp.h>
 #include "compose_private.h"
 #include <memory.h>
+#include <string.h>
 
 ALLOC_DEFINE(qd_composite_t);
 ALLOC_DEFINE(qd_composed_field_t);

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/4926d75a/src/error.c
----------------------------------------------------------------------
diff --git a/src/error.c b/src/error.c
index 8af0891..87deae0 100644
--- a/src/error.c
+++ b/src/error.c
@@ -179,7 +179,7 @@ qd_error_t qd_error_errno_impl(int errnum, const char *file, int line, const cha
     if (errnum) {
         ts.error_code = QD_ERROR_SYSTEM;
         char buf[ERROR_MAX];
-        char *errstr = strerror_r(errno, buf, sizeof(buf));
+		strerror_r(errno, buf, sizeof(buf));
 
         char *begin = ts.error_message;
         char *end = begin + ERROR_MAX;
@@ -187,7 +187,7 @@ qd_error_t qd_error_errno_impl(int errnum, const char *file, int line, const cha
         va_start(arglist, fmt);
         vaprintf(&begin, end, fmt, arglist);
         va_end(arglist);
-        aprintf(&begin, end, ": %s", errstr);
+        aprintf(&begin, end, ": %s", buf);
         qd_log_impl(log_source, QD_LOG_ERROR, file, line, "%s", qd_error_message());
         return qd_error_code();
     }

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/4926d75a/src/posix/driver.c
----------------------------------------------------------------------
diff --git a/src/posix/driver.c b/src/posix/driver.c
index e9d43e3..b7a4958 100644
--- a/src/posix/driver.c
+++ b/src/posix/driver.c
@@ -37,6 +37,10 @@
 #include <assert.h>
 #include <time.h>
 
+#ifdef __sun
+#include <signal.h>
+#endif
+
 #include <qpid/dispatch/driver.h>
 #include <qpid/dispatch/threading.h>
 #include "alloc.h"
@@ -264,8 +268,9 @@ qdpn_listener_t *qdpn_listener(qdpn_driver_t *driver,
 {
     if (!driver) return NULL;
 
-    struct addrinfo *addr;
-    int code = getaddrinfo(host, port, NULL, &addr);
+    struct addrinfo hints = {0}, *addr;
+    hints.ai_socktype = SOCK_STREAM;
+    int code = getaddrinfo(host, port, &hints, &addr);
     if (code) {
         qd_log(driver->log, QD_LOG_ERROR, "getaddrinfo(%s, %s): %s\n", host, port, gai_strerror(code));
         return 0;
@@ -481,8 +486,9 @@ qdpn_connector_t *qdpn_connector(qdpn_driver_t *driver,
 {
     if (!driver) return NULL;
 
-    struct addrinfo *addr;
-    int code = getaddrinfo(host, port, NULL, &addr);
+    struct addrinfo hints = {0}, *addr;
+    hints.ai_socktype = SOCK_STREAM;
+    int code = getaddrinfo(host, port, &hints, &addr);
     if (code) {
         qd_log(driver->log, QD_LOG_ERROR, "getaddrinfo(%s, %s): %s", host, port, gai_strerror(code));
         return 0;
@@ -788,7 +794,11 @@ void qdpn_connector_process(qdpn_connector_t *c)
                 c->status |= PN_SEL_WR;
                 if (c->pending_write) {
                     c->pending_write = false;
+                    #ifdef MSG_NOSIGNAL
                     ssize_t n = send(c->fd, pn_transport_head(transport), pending, MSG_NOSIGNAL);
+                    #else
+                    ssize_t n = send(c->fd, pn_transport_head(transport), pending, 0);
+                    #endif
                     if (n < 0) {
                         // XXX
                         if (errno != EAGAIN) {
@@ -852,6 +862,12 @@ qdpn_driver_t *qdpn_driver()
     qdpn_configure_sock(d, d->ctrl[0], false);
     qdpn_configure_sock(d, d->ctrl[1], false);
 
+#ifdef __sun
+    struct sigaction act;
+    act.sa_handler = SIG_IGN;
+    sigaction(SIGPIPE, &act, NULL);
+#endif
+
     return d;
 }
 

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/4926d75a/tests/timer_test.c
----------------------------------------------------------------------
diff --git a/tests/timer_test.c b/tests/timer_test.c
index 409cba3..9fab15a 100644
--- a/tests/timer_test.c
+++ b/tests/timer_test.c
@@ -29,7 +29,7 @@
 static unsigned long    fire_mask;
 static qd_timer_list_t  pending_timers;
 static sys_mutex_t     *lock;
-static long             time;
+static long             time_value;
 static qd_timer_t      *timers[16];
 
 
@@ -66,11 +66,11 @@ static char* test_quiet(void *context)
     fire_mask = 0;
 
     sys_mutex_lock(lock);
-    qd_timer_visit_LH(time++);
-    qd_timer_visit_LH(time++);
-    qd_timer_visit_LH(time++);
-    qd_timer_visit_LH(time++);
-    qd_timer_visit_LH(time++);
+    qd_timer_visit_LH(time_value++);
+    qd_timer_visit_LH(time_value++);
+    qd_timer_visit_LH(time_value++);
+    qd_timer_visit_LH(time_value++);
+    qd_timer_visit_LH(time_value++);
     sys_mutex_unlock(lock);
 
     while(fire_head());
@@ -132,9 +132,9 @@ static char* test_immediate_plus_delayed(void *context)
     if (fire_mask != 1)  return "Incorrect fire mask 1";
 
     sys_mutex_lock(lock);
-    qd_timer_visit_LH(time++);
-    time += 8;
-    qd_timer_visit_LH(time++);
+    qd_timer_visit_LH(time_value++);
+    time_value += 8;
+    qd_timer_visit_LH(time_value++);
     sys_mutex_unlock(lock);
 
     if (fire_head() < 1) return "Delayed Failed to fire";
@@ -153,19 +153,19 @@ static char* test_single(void *context)
     if (fire_head() > 0) return "Premature firing 1";
 
     sys_mutex_lock(lock);
-    qd_timer_visit_LH(time++);
+    qd_timer_visit_LH(time_value++);
     sys_mutex_unlock(lock);
     if (fire_head() > 0) return "Premature firing 2";
 
     sys_mutex_lock(lock);
-    qd_timer_visit_LH(time++);
+    qd_timer_visit_LH(time_value++);
     sys_mutex_unlock(lock);
     if (fire_head() < 1) return "Failed to fire";
 
     sys_mutex_lock(lock);
-    qd_timer_visit_LH(time++);
-    qd_timer_visit_LH(time++);
-    qd_timer_visit_LH(time++);
+    qd_timer_visit_LH(time_value++);
+    qd_timer_visit_LH(time_value++);
+    qd_timer_visit_LH(time_value++);
     sys_mutex_unlock(lock);
     if (fire_head() != 0) return "Spurious fires";
 
@@ -185,8 +185,8 @@ static char* test_two_inorder(void *context)
     qd_timer_schedule(timers[1], 4);
 
     sys_mutex_lock(lock);
-    qd_timer_visit_LH(time++);
-    qd_timer_visit_LH(time++);
+    qd_timer_visit_LH(time_value++);
+    qd_timer_visit_LH(time_value++);
     sys_mutex_unlock(lock);
     int count = fire_head();
     if (count < 1) return "First failed to fire";
@@ -194,8 +194,8 @@ static char* test_two_inorder(void *context)
     if (fire_mask != 1) return "Incorrect fire mask 1";
 
     sys_mutex_lock(lock);
-    qd_timer_visit_LH(time++);
-    qd_timer_visit_LH(time++);
+    qd_timer_visit_LH(time_value++);
+    qd_timer_visit_LH(time_value++);
     sys_mutex_unlock(lock);
     if (fire_head() < 1) return "Second failed to fire";
     if (fire_mask != 3)  return "Incorrect fire mask 3";
@@ -213,8 +213,8 @@ static char* test_two_reverse(void *context)
     qd_timer_schedule(timers[1], 2);
 
     sys_mutex_lock(lock);
-    qd_timer_visit_LH(time++);
-    qd_timer_visit_LH(time++);
+    qd_timer_visit_LH(time_value++);
+    qd_timer_visit_LH(time_value++);
     sys_mutex_unlock(lock);
     int count = fire_head();
     if (count < 1) return "First failed to fire";
@@ -222,8 +222,8 @@ static char* test_two_reverse(void *context)
     if (fire_mask != 2) return "Incorrect fire mask 2";
 
     sys_mutex_lock(lock);
-    qd_timer_visit_LH(time++);
-    qd_timer_visit_LH(time++);
+    qd_timer_visit_LH(time_value++);
+    qd_timer_visit_LH(time_value++);
     sys_mutex_unlock(lock);
     if (fire_head() < 1) return "Second failed to fire";
     if (fire_mask != 3)  return "Incorrect fire mask 3";
@@ -241,8 +241,8 @@ static char* test_two_duplicate(void *context)
     qd_timer_schedule(timers[1], 2);
 
     sys_mutex_lock(lock);
-    qd_timer_visit_LH(time++);
-    qd_timer_visit_LH(time++);
+    qd_timer_visit_LH(time_value++);
+    qd_timer_visit_LH(time_value++);
     sys_mutex_unlock(lock);
     int count = fire_head();
     if (count != 2) return "Expected two firings";
@@ -250,8 +250,8 @@ static char* test_two_duplicate(void *context)
     if (fire_mask != 3) return "Incorrect fire mask 3";
 
     sys_mutex_lock(lock);
-    qd_timer_visit_LH(time++);
-    qd_timer_visit_LH(time++);
+    qd_timer_visit_LH(time_value++);
+    qd_timer_visit_LH(time_value++);
     sys_mutex_unlock(lock);
     if (fire_head() > 0) return "Spurious timer fires";
 
@@ -270,8 +270,8 @@ static char* test_separated(void *context)
     qd_timer_schedule(timers[1], 4);
 
     sys_mutex_lock(lock);
-    qd_timer_visit_LH(time++);
-    qd_timer_visit_LH(time++);
+    qd_timer_visit_LH(time_value++);
+    qd_timer_visit_LH(time_value++);
     sys_mutex_unlock(lock);
     count = fire_head();
     if (count < 1) return "First failed to fire";
@@ -282,8 +282,8 @@ static char* test_separated(void *context)
     qd_timer_schedule(timers[3], 4);
 
     sys_mutex_lock(lock);
-    qd_timer_visit_LH(time++);
-    qd_timer_visit_LH(time++);
+    qd_timer_visit_LH(time_value++);
+    qd_timer_visit_LH(time_value++);
     sys_mutex_unlock(lock);
     count = fire_head();
     fire_head();
@@ -292,20 +292,20 @@ static char* test_separated(void *context)
     if (fire_mask != 7)  return "Incorrect fire mask 7";
 
     sys_mutex_lock(lock);
-    qd_timer_visit_LH(time++);
-    qd_timer_visit_LH(time++);
+    qd_timer_visit_LH(time_value++);
+    qd_timer_visit_LH(time_value++);
     sys_mutex_unlock(lock);
     count = fire_head();
     if (count < 1) return "Fourth failed to fire";
     if (fire_mask != 15) return "Incorrect fire mask 15";
 
     sys_mutex_lock(lock);
-    qd_timer_visit_LH(time++);
-    qd_timer_visit_LH(time++);
-    qd_timer_visit_LH(time++);
-    qd_timer_visit_LH(time++);
-    qd_timer_visit_LH(time++);
-    qd_timer_visit_LH(time++);
+    qd_timer_visit_LH(time_value++);
+    qd_timer_visit_LH(time_value++);
+    qd_timer_visit_LH(time_value++);
+    qd_timer_visit_LH(time_value++);
+    qd_timer_visit_LH(time_value++);
+    qd_timer_visit_LH(time_value++);
     sys_mutex_unlock(lock);
     count = fire_head();
     if (count > 0) return "Spurious fire";
@@ -350,7 +350,7 @@ static char* test_big(void *context)
         qd_timer_schedule(timers[i], durations[i]);
     for (i = 0; i < 18; i++) {
         sys_mutex_lock(lock);
-        qd_timer_visit_LH(time++);
+        qd_timer_visit_LH(time_value++);
         sys_mutex_unlock(lock);
         while(fire_head());
         if (fire_mask != masks[i]) {
@@ -371,7 +371,7 @@ int timer_tests(void)
     fire_mask = 0;
     DEQ_INIT(pending_timers);
     lock = qd_timer_lock();
-    time = 1;
+    time_value = 1;
 
     timers[0]  = qd_timer(0, 0, (void*) 0x00000001);
     timers[1]  = qd_timer(0, 0, (void*) 0x00000002);


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org