[BACK]Return to patch-dbeacon.cpp CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / pkgsrc / mbone / dbeacon / patches

File: [cvs.NetBSD.org] / pkgsrc / mbone / dbeacon / patches / patch-dbeacon.cpp (download)

Revision 1.2, Tue Dec 9 10:45:51 2014 UTC (9 years, 4 months ago) by he
Branch: MAIN
CVS Tags: pkgsrc-2024Q1-base, pkgsrc-2024Q1, pkgsrc-2023Q4-base, pkgsrc-2023Q4, pkgsrc-2023Q3-base, pkgsrc-2023Q3, pkgsrc-2023Q2-base, pkgsrc-2023Q2, pkgsrc-2023Q1-base, pkgsrc-2023Q1, pkgsrc-2022Q4-base, pkgsrc-2022Q4, pkgsrc-2022Q3-base, pkgsrc-2022Q3, pkgsrc-2022Q2-base, pkgsrc-2022Q2, pkgsrc-2022Q1-base, pkgsrc-2022Q1, pkgsrc-2021Q4-base, pkgsrc-2021Q4, pkgsrc-2021Q3-base, pkgsrc-2021Q3, pkgsrc-2021Q2-base, pkgsrc-2021Q2, pkgsrc-2021Q1-base, pkgsrc-2021Q1, pkgsrc-2020Q4-base, pkgsrc-2020Q4, pkgsrc-2020Q3-base, pkgsrc-2020Q3, pkgsrc-2020Q2-base, pkgsrc-2020Q2, pkgsrc-2020Q1-base, pkgsrc-2020Q1, pkgsrc-2019Q4-base, pkgsrc-2019Q4, pkgsrc-2019Q3-base, pkgsrc-2019Q3, pkgsrc-2019Q2-base, pkgsrc-2019Q2, pkgsrc-2019Q1-base, pkgsrc-2019Q1, pkgsrc-2018Q4-base, pkgsrc-2018Q4, pkgsrc-2018Q3-base, pkgsrc-2018Q3, pkgsrc-2018Q2-base, pkgsrc-2018Q2, pkgsrc-2018Q1-base, pkgsrc-2018Q1, pkgsrc-2017Q4-base, pkgsrc-2017Q4, pkgsrc-2017Q3-base, pkgsrc-2017Q3, pkgsrc-2017Q2-base, pkgsrc-2017Q2, pkgsrc-2017Q1-base, pkgsrc-2017Q1, pkgsrc-2016Q4-base, pkgsrc-2016Q4, pkgsrc-2016Q3-base, pkgsrc-2016Q3, pkgsrc-2016Q2-base, pkgsrc-2016Q2, pkgsrc-2016Q1-base, pkgsrc-2016Q1, pkgsrc-2015Q4-base, pkgsrc-2015Q4, pkgsrc-2015Q3-base, pkgsrc-2015Q3, pkgsrc-2015Q2-base, pkgsrc-2015Q2, pkgsrc-2015Q1-base, pkgsrc-2015Q1, pkgsrc-2014Q4-base, pkgsrc-2014Q4, HEAD
Changes since 1.1: +11 -1 lines

It can happen that times() returns ((uint32_t)-1).  If that happens,
retry a limited number of times, and log the events.  Export log() from
the main program for use in dbeacon_posix.cpp.

Fix the matrix.pl script since qw() no longer acts as parenteses, so add
some of our own where called for.

Bump PKGREVISION.

$NetBSD: patch-dbeacon.cpp,v 1.2 2014/12/09 10:45:51 he Exp $

Fix pidfile option handling (in configuration file case).
Also, export log() for use elsewhere.

--- dbeacon.cpp.orig	2007-07-13 13:52:14.000000000 +0000
+++ dbeacon.cpp
@@ -176,7 +176,7 @@ bool daemonize = false;
 bool use_syslog = false;
 bool past_init = false;
 
-const char *pidfile = NULL;
+static string pidfile;
 
 static void next_event(timeval *);
 static void insert_event(uint32_t, uint32_t);
@@ -270,7 +270,7 @@ static void logv(int level, const char *
 	}
 }
 
-static void log(int level, const char *format, ...)
+void log(int level, const char *format, ...)
 {
 	va_list vl;
 	va_start(vl, format);
@@ -464,8 +464,8 @@ int main(int argc, char **argv) {
 			perror("Failed to daemon()ize.");
 			return -1;
 		}
-		if (pidfile) {
-			FILE *f = fopen(pidfile, "w");
+		if (!pidfile.empty()) {
+			FILE *f = fopen(pidfile.c_str(), "w");
 			if (f) {
 				fprintf(f, "%u\n", getpid());
 				fclose(f);
@@ -1657,8 +1657,8 @@ void dumpBigBwStats(int) {
 
 void sendLeaveReport(int) {
 	send_report(LEAVE_REPORT);
-	if (daemonize && pidfile)
-		unlink(pidfile);
+	if (daemonize && !pidfile.empty())
+		unlink(pidfile.c_str());
 	exit(0);
 }