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 */