summaryrefslogtreecommitdiffstats
path: root/devel
diff options
context:
space:
mode:
authormarcus <marcus@df743ca5-7f9a-e211-a948-0013205c9059>2010-03-14 06:30:46 +0800
committermarcus <marcus@df743ca5-7f9a-e211-a948-0013205c9059>2010-03-14 06:30:46 +0800
commit9e5f4fa7e3294e404539c475f12d41c0bfcdbfdf (patch)
treea4727449adbef141160660faeccd9a5a2c6e8e18 /devel
parent03af88608d2e12393a8552b37580849f27c96035 (diff)
downloadmarcuscom-ports-9e5f4fa7e3294e404539c475f12d41c0bfcdbfdf.tar
marcuscom-ports-9e5f4fa7e3294e404539c475f12d41c0bfcdbfdf.tar.gz
marcuscom-ports-9e5f4fa7e3294e404539c475f12d41c0bfcdbfdf.tar.bz2
marcuscom-ports-9e5f4fa7e3294e404539c475f12d41c0bfcdbfdf.tar.lz
marcuscom-ports-9e5f4fa7e3294e404539c475f12d41c0bfcdbfdf.tar.xz
marcuscom-ports-9e5f4fa7e3294e404539c475f12d41c0bfcdbfdf.tar.zst
marcuscom-ports-9e5f4fa7e3294e404539c475f12d41c0bfcdbfdf.zip
Linux is more relaxed when it comes to the timeout argument to poll(2).
Linux will accept aby negative number to mean an infinite timeout. FreeBSD will only accept -1. Make sure we do not pass an aribtrary negative number to poll(2) to avoid an infinite EINVAL loop. git-svn-id: svn://creme-brulee.marcuscom.com/ports/trunk@13818 df743ca5-7f9a-e211-a948-0013205c9059
Diffstat (limited to 'devel')
-rw-r--r--devel/dbus/Makefile4
-rw-r--r--devel/dbus/files/patch-dbus_dbus-connection.c67
2 files changed, 69 insertions, 2 deletions
diff --git a/devel/dbus/Makefile b/devel/dbus/Makefile
index b053849af..ef8c4d98d 100644
--- a/devel/dbus/Makefile
+++ b/devel/dbus/Makefile
@@ -3,12 +3,12 @@
# Whom: Joe Marcus Clarke <marcus@FreeBSD.org>
#
# $FreeBSD: ports/devel/dbus/Makefile,v 1.77 2009/11/28 20:05:31 marcus Exp $
-# $MCom: ports/devel/dbus/Makefile,v 1.36 2010/02/13 18:57:59 marcus Exp $
+# $MCom: ports/devel/dbus/Makefile,v 1.37 2010/02/15 13:38:59 kwm Exp $
#
PORTNAME= dbus
PORTVERSION?= 1.2.20
-PORTREVISION?= 0
+PORTREVISION?= 1
CATEGORIES= devel gnome
MASTER_SITES= http://dbus.freedesktop.org/releases/dbus/
diff --git a/devel/dbus/files/patch-dbus_dbus-connection.c b/devel/dbus/files/patch-dbus_dbus-connection.c
new file mode 100644
index 000000000..b992b9e5e
--- /dev/null
+++ b/devel/dbus/files/patch-dbus_dbus-connection.c
@@ -0,0 +1,67 @@
+--- dbus/dbus-connection.c.orig 2010-03-13 17:21:40.000000000 -0500
++++ dbus/dbus-connection.c 2010-03-13 17:25:28.000000000 -0500
+@@ -2280,7 +2280,7 @@ _dbus_connection_block_pending_call (DBu
+ DBusConnection *connection;
+ dbus_uint32_t client_serial;
+ DBusTimeout *timeout;
+- int timeout_milliseconds, elapsed_milliseconds;
++ int timeout_milliseconds, elapsed_milliseconds, remain_milliseconds;
+
+ _dbus_assert (pending != NULL);
+
+@@ -2360,6 +2360,10 @@ _dbus_connection_block_pending_call (DBu
+ _dbus_get_current_time (&tv_sec, &tv_usec);
+ elapsed_milliseconds = (tv_sec - start_tv_sec) * 1000 +
+ (tv_usec - start_tv_usec) / 1000;
++ if (timeout_milliseconds != -1)
++ remain_milliseconds = timeout_milliseconds - elapsed_milliseconds;
++ else
++ remain_milliseconds = -1;
+
+ if (!_dbus_connection_get_is_connected_unlocked (connection))
+ {
+@@ -2386,7 +2390,7 @@ _dbus_connection_block_pending_call (DBu
+ */
+ _dbus_verbose ("dbus_connection_send_with_reply_and_block() waiting for more memory\n");
+
+- _dbus_memory_pause_based_on_timeout (timeout_milliseconds - elapsed_milliseconds);
++ _dbus_memory_pause_based_on_timeout (remain_milliseconds);
+ }
+ else
+ {
+@@ -2394,7 +2398,7 @@ _dbus_connection_block_pending_call (DBu
+ _dbus_connection_do_iteration_unlocked (connection,
+ DBUS_ITERATION_DO_READING |
+ DBUS_ITERATION_BLOCK,
+- timeout_milliseconds - elapsed_milliseconds);
++ remain_milliseconds);
+ }
+
+ goto recheck_status;
+@@ -2403,7 +2407,7 @@ _dbus_connection_block_pending_call (DBu
+ _dbus_verbose ("dbus_connection_send_with_reply_and_block(): clock set backward\n");
+ else if (elapsed_milliseconds < timeout_milliseconds)
+ {
+- _dbus_verbose ("dbus_connection_send_with_reply_and_block(): %d milliseconds remain\n", timeout_milliseconds - elapsed_milliseconds);
++ _dbus_verbose ("dbus_connection_send_with_reply_and_block(): %d milliseconds remain\n", remain_milliseconds);
+
+ if (status == DBUS_DISPATCH_NEED_MEMORY)
+ {
+@@ -2413,7 +2417,7 @@ _dbus_connection_block_pending_call (DBu
+ */
+ _dbus_verbose ("dbus_connection_send_with_reply_and_block() waiting for more memory\n");
+
+- _dbus_memory_pause_based_on_timeout (timeout_milliseconds - elapsed_milliseconds);
++ _dbus_memory_pause_based_on_timeout (remain_milliseconds);
+ }
+ else
+ {
+@@ -2421,7 +2425,7 @@ _dbus_connection_block_pending_call (DBu
+ _dbus_connection_do_iteration_unlocked (connection,
+ DBUS_ITERATION_DO_READING |
+ DBUS_ITERATION_BLOCK,
+- timeout_milliseconds - elapsed_milliseconds);
++ remain_milliseconds);
+ }
+
+ goto recheck_status;