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