Module Name:    src
Committed By:   christos
Date:           Tue Aug 28 11:11:18 UTC 2018

Modified Files:
        src/external/bsd/ntp/dist: configure.ac
        src/external/bsd/ntp/dist/libntp: work_fork.c
        src/external/bsd/ntp/include: config.h

Log Message:
- use setproctitle if we have it
- emulate setproctitle better


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.11 -r1.2 src/external/bsd/ntp/dist/configure.ac
cvs rdiff -u -r1.11 -r1.12 src/external/bsd/ntp/dist/libntp/work_fork.c
cvs rdiff -u -r1.21 -r1.22 src/external/bsd/ntp/include/config.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/bsd/ntp/dist/configure.ac
diff -u src/external/bsd/ntp/dist/configure.ac:1.1.1.11 src/external/bsd/ntp/dist/configure.ac:1.2
--- src/external/bsd/ntp/dist/configure.ac:1.1.1.11	Fri Apr  6 20:15:44 2018
+++ src/external/bsd/ntp/dist/configure.ac	Tue Aug 28 07:11:18 2018
@@ -857,7 +857,7 @@ AC_CHECK_FUNCS(
     )]
 )
 
-AC_CHECK_FUNCS([fnmatch getbootfile getuid getrusage nanosleep strsignal])
+AC_CHECK_FUNCS([fnmatch getbootfile getuid getrusage nanosleep strsignal setproctitle])
 
 # kvm_open() is only used by tickadj.  Also see above.
 case "$ac_cv_header_kvm_h" in

Index: src/external/bsd/ntp/dist/libntp/work_fork.c
diff -u src/external/bsd/ntp/dist/libntp/work_fork.c:1.11 src/external/bsd/ntp/dist/libntp/work_fork.c:1.12
--- src/external/bsd/ntp/dist/libntp/work_fork.c:1.11	Thu Apr 13 16:17:42 2017
+++ src/external/bsd/ntp/dist/libntp/work_fork.c	Tue Aug 28 07:11:18 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: work_fork.c,v 1.11 2017/04/13 20:17:42 christos Exp $	*/
+/*	$NetBSD: work_fork.c,v 1.12 2018/08/28 11:11:18 christos Exp $	*/
 
 /*
  * work_fork.c - fork implementation for blocking worker child.
@@ -432,6 +432,32 @@ fork_deferred_worker(void)
 }
 #endif
 
+#if HAVE_SETPROCTITLE == 0
+static void
+setproctitle(const char *fmt, ...)
+{
+	va_list ap;
+	char b1[128];
+	int argcc, argvlen, l;
+
+	if (saved_argc == 0)
+		return;
+
+	va_start(ap, fmt);
+	vsnprintf(b1, sizeof(b1), fmt, ap);
+	va_end(ap);
+
+	/* Clear argv */
+	for (argvlen = 0, argcc = 0; argcc < saved_argc; argcc++) {
+		l = strlen(saved_argv[argcc]);
+		argvlen += l + 1;
+		memset(saved_argv[argcc], 0, l);
+	}
+	l = snprintf(saved_argv[0], argvlen, "ntpd: %s", b1);
+	for (argcc = 1; argcc < saved_argc; argcc++)
+		saved_argv[argcc] = &saved_argv[0][l];
+}
+#endif
 
 static void
 fork_blocking_child(
@@ -543,17 +569,7 @@ fork_blocking_child(
 	 * Change the process name of the child to avoid confusion
 	 * about ntpd trunning twice.
 	 */
-	if (saved_argc != 0) {
-		int argcc;
-		int argvlen = 0;
-		/* Clear argv */
-		for (argcc = 0; argcc < saved_argc; argcc++) {
-			int l = strlen(saved_argv[argcc]);
-			argvlen += l + 1;
-			memset(saved_argv[argcc], 0, l);
-		}
-		strlcpy(saved_argv[0], "ntpd: asynchronous dns resolver", argvlen);
-	}
+	setproctitle("asynchronous dns resolver");
 
 	/*
 	 * In the child, close all files except stdin, stdout, stderr,

Index: src/external/bsd/ntp/include/config.h
diff -u src/external/bsd/ntp/include/config.h:1.21 src/external/bsd/ntp/include/config.h:1.22
--- src/external/bsd/ntp/include/config.h:1.21	Mon Apr  9 15:33:14 2018
+++ src/external/bsd/ntp/include/config.h	Tue Aug 28 07:11:18 2018
@@ -330,6 +330,8 @@
 /* Define to 1 if you have `alloca', as a function or macro. */
 #define HAVE_ALLOCA 1
 
+#define HAVE_SETPROCTITLE 1
+
 /* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
    */
 /* #undef HAVE_ALLOCA_H */

Reply via email to