summaryrefslogtreecommitdiff
path: root/mbone/dbeacon
diff options
context:
space:
mode:
Diffstat (limited to 'mbone/dbeacon')
-rw-r--r--mbone/dbeacon/Makefile4
-rw-r--r--mbone/dbeacon/distinfo4
-rw-r--r--mbone/dbeacon/patches/patch-dbeacon__posix.cpp32
3 files changed, 22 insertions, 18 deletions
diff --git a/mbone/dbeacon/Makefile b/mbone/dbeacon/Makefile
index ec01a468726..077669af24a 100644
--- a/mbone/dbeacon/Makefile
+++ b/mbone/dbeacon/Makefile
@@ -1,8 +1,8 @@
-# $NetBSD: Makefile,v 1.6 2015/01/13 20:25:13 he Exp $
+# $NetBSD: Makefile,v 1.7 2015/07/01 09:22:20 he Exp $
#
DISTNAME= dbeacon-0.3.9.1
-PKGREVISION= 4
+PKGREVISION= 5
CATEGORIES= mbone
MASTER_SITES= http://fivebits.net/files/dbeacon/
diff --git a/mbone/dbeacon/distinfo b/mbone/dbeacon/distinfo
index eef36d88441..7cc3a1c7d14 100644
--- a/mbone/dbeacon/distinfo
+++ b/mbone/dbeacon/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.5 2015/01/13 20:25:13 he Exp $
+$NetBSD: distinfo,v 1.6 2015/07/01 09:22:20 he Exp $
SHA1 (dbeacon-0.3.9.1.tar.gz) = d6131e723a251c01d245fcb3ead864f1348e2565
RMD160 (dbeacon-0.3.9.1.tar.gz) = 81ec4cfe1c2890c7cdb5afbbd98fd2d0cf2a57a3
@@ -6,4 +6,4 @@ Size (dbeacon-0.3.9.1.tar.gz) = 43893 bytes
SHA1 (patch-contrib_matrix.pl) = 50a5db8c19e7500ef210b873c8dd114edde5dc40
SHA1 (patch-dbeacon.cpp) = a666e67d9523d7cd2d11cd60b61e01c4f7f933c7
SHA1 (patch-dbeacon.h) = 8396f6702402100f37cbae30d19cd2b0bb28fb4a
-SHA1 (patch-dbeacon__posix.cpp) = 634eb939c71d59d191c3e44242290ab07cb77b08
+SHA1 (patch-dbeacon__posix.cpp) = 757a4f91078348a00bbb2258496f3916bec49ef5
diff --git a/mbone/dbeacon/patches/patch-dbeacon__posix.cpp b/mbone/dbeacon/patches/patch-dbeacon__posix.cpp
index 3376d96d320..e2fbe2ce8d3 100644
--- a/mbone/dbeacon/patches/patch-dbeacon__posix.cpp
+++ b/mbone/dbeacon/patches/patch-dbeacon__posix.cpp
@@ -1,45 +1,49 @@
-$NetBSD: patch-dbeacon__posix.cpp,v 1.2 2015/01/13 20:25:13 he Exp $
+$NetBSD: patch-dbeacon__posix.cpp,v 1.3 2015/07/01 09:22:20 he Exp $
-Replace use of times() with gettimeofday(), since all we use it
-for is to get a millisecond timestamp, and with a 32-bit unsigned
-clock_t and 100Hz tick, times() wraps around every 500 days or so,
-and the code then falls into an assert() in dbeacon.cpp.
+Replace use of times() with clock_gettime(CLOCK_MONOTONIC), since
+all we use it for is to get a millisecond timestamp, and with a
+32-bit unsigned clock_t and 100Hz tick, times() wraps around every
+500 days or so, and the code then falls into an assert() in
+dbeacon.cpp.
-Still retry a few times if gettimeofday() for some reason should
+Still retry a few times if clock_gettime() for some reason should
decide to fail.
--- dbeacon_posix.cpp.orig 2007-06-09 11:35:57.000000000 +0000
+++ dbeacon_posix.cpp
-@@ -25,6 +25,7 @@
+@@ -23,8 +23,10 @@
+ #include <netinet/in.h>
+ #include <arpa/inet.h>
#include <sys/time.h>
++#include <time.h>
#include <netdb.h>
#include <unistd.h>
+#include <syslog.h>
#include <sys/uio.h>
#include <sys/times.h>
-@@ -515,11 +516,24 @@ void address::set(const sockaddr *sa) {
+@@ -515,11 +517,24 @@ void address::set(const sockaddr *sa) {
}
uint64_t get_timestamp() {
- struct tms tmp;
-+ struct timeval tv;
++ struct timespec ts;
+ uint64_t timestamp;
+ int n = 0;
- uint64_t v = times(&tmp);
+ retry:
-+ if (gettimeofday(&tv, 0) != 0) {
-+ log(LOG_WARNING, "gettimeofday() failed: %m");
++ if (clock_gettime(CLOCK_MONOTONIC, &ts) != 0) {
++ log(LOG_WARNING, "clock_gettime(CLOCK_MONOTONIC) failed: %m");
+ if (++n < 5)
+ goto retry;
+ else
+ log(LOG_ERR,
-+ "gettimeofday() failed after 5 retries: %m");
++ "clock_gettime(CLOCK_MONOTONIC) failed after 5 retries: %m");
+ }
-+ timestamp = tv.tv_sec;
++ timestamp = ts.tv_sec;
+ timestamp *= 1000;
-+ timestamp += tv.tv_usec / 1000;
++ timestamp += ts.tv_nsec / 1000000;
- return (v * 1000) / sysconf(_SC_CLK_TCK);
+ return timestamp;