Date: Fri, 22 Jul 2016 23:05:16 +0000 (UTC) From: Mark Johnston <markj@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r303206 - in user/alc/PQ_LAUNDRY: . cddl/contrib/opensolaris/cmd/zdb contrib/binutils/bfd contrib/libcxxrt contrib/llvm/projects/libunwind/include contrib/openresolv crypto/heimdal/lib/... Message-ID: <201607222305.u6MN5G76028496@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: markj Date: Fri Jul 22 23:05:16 2016 New Revision: 303206 URL: https://svnweb.freebsd.org/changeset/base/303206 Log: MFH r303204 Added: user/alc/PQ_LAUNDRY/sys/dev/hyperv/utilities/hv_utilreg.h - copied unchanged from r303204, head/sys/dev/hyperv/utilities/hv_utilreg.h user/alc/PQ_LAUNDRY/sys/dev/hyperv/vmbus/vmbus_chanvar.h - copied unchanged from r303204, head/sys/dev/hyperv/vmbus/vmbus_chanvar.h user/alc/PQ_LAUNDRY/sys/dev/nvme/nvme_sim.c - copied unchanged from r303204, head/sys/dev/nvme/nvme_sim.c user/alc/PQ_LAUNDRY/sys/dev/uart/uart_cpu_acpi.h - copied unchanged from r303204, head/sys/dev/uart/uart_cpu_acpi.h Modified: user/alc/PQ_LAUNDRY/MAINTAINERS (contents, props changed) user/alc/PQ_LAUNDRY/Makefile.inc1 user/alc/PQ_LAUNDRY/UPDATING user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/cmd/zdb/zdb.8 user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/cmd/zdb/zdb.c user/alc/PQ_LAUNDRY/contrib/binutils/bfd/elfxx-mips.c user/alc/PQ_LAUNDRY/contrib/libcxxrt/exception.cc user/alc/PQ_LAUNDRY/contrib/llvm/projects/libunwind/include/__libunwind_config.h user/alc/PQ_LAUNDRY/contrib/llvm/projects/libunwind/include/unwind.h user/alc/PQ_LAUNDRY/contrib/openresolv/Makefile user/alc/PQ_LAUNDRY/contrib/openresolv/configure user/alc/PQ_LAUNDRY/contrib/openresolv/dnsmasq.in user/alc/PQ_LAUNDRY/contrib/openresolv/libc.in user/alc/PQ_LAUNDRY/contrib/openresolv/named.in user/alc/PQ_LAUNDRY/contrib/openresolv/resolvconf.8.in user/alc/PQ_LAUNDRY/contrib/openresolv/resolvconf.conf.5.in user/alc/PQ_LAUNDRY/contrib/openresolv/resolvconf.in user/alc/PQ_LAUNDRY/contrib/openresolv/unbound.in user/alc/PQ_LAUNDRY/crypto/heimdal/lib/roken/version-script.map user/alc/PQ_LAUNDRY/etc/ntp/leap-seconds user/alc/PQ_LAUNDRY/lib/libc/gen/glob.c user/alc/PQ_LAUNDRY/lib/libc/sys/aio_fsync.2 user/alc/PQ_LAUNDRY/lib/libc/sys/aio_mlock.2 user/alc/PQ_LAUNDRY/lib/libc/sys/aio_read.2 user/alc/PQ_LAUNDRY/lib/libc/sys/aio_write.2 user/alc/PQ_LAUNDRY/lib/libc/sys/pipe.2 user/alc/PQ_LAUNDRY/lib/libmd/Makefile user/alc/PQ_LAUNDRY/release/tools/arm.subr user/alc/PQ_LAUNDRY/share/man/man4/aio.4 user/alc/PQ_LAUNDRY/share/man/man4/amdpm.4 user/alc/PQ_LAUNDRY/share/man/man4/amdsmb.4 user/alc/PQ_LAUNDRY/share/man/man4/ichsmb.4 user/alc/PQ_LAUNDRY/share/man/man4/intpm.4 user/alc/PQ_LAUNDRY/share/man/man4/ismt.4 user/alc/PQ_LAUNDRY/share/man/man7/arch.7 user/alc/PQ_LAUNDRY/share/man/man7/build.7 user/alc/PQ_LAUNDRY/share/misc/committers-src.dot user/alc/PQ_LAUNDRY/share/mk/bsd.cpu.mk user/alc/PQ_LAUNDRY/share/mk/bsd.sys.mk user/alc/PQ_LAUNDRY/sys/arm/allwinner/a10_gpio.c user/alc/PQ_LAUNDRY/sys/arm/allwinner/a20/a20_padconf.c user/alc/PQ_LAUNDRY/sys/arm/allwinner/aw_nmi.c user/alc/PQ_LAUNDRY/sys/arm/allwinner/aw_sid.c user/alc/PQ_LAUNDRY/sys/arm/allwinner/aw_sid.h user/alc/PQ_LAUNDRY/sys/cam/cam_ccb.h user/alc/PQ_LAUNDRY/sys/cam/cam_xpt.c user/alc/PQ_LAUNDRY/sys/cam/nvme/nvme_xpt.c user/alc/PQ_LAUNDRY/sys/conf/config.mk user/alc/PQ_LAUNDRY/sys/conf/files user/alc/PQ_LAUNDRY/sys/conf/files.arm64 user/alc/PQ_LAUNDRY/sys/conf/kern.mk user/alc/PQ_LAUNDRY/sys/conf/kern.pre.mk user/alc/PQ_LAUNDRY/sys/dev/cxgbe/t4_sge.c user/alc/PQ_LAUNDRY/sys/dev/e1000/if_igb.c user/alc/PQ_LAUNDRY/sys/dev/e1000/if_lem.c user/alc/PQ_LAUNDRY/sys/dev/fb/vesa.c user/alc/PQ_LAUNDRY/sys/dev/flash/mx25l.c user/alc/PQ_LAUNDRY/sys/dev/hyperv/include/hyperv.h user/alc/PQ_LAUNDRY/sys/dev/hyperv/include/vmbus.h user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/hv_net_vsc.c user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/hv_net_vsc.h user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/hv_rndis.h user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/hv_rndis_filter.c user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/hv_rndis_filter.h user/alc/PQ_LAUNDRY/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c user/alc/PQ_LAUNDRY/sys/dev/hyperv/utilities/hv_heartbeat.c user/alc/PQ_LAUNDRY/sys/dev/hyperv/utilities/hv_kvp.c user/alc/PQ_LAUNDRY/sys/dev/hyperv/utilities/hv_shutdown.c user/alc/PQ_LAUNDRY/sys/dev/hyperv/utilities/hv_timesync.c user/alc/PQ_LAUNDRY/sys/dev/hyperv/utilities/hv_util.c user/alc/PQ_LAUNDRY/sys/dev/hyperv/utilities/hv_util.h user/alc/PQ_LAUNDRY/sys/dev/hyperv/vmbus/hv_ring_buffer.c user/alc/PQ_LAUNDRY/sys/dev/hyperv/vmbus/hv_vmbus_priv.h user/alc/PQ_LAUNDRY/sys/dev/hyperv/vmbus/vmbus.c user/alc/PQ_LAUNDRY/sys/dev/hyperv/vmbus/vmbus_chan.c user/alc/PQ_LAUNDRY/sys/dev/hyperv/vmbus/vmbus_reg.h user/alc/PQ_LAUNDRY/sys/dev/hyperv/vmbus/vmbus_var.h user/alc/PQ_LAUNDRY/sys/dev/nvme/nvme_private.h user/alc/PQ_LAUNDRY/sys/dev/pty/pty.c user/alc/PQ_LAUNDRY/sys/dev/uart/uart_bus_acpi.c user/alc/PQ_LAUNDRY/sys/dev/uart/uart_bus_fdt.c user/alc/PQ_LAUNDRY/sys/dev/uart/uart_cpu_fdt.c user/alc/PQ_LAUNDRY/sys/dev/uart/uart_cpu_fdt.h user/alc/PQ_LAUNDRY/sys/dev/uart/uart_dev_pl011.c user/alc/PQ_LAUNDRY/sys/dev/urtwn/if_urtwn.c user/alc/PQ_LAUNDRY/sys/dev/urtwn/if_urtwnreg.h user/alc/PQ_LAUNDRY/sys/kern/imgact_elf.c user/alc/PQ_LAUNDRY/sys/kern/kern_timeout.c user/alc/PQ_LAUNDRY/sys/kern/subr_prf.c user/alc/PQ_LAUNDRY/sys/kern/vfs_aio.c user/alc/PQ_LAUNDRY/sys/modules/cam/Makefile user/alc/PQ_LAUNDRY/sys/modules/uart/Makefile user/alc/PQ_LAUNDRY/sys/netinet/if_ether.c user/alc/PQ_LAUNDRY/sys/netinet/sctp_output.c user/alc/PQ_LAUNDRY/sys/netinet6/nd6.c user/alc/PQ_LAUNDRY/sys/sys/systm.h user/alc/PQ_LAUNDRY/sys/ufs/ufs/ufs_lookup.c user/alc/PQ_LAUNDRY/sys/ufs/ufs/ufs_vnops.c user/alc/PQ_LAUNDRY/sys/vm/uma_core.c user/alc/PQ_LAUNDRY/sys/vm/vm_fault.c user/alc/PQ_LAUNDRY/usr.bin/Makefile user/alc/PQ_LAUNDRY/usr.bin/gcore/elfcore.c user/alc/PQ_LAUNDRY/usr.bin/sed/process.c user/alc/PQ_LAUNDRY/usr.sbin/camdd/camdd.c user/alc/PQ_LAUNDRY/usr.sbin/crashinfo/crashinfo.sh user/alc/PQ_LAUNDRY/usr.sbin/ctld/ctl.conf.5 user/alc/PQ_LAUNDRY/usr.sbin/ctld/ctld.8 user/alc/PQ_LAUNDRY/usr.sbin/ctld/login.c Directory Properties: user/alc/PQ_LAUNDRY/ (props changed) user/alc/PQ_LAUNDRY/cddl/ (props changed) user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/ (props changed) user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/cmd/zdb/ (props changed) user/alc/PQ_LAUNDRY/contrib/binutils/ (props changed) user/alc/PQ_LAUNDRY/contrib/libcxxrt/ (props changed) user/alc/PQ_LAUNDRY/contrib/llvm/ (props changed) user/alc/PQ_LAUNDRY/contrib/llvm/projects/libunwind/ (props changed) user/alc/PQ_LAUNDRY/contrib/openresolv/ (props changed) user/alc/PQ_LAUNDRY/crypto/heimdal/ (props changed) user/alc/PQ_LAUNDRY/crypto/openssh/ (props changed) user/alc/PQ_LAUNDRY/gnu/usr.bin/binutils/ (props changed) user/alc/PQ_LAUNDRY/gnu/usr.bin/gdb/ (props changed) Modified: user/alc/PQ_LAUNDRY/MAINTAINERS ============================================================================== --- user/alc/PQ_LAUNDRY/MAINTAINERS Fri Jul 22 22:46:41 2016 (r303205) +++ user/alc/PQ_LAUNDRY/MAINTAINERS Fri Jul 22 23:05:16 2016 (r303206) @@ -105,3 +105,4 @@ vmm(4) neel,grehan Pre-commit review re autofs(5) trasz Pre-commit review recommended. iscsi(4) trasz Pre-commit review recommended. rctl(8) trasz Pre-commit review recommended. +sys/dev/ofw nwhitehorn Pre-commit review recommended. Modified: user/alc/PQ_LAUNDRY/Makefile.inc1 ============================================================================== --- user/alc/PQ_LAUNDRY/Makefile.inc1 Fri Jul 22 22:46:41 2016 (r303205) +++ user/alc/PQ_LAUNDRY/Makefile.inc1 Fri Jul 22 23:05:16 2016 (r303206) @@ -22,6 +22,8 @@ # to be created before files are installed # LOCAL_TOOL_DIRS="list of dirs" to add additional dirs to the build-tools # list +# LOCAL_XTOOL_DIRS="list of dirs" to add additional dirs to the +# cross-tools target # METALOG="path to metadata log" to write permission and ownership # when NO_ROOT is set. (default: ${DESTDIR}/METALOG) # TARGET="machine" to crossbuild world for a different machine type @@ -1815,6 +1817,7 @@ _usb_tools= sys/boot/usb/tools cross-tools: .MAKE .PHONY .for _tool in \ + ${LOCAL_XTOOL_DIRS} \ ${_clang_libs} \ ${_clang} \ ${_binutils} \ Modified: user/alc/PQ_LAUNDRY/UPDATING ============================================================================== --- user/alc/PQ_LAUNDRY/UPDATING Fri Jul 22 22:46:41 2016 (r303205) +++ user/alc/PQ_LAUNDRY/UPDATING Fri Jul 22 23:05:16 2016 (r303206) @@ -33,11 +33,12 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 12 20160622: The libc stub for the pipe(2) system call has been replaced with - a wrapper which calls the pipe2(2) system call and the pipe(2) is now - only implemented by the kernels which include "options - COMPAT_FREEBSD10" in their config file (this is the default). - Users should ensure that this option is enabled in their kernel - or upgrade userspace to r302092 before upgrading their kernel. + a wrapper that calls the pipe2(2) system call and the pipe(2) + system call is now only implemented by the kernels that include + "options COMPAT_FREEBSD10" in their config file (this is the + default). Users should ensure that this option is enabled in + their kernel or upgrade userspace to r302092 before upgrading their + kernel. 20160527: CAM will now strip leading spaces from SCSI disks' serial numbers. Modified: user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/cmd/zdb/zdb.8 ============================================================================== --- user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/cmd/zdb/zdb.8 Fri Jul 22 22:46:41 2016 (r303205) +++ user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/cmd/zdb/zdb.8 Fri Jul 22 23:05:16 2016 (r303206) @@ -86,6 +86,17 @@ pool, and is inherently unstable. The precise output of most invocations is not documented, a knowledge of ZFS internals is assumed. .Pp +If the +.Ar dataset +argument does not contain any +.Sy / +or +.Sy @ +characters, it is interpreted as a pool name. +The root dataset can be specified as +.Pa pool Ns Sy / +(pool name followed by a slash). +.Pp When operating on an imported and active pool it is possible, though unlikely, that zdb may interpret inconsistent pool data and behave erratically. .Sh OPTIONS Modified: user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/cmd/zdb/zdb.c ============================================================================== --- user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/cmd/zdb/zdb.c Fri Jul 22 22:46:41 2016 (r303205) +++ user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/cmd/zdb/zdb.c Fri Jul 22 23:05:16 2016 (r303206) @@ -3558,12 +3558,23 @@ main(int argc, char **argv) nvlist_t *policy = NULL; uint64_t max_txg = UINT64_MAX; int rewind = ZPOOL_NEVER_REWIND; + char *spa_config_path_env; + boolean_t target_is_spa = B_TRUE; (void) setrlimit(RLIMIT_NOFILE, &rl); (void) enable_extended_FILE_stdio(-1, -1); dprintf_setup(&argc, argv); + /* + * If there is an environment variable SPA_CONFIG_PATH it overrides + * default spa_config_path setting. If -U flag is specified it will + * override this environment variable settings once again. + */ + spa_config_path_env = getenv("SPA_CONFIG_PATH"); + if (spa_config_path_env != NULL) + spa_config_path = spa_config_path_env; + while ((c = getopt(argc, argv, "bcdhilmMI:suCDRSAFLXx:evp:t:U:P")) != -1) { switch (c) { @@ -3728,8 +3739,23 @@ main(int argc, char **argv) } } + if (strpbrk(target, "/@") != NULL) { + size_t targetlen; + + target_is_spa = B_FALSE; + /* + * Remove any trailing slash. Later code would get confused + * by it, but we want to allow it so that "pool/" can + * indicate that we want to dump the topmost filesystem, + * rather than the whole pool. + */ + targetlen = strlen(target); + if (targetlen != 0 && target[targetlen - 1] == '/') + target[targetlen - 1] = '\0'; + } + if (error == 0) { - if (strpbrk(target, "/@") == NULL || dump_opt['R']) { + if (target_is_spa || dump_opt['R']) { error = spa_open_rewind(target, &spa, FTAG, policy, NULL); if (error) { Modified: user/alc/PQ_LAUNDRY/contrib/binutils/bfd/elfxx-mips.c ============================================================================== --- user/alc/PQ_LAUNDRY/contrib/binutils/bfd/elfxx-mips.c Fri Jul 22 22:46:41 2016 (r303205) +++ user/alc/PQ_LAUNDRY/contrib/binutils/bfd/elfxx-mips.c Fri Jul 22 23:05:16 2016 (r303206) @@ -4801,7 +4801,7 @@ mips_elf_create_dynamic_relocation (bfd /* We must now calculate the dynamic symbol table index to use in the relocation. */ if (h != NULL - && (!h->root.def_regular + && (sec == NULL || !h->root.def_regular || (info->shared && !info->symbolic && !h->root.forced_local))) { indx = h->root.dynindx; Modified: user/alc/PQ_LAUNDRY/contrib/libcxxrt/exception.cc ============================================================================== --- user/alc/PQ_LAUNDRY/contrib/libcxxrt/exception.cc Fri Jul 22 22:46:41 2016 (r303205) +++ user/alc/PQ_LAUNDRY/contrib/libcxxrt/exception.cc Fri Jul 22 23:05:16 2016 (r303206) @@ -572,6 +572,19 @@ static void free_exception(char *e) } } +#ifdef __LP64__ +/** + * There's an ABI bug in __cxa_exception: unwindHeader requires 16-byte + * alignment but it was broken by the addition of the referenceCount. + * The unwindHeader is at offset 0x58 in __cxa_exception. In order to keep + * compatibility with consumers of the broken __cxa_exception, explicitly add + * padding on allocation (and account for it on free). + */ +static const int exception_alignment_padding = 8; +#else +static const int exception_alignment_padding = 0; +#endif + /** * Allocates an exception structure. Returns a pointer to the space that can * be used to store an object of thrown_size bytes. This function will use an @@ -580,16 +593,19 @@ static void free_exception(char *e) */ extern "C" void *__cxa_allocate_exception(size_t thrown_size) { - size_t size = thrown_size + sizeof(__cxa_exception); + size_t size = exception_alignment_padding + sizeof(__cxa_exception) + + thrown_size; char *buffer = alloc_or_die(size); - return buffer+sizeof(__cxa_exception); + return buffer + exception_alignment_padding + sizeof(__cxa_exception); } extern "C" void *__cxa_allocate_dependent_exception(void) { - size_t size = sizeof(__cxa_dependent_exception); + size_t size = exception_alignment_padding + + sizeof(__cxa_dependent_exception); char *buffer = alloc_or_die(size); - return buffer+sizeof(__cxa_dependent_exception); + return buffer + exception_alignment_padding + + sizeof(__cxa_dependent_exception); } /** @@ -617,7 +633,8 @@ extern "C" void __cxa_free_exception(voi } } - free_exception(reinterpret_cast<char*>(ex)); + free_exception(reinterpret_cast<char*>(ex) - + exception_alignment_padding); } static void releaseException(__cxa_exception *exception) @@ -644,7 +661,8 @@ void __cxa_free_dependent_exception(void { releaseException(realExceptionFromException(reinterpret_cast<__cxa_exception*>(ex))); } - free_exception(reinterpret_cast<char*>(ex)); + free_exception(reinterpret_cast<char*>(ex) - + exception_alignment_padding); } /** Modified: user/alc/PQ_LAUNDRY/contrib/llvm/projects/libunwind/include/__libunwind_config.h ============================================================================== --- user/alc/PQ_LAUNDRY/contrib/llvm/projects/libunwind/include/__libunwind_config.h Fri Jul 22 22:46:41 2016 (r303205) +++ user/alc/PQ_LAUNDRY/contrib/llvm/projects/libunwind/include/__libunwind_config.h Fri Jul 22 23:05:16 2016 (r303206) @@ -50,8 +50,8 @@ # define _LIBUNWIND_MAX_REGISTER 32 # elif defined(__riscv__) # define _LIBUNWIND_TARGET_RISCV 1 -# define _LIBUNWIND_CONTEXT_SIZE 128 /* XXX */ -# define _LIBUNWIND_CURSOR_SIZE 140 /* XXX */ +# define _LIBUNWIND_CONTEXT_SIZE 64 +# define _LIBUNWIND_CURSOR_SIZE 76 # define _LIBUNWIND_MAX_REGISTER 96 # else # error "Unsupported architecture." Modified: user/alc/PQ_LAUNDRY/contrib/llvm/projects/libunwind/include/unwind.h ============================================================================== --- user/alc/PQ_LAUNDRY/contrib/llvm/projects/libunwind/include/unwind.h Fri Jul 22 22:46:41 2016 (r303205) +++ user/alc/PQ_LAUNDRY/contrib/llvm/projects/libunwind/include/unwind.h Fri Jul 22 23:05:16 2016 (r303206) @@ -128,7 +128,7 @@ struct _Unwind_Exception { // added for binary compatibility. uint32_t reserved[3]; #endif -}; +} __attribute__((__aligned__)); typedef _Unwind_Reason_Code (*_Unwind_Stop_Fn) (int version, Modified: user/alc/PQ_LAUNDRY/contrib/openresolv/Makefile ============================================================================== --- user/alc/PQ_LAUNDRY/contrib/openresolv/Makefile Fri Jul 22 22:46:41 2016 (r303205) +++ user/alc/PQ_LAUNDRY/contrib/openresolv/Makefile Fri Jul 22 23:05:16 2016 (r303206) @@ -1,5 +1,4 @@ PKG= openresolv -VERSION= 3.7.3 # Nasty hack so that make clean works without configure being run _CONFIG_MK!= test -e config.mk && echo config.mk || echo config-null.mk @@ -10,14 +9,12 @@ SBINDIR?= /sbin SYSCONFDIR?= /etc LIBEXECDIR?= /libexec/resolvconf VARDIR?= /var/run/resolvconf -RCDIR?= /etc/rc.d -RESTARTCMD?= if ${RCDIR}/\1 status >/dev/null 2>\&1; then \ - ${RCDIR}/\1 restart; \ - fi INSTALL?= install SED?= sed +VERSION!= ${SED} -n 's/OPENRESOLV_VERSION="\(.*\)".*/\1/p' resolvconf.in + BINMODE?= 0755 DOCMODE?= 0644 MANMODE?= 0444 @@ -33,7 +30,9 @@ SED_SYSCONFDIR= -e 's:@SYSCONFDIR@:${SY SED_LIBEXECDIR= -e 's:@LIBEXECDIR@:${LIBEXECDIR}:g' SED_VARDIR= -e 's:@VARDIR@:${VARDIR}:g' SED_RCDIR= -e 's:@RCDIR@:${RCDIR}:g' -SED_RESTARTCMD= -e 's:@RESTARTCMD \(.*\)@:${RESTARTCMD}:g' +SED_RESTARTCMD= -e 's:@RESTARTCMD@:${RESTARTCMD}:g' +SED_RCDIR= -e 's:@RCDIR@:${RCDIR}:g' +SED_STATUSARG= -e 's:@STATUSARG@:${STATUSARG}:g' DISTPREFIX?= ${PKG}-${VERSION} DISTFILEGZ?= ${DISTPREFIX}.tar.gz @@ -44,9 +43,10 @@ FOSSILID?= current all: ${TARGET} -.in: +.in: Makefile ${CONFIG_MK} ${SED} ${SED_SBINDIR} ${SED_SYSCONFDIR} ${SED_LIBEXECDIR} \ - ${SED_VARDIR} ${SED_RCDIR} ${SED_RESTARTCMD} \ + ${SED_VARDIR} \ + ${SED_RCDIR} ${SED_RESTARTCMD} ${SED_RCDIR} ${SED_STATUSARG} \ $< > $@ clean: Modified: user/alc/PQ_LAUNDRY/contrib/openresolv/configure ============================================================================== --- user/alc/PQ_LAUNDRY/contrib/openresolv/configure Fri Jul 22 22:46:41 2016 (r303205) +++ user/alc/PQ_LAUNDRY/contrib/openresolv/configure Fri Jul 22 23:05:16 2016 (r303206) @@ -8,6 +8,7 @@ HOST= TARGET= RESTARTCMD= RCDIR= +STATUSARG= for x do opt=${x%%=*} @@ -33,6 +34,8 @@ for x do --target) TARGET=$var;; --libdir) LIBDIR=$var;; --restartcmd) RESTARTCMD=$var;; + --rcdir) RCDIR=$var;; + --statusarg) STATUSARG=$var;; --includedir) eval INCLUDEDIR="$INCLUDEDIR${INCLUDEDIR:+ }$var";; --datadir|--infodir) ;; # ignore autotools --disable-maintainer-mode|--disable-dependency-tracking) ;; @@ -117,7 +120,17 @@ echo "Configuring openresolv for ... $OS rm -rf $CONFIG_MK echo "# $OS" >$CONFIG_MK -for x in SYSCONFDIR SBINDIR LIBEXECDIR VARDIR MANDIR; do +# On FreeBSD, /etc/init.d/foo status returns 0 if foo is not enabled +# regardless of if it's not running. +# So we force onestatus to work around this silly bug. +if [ -z "$STATUSARG" ]; then + case "$OS" in + freebsd*) STATUSARG="onestatus";; + esac +fi + +for x in SYSCONFDIR SBINDIR LIBEXECDIR VARDIR MANDIR RESTARTCMD RCDIR STATUSARG +do eval v=\$$x # Make files look nice for import l=$((10 - ${#x})) @@ -126,96 +139,6 @@ for x in SYSCONFDIR SBINDIR LIBEXECDIR V echo "$x=$t $v" >>$CONFIG_MK done -if [ -z "$RESTARTCMD" ]; then - printf "Checking for systemd ... " - if [ -x /bin/systemctl ]; then - RESTARTCMD="/bin/systemctl try-restart \1" - echo "yes" - elif [ -x /usr/bin/systemctl ]; then - RESTARTCMD="/usr/bin/systemctl try-restart \1" - echo "yes" - else - echo "no" - fi -fi - -# Arch upgraded to systemd, so this check has to be just after systemd -# but higher than the others -if [ -z "$RESTARTCMD" ]; then - printf "Checking for Arch ... " - if [ -e /etc/arch-release -a -d /etc/rc.d ]; then - RCDIR=/etc/rc.d - RESTARTCMD="[ -e /var/run/daemons/\1 ] \&\& /etc/rc.d/\1 restart" - echo "yes" - else - echo "no" - fi -fi - -if [ -z "$RESTARTCMD" ]; then - printf "Checking for OpenRC ... " - if [ -x /sbin/rc-service ]; then - RESTARTCMD="if /sbin/rc-service -e \1; then /sbin/rc-service \1 -- -Ds restart; fi" - echo "yes" - else - echo "no" - fi -fi -if [ -z "$RESTARTCMD" ]; then - printf "Checking for invoke-rc.d ... " - if [ -x /usr/sbin/invoke-rc.d ]; then - RCDIR=/etc/init.d - RESTARTCMD="if /usr/sbin/invoke-rc.d --quiet \1 status >/dev/null 2>\&1; then /usr/sbin/invoke-rc.d \1 restart; fi" - echo "yes" - else - echo "no" - fi -fi -if [ -z "$RESTARTCMD" ]; then - printf "Checking for service ... " - if [ -x /sbin/service ]; then - RCDIR=/etc/init.d - RESTARTCMD="if /sbin/service \1; then /sbin/service \1 restart; fi" - echo "yes" - else - echo "no" - fi -fi -if [ -z "$RESTARTCMD" ]; then - printf "Checking for runit... " - if [ -x /bin/sv ]; then - RESTARTCMD="/bin/sv try-restart \1" - echo "yes" - elif [ -x /usr/bin/sv ]; then - RESTARTCMD="/usr/bin/sv try-restart \1" - echo "yes" - else - echo "no" - fi -fi -if [ -z "$RESTARTCMD" ]; then - for x in /etc/init.d/rc.d /etc/rc.d /etc/init.d; do - printf "Checking for $x ... " - if [ -d $x ]; then - RCDIR=$x - RESTARTCMD="if $x/\1 status >/dev/null 2>\&1; then $x/\1 restart; fi" - echo "yes" - break - else - echo "no" - fi - done -fi - -if [ -z "$RESTARTCMD" ]; then - echo "$0: WARNING: No means of interacting with system services detected!" - exit 1 -fi - -echo "RCDIR= $RCDIR" >>$CONFIG_MK -# Work around bug in the dash shell as "echo 'foo \1'" does bad things -printf "%s\n" "RESTARTCMD= $RESTARTCMD" >>$CONFIG_MK - echo echo " SYSCONFDIR = $SYSCONFDIR" echo " SBINDIR = $SBINDIR" @@ -223,3 +146,7 @@ echo " LIBEXECDIR = $LIBEXECDIR" echo " VARDIR = $RUNDIR" echo " MANDIR = $MANDIR" echo +echo " RESTARTCMD = $RESTARTCMD" +echo " RCDIR = $RCDIR" +echo " STATUSARG = $STATUSARG" +echo Modified: user/alc/PQ_LAUNDRY/contrib/openresolv/dnsmasq.in ============================================================================== --- user/alc/PQ_LAUNDRY/contrib/openresolv/dnsmasq.in Fri Jul 22 22:46:41 2016 (r303205) +++ user/alc/PQ_LAUNDRY/contrib/openresolv/dnsmasq.in Fri Jul 22 23:05:16 2016 (r303206) @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (c) 2007-2012 Roy Marples +# Copyright (c) 2007-2016 Roy Marples # All rights reserved # dnsmasq subscriber for resolvconf @@ -37,7 +37,6 @@ NL=" [ -s "$dnsmasq_pid" ] || dnsmasq_pid=/var/run/dnsmasq/dnsmasq.pid [ -s "$dnsmasq_pid" ] || unset dnsmasq_pid : ${dnsmasq_service:=dnsmasq} -: ${dnsmasq_restart:=@RESTARTCMD ${dnsmasq_service}@} newconf="# Generated by resolvconf$NL" newresolv="$newconf" @@ -180,7 +179,15 @@ if [ -n "$dnsmasq_resolv" ]; then fi if $changed; then - eval $dnsmasq_restart + # dnsmasq does not re-read the configuration file on SIGHUP + if [ -n "$dnsmasq_restart" ]; then + eval $dnsmasq_restart + elif [ -n "$RESTARTCMD" ]; then + set -- ${dnsmasq_service} + eval $RESTARTCMD + else + @SBINDIR@/resolvconf -r ${dnsmasq_service} + fi fi if $dbus; then if [ -s "$dnsmasq_pid" ]; then Modified: user/alc/PQ_LAUNDRY/contrib/openresolv/libc.in ============================================================================== --- user/alc/PQ_LAUNDRY/contrib/openresolv/libc.in Fri Jul 22 22:46:41 2016 (r303205) +++ user/alc/PQ_LAUNDRY/contrib/openresolv/libc.in Fri Jul 22 23:05:16 2016 (r303206) @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (c) 2007-2014 Roy Marples +# Copyright (c) 2007-2016 Roy Marples # All rights reserved # libc subscriber for resolvconf @@ -97,7 +97,6 @@ elif [ -d "$SYSCONFDIR"/resolvconf ]; th fi : ${resolv_conf:=/etc/resolv.conf} : ${libc_service:=nscd} -: ${libc_restart:=@RESTARTCMD ${libc_service}@} : ${list_resolv:=@SBINDIR@/resolvconf -l} if [ "${resolv_conf_head-x}" = x -a -f "$SYSCONFDIR"/resolv.conf.head ]; then resolv_conf_head="$(cat "${SYSCONFDIR}"/resolv.conf.head)" @@ -229,7 +228,14 @@ fi # Create our resolv.conf now (umask 022; echo "$newconf" >"$resolv_conf") -eval $libc_restart +if [ -n "$libc_restart" ]; then + eval $libc_restart +elif [ -n "$RESTARTCMD" ]; then + set -- ${libc_service} + eval $RESTARTCMD +else + @SBINDIR@/resolvconf -r ${libc_service} +fi retval=0 # Notify users of the resolver Modified: user/alc/PQ_LAUNDRY/contrib/openresolv/named.in ============================================================================== --- user/alc/PQ_LAUNDRY/contrib/openresolv/named.in Fri Jul 22 22:46:41 2016 (r303205) +++ user/alc/PQ_LAUNDRY/contrib/openresolv/named.in Fri Jul 22 23:05:16 2016 (r303206) @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (c) 2007-2012 Roy Marples +# Copyright (c) 2007-2016 Roy Marples # All rights reserved # named subscriber for resolvconf @@ -35,18 +35,22 @@ NL=" # Platform specific kludges if [ -z "$named_service" -a -z "$named_restart" -a \ - -d "@RCDIR@" -a ! -x "@RCDIR@"/named ] + -d "$RCDIR" -a ! -x "$RCDIR"/named ] then - if [ -x "@RCDIR@"/bind9 ]; then + if [ -x "$RCDIR"/bind9 ]; then # Debian and derivatives named_service=bind9 - elif [ -x "@RCDIR@"/rc.bind ]; then + elif [ -x "$RCDIR"/rc.bind ]; then # Slackware named_service=rc.bind fi fi : ${named_service:=named} -: ${named_restart:=@RESTARTCMD ${named_service}@} + +: ${named_pid:=/var/run/$named_service.pid} +[ -s "$named_pid" ] || named_pid=/var/run/$named_service/$named_service.pid +[ -s "$named_pid" ] || unset named_pid + newoptions="# Generated by resolvconf$NL" newzones="$newoptions" @@ -101,6 +105,14 @@ if [ -n "$named_zones" ]; then fi fi +# named does not seem to work with SIGHUP which is a same if $changed; then - eval $named_restart + if [ -n "$named_restart" ]; then + eval $named_restart + elif [ -n "$RESTARTCMD" ]; then + set -- ${named_service} + eval $RESTARTCMD + else + @SBINDIR@/resolvconf -r ${named_service} + fi fi Modified: user/alc/PQ_LAUNDRY/contrib/openresolv/resolvconf.8.in ============================================================================== --- user/alc/PQ_LAUNDRY/contrib/openresolv/resolvconf.8.in Fri Jul 22 22:46:41 2016 (r303205) +++ user/alc/PQ_LAUNDRY/contrib/openresolv/resolvconf.8.in Fri Jul 22 23:05:16 2016 (r303206) @@ -1,4 +1,4 @@ -.\" Copyright (c) 2007-2015 Roy Marples +.\" Copyright (c) 2007-2016 Roy Marples .\" All rights reserved .\" .\" Redistribution and use in source and binary forms, with or without @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd April 27, 2015 +.Dd May 7, 2016 .Dt RESOLVCONF 8 .Os .Sh NAME @@ -64,7 +64,7 @@ solves this by letting the daemon send t file to .Nm via -.Xr stdin 3 +.Xr stdin 4 with the argument .Fl a Ar interface Ns Op Ar .protocol instead of the filesystem. @@ -101,7 +101,7 @@ as private. This means that the name servers listed in that .Pa resolv.conf are only used for queries against the domain/search listed in the same file. -This only works when a local resolver other than libc is installed. +This only works when a local resolver other than libc is installed. See .Xr resolvconf.conf 5 for how to configure @@ -125,24 +125,28 @@ file(s) for all the on the .Ar interface . .Pp -Here are some more options that -.Nm -has:- +Here are some options for the above commands:- .Bl -tag -width indent -.It Fl I -Initialise the state directory -.Pa @VARDIR@ . -This only needs to be called if the initial system boot sequence does not -automatically clean it out; for example the state directory is moved -somewhere other than -.Pa /var/run . -If used, it should only be called once as early in the system boot sequence -as possible and before -.Nm -is used to add interfaces. .It Fl f -Ignore non existant interfaces. +Ignore non existent interfaces. Only really useful for deleting interfaces. +.It Fl m Ar metric +Set the metric of the interface when adding it, default of 0. +Lower metrics take precedence. +This affects the default order of interfaces when listed. +.It Fl p +Marks the interface +.Pa resolv.conf +as private. +.It Fl x +Mark the interface +.Pa resolv.conf +as exclusive when adding, otherwise only use the latest exclusive interface. +.El +.Pp +.Nm +has some more commands for general usage:- +.Bl -tag -width indent .It Fl i Ar pattern List the interfaces and protocols, optionally matching .Ar pattern , @@ -157,14 +161,6 @@ If .Ar pattern is specified then we list the files for the interfaces and protocols that match it. -.It Fl m Ar metric -Set the metric of the interface when adding it, default of 0. -Lower metrics take precedence. -This affects the default order of interfaces when listed. -.It Fl p -Marks the interface -.Pa resolv.conf -as private. .It Fl u Force .Nm @@ -172,15 +168,31 @@ to update all its subscribers. .Nm does not update the subscribers when adding a resolv.conf that matches what it already has for that interface. -.It Fl x -Mark the interface -.Pa resolv.conf -as exclusive when adding, otherwise only use the latest exclusive interface. .El .Pp .Nm -also has some options designed to be used by its subscribers:- +also has some commands designed to be used by it's subscribers and +system startup:- .Bl -tag -width indent +.It Fl I +Initialise the state directory +.Pa @VARDIR@ . +This only needs to be called if the initial system boot sequence does not +automatically clean it out; for example the state directory is moved +somewhere other than +.Pa /var/run . +If used, it should only be called once as early in the system boot sequence +as possible and before +.Nm +is used to add interfaces. +.It Fl R +Echo the command used to restart a service. +.It Fl r Ar service +If the +.Ar service +is running then restart it. +If the service does not exist or is not running then zero is returned, +otherwise the result of restarting the service. .It Fl v Echo variables DOMAINS, SEARCH and NAMESERVERS so that the subscriber can configure the resolver easily. @@ -278,16 +290,16 @@ Directory of subscribers which are run a State directory for .Nm . .El +.Sh SEE ALSO +.Xr resolver 3 , +.Xr stdin 4 , +.Xr resolv.conf 5 , +.Xr resolvconf.conf 5 .Sh HISTORY This implementation of .Nm is called openresolv and is fully command line compatible with Debian's resolvconf, as written by Thomas Hood. -.Sh SEE ALSO -.Xr resolv.conf 5 , -.Xr resolvconf.conf 5 , -.Xr resolver 3 , -.Xr stdin 3 .Sh AUTHORS .An Roy Marples Aq Mt roy@marples.name .Sh BUGS Modified: user/alc/PQ_LAUNDRY/contrib/openresolv/resolvconf.conf.5.in ============================================================================== --- user/alc/PQ_LAUNDRY/contrib/openresolv/resolvconf.conf.5.in Fri Jul 22 22:46:41 2016 (r303205) +++ user/alc/PQ_LAUNDRY/contrib/openresolv/resolvconf.conf.5.in Fri Jul 22 23:05:16 2016 (r303206) @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd February 21, 2016 +.Dd April 28, 2016 .Dt RESOLVCONF.CONF 5 .Os .Sh NAME @@ -103,7 +103,8 @@ This is equivalent to the .Nm resolvconf -p option. .It Sy replace -Is a space separated list of replacement keywords. The syntax is this: +Is a space separated list of replacement keywords. +The syntax is this: .Va $keyword Ns / Ns Va $match Ns / Ns Va $replacement .Pp Example, given this resolv.conf: @@ -284,33 +285,32 @@ variables, documented below. .Pp .Bl -tag -width indent .It Sy dnsmasq_service -Location of the dnsmasq service. +Name of the dnsmasq service. .It Sy dnsmasq_restart Command to restart the dnsmasq service. .It Sy dnsmasq_pid Location of the dnsmasq pidfile. .It Sy libc_service -Location of the libc service. +Name of the libc service. .It Sy libc_restart Command to restart the libc service. .It Sy named_service -Location of the named service. +Name of the named service. .It Sy named_restart Command to restart the named service. .It Sy pdnsd_restart Command to restart the pdnsd service. .It Sy unbound_service -Location of the unbound service. +Name of the unbound service. .It Sy unbound_restart Command to restart the unbound service. .It Sy unbound_pid Location of the unbound pidfile. .El .Sh SEE ALSO +.Xr sh 1 , .Xr resolv.conf 5 , .Xr resolvconf 8 -and -.Xr sh 1 . .Sh AUTHORS .An Roy Marples Aq Mt roy@marples.name .Sh BUGS Modified: user/alc/PQ_LAUNDRY/contrib/openresolv/resolvconf.in ============================================================================== --- user/alc/PQ_LAUNDRY/contrib/openresolv/resolvconf.in Fri Jul 22 22:46:41 2016 (r303205) +++ user/alc/PQ_LAUNDRY/contrib/openresolv/resolvconf.in Fri Jul 22 23:05:16 2016 (r303206) @@ -25,9 +25,12 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. RESOLVCONF="$0" +OPENRESOLV_VERSION="3.8.1" SYSCONFDIR=@SYSCONFDIR@ LIBEXECDIR=@LIBEXECDIR@ VARDIR=@VARDIR@ +RCDIR=@RCDIR@ +RESTARTCMD=@RESTARTCMD@ # Disregard dhcpcd setting unset interface_order state_dir @@ -71,55 +74,45 @@ error_exit() usage() { cat <<-EOF - Usage: ${RESOLVCONF##*/} [options] + Usage: ${RESOLVCONF##*/} [options] command [argument] Inform the system about any DNS updates. - Options: + Commands: -a \$INTERFACE Add DNS information to the specified interface (DNS supplied via stdin in resolv.conf format) - -m metric Give the added DNS information a metric - -p Mark the interface as private - -x Mark the interface as exclusive -d \$INTERFACE Delete DNS information from the specified interface - -f Ignore non existant interfaces - -I Init the state dir - -u Run updates from our current DNS information - -l [\$PATTERN] Show DNS information, optionally from interfaces - that match the specified pattern + -h Show this help cruft -i [\$PATTERN] Show interfaces that have supplied DNS information optionally from interfaces that match the specified pattern + -l [\$PATTERN] Show DNS information, optionally from interfaces + that match the specified pattern + + -u Run updates from our current DNS information + + Options: + -f Ignore non existent interfaces + -m metric Give the added DNS information a metric + -p Mark the interface as private + -x Mark the interface as exclusive + + Subscriber and System Init Commands: + -I Init the state dir + -r \$SERVICE Restart the system service + (restarting a non-existent or non-running service + should have no output and return 0) + -R Show the system service restart command -v [\$PATTERN] echo NEWDOMAIN, NEWSEARCH and NEWNS variables to the console - -h Show this help cruft + -V [\$PATTERN] Same as -v, but only uses configuration in + $SYSCONFDIR/resolvconf.conf EOF [ -z "$1" ] && exit 0 echo error_exit "$*" } -echo_resolv() -{ - local line= OIFS="$IFS" - - [ -n "$1" -a -f "$IFACEDIR/$1" ] || return 1 - echo "# resolv.conf from $1" - # Our variable maker works of the fact each resolv.conf per interface - # is separated by blank lines. - # So we remove them when echoing them. - while read -r line; do - IFS="$OIFS" - if [ -n "$line" ]; then - # We need to set IFS here to preserve any whitespace - IFS='' - printf "%s\n" "$line" - fi - done < "$IFACEDIR/$1" - echo - IFS="$OIFS" -} - # Strip any trailing dot from each name as a FQDN does not belong # in resolv.conf(5) # If you think otherwise, capture a DNS trace and you'll see libc @@ -159,7 +152,10 @@ parse_resolv() private=false for p in $private_interfaces; do case "$iface" in - "$p"|"$p":*) private=true; break;; + "$p"|"$p":*) + private=true + break + ;; esac done fi @@ -261,6 +257,108 @@ config_mkdirs() return $e } +# With the advent of alternative init systems, it's possible to have +# more than one installed. So we need to try and guess what one we're +# using unless overriden by configure. +# Note that restarting a service is a last resort - the subscribers +# should make a reasonable attempt to reconfigre the service via some +# method, normally SIGHUP. +detect_init() +{ + [ -n "$RESTARTCMD" ] && return 0 + + # Detect the running init system. + # As systemd and OpenRC can be installed on top of legacy init + # systems we try to detect them first. + local status="@STATUSARG@" + : ${status:=status} + if [ -x /bin/systemctl -a -S /run/systemd/private ]; then + RESTARTCMD="if /bin/systemctl --quiet is-active \$1.service; then + /bin/systemctl restart \$1.service; +fi" + elif [ -x /usr/bin/systemctl -a -S /run/systemd/private ]; then + RESTARTCMD="if /usr/bin/systemctl --quiet is-active \$1.service; then + /usr/bin/systemctl restart \$1.service; +fi" + elif [ -x /sbin/rc-service -a \ + -s /libexec/rc/init.d/softlevel -o -s /run/openrc/softlevel ] + then + RESTARTCMD="/sbin/rc-service -i \$1 -- -Ds restart" + elif [ -x /usr/sbin/invoke-rc.d ]; then + RCDIR=/etc/init.d + RESTARTCMD="if /usr/sbin/invoke-rc.d --quiet \$1 status 1>/dev/null 2>&1; then + /usr/sbin/invoke-rc.d \$1 restart; +fi" + elif [ -x /sbin/service ]; then + # Old RedHat + RCDIR=/etc/init.d + RESTARTCMD="if /sbin/service \$1; then + /sbin/service \$1 restart; +fi" + elif [ -x /usr/sbin/service ]; then + # Could be FreeBSD + RESTARTCMD="if /usr/sbin/service \$1 $status 1>/dev/null 2>&1; then + /usr/sbin/service \$1 restart; +fi" + elif [ -x /bin/sv ]; then + RESTARTCMD="/bin/sv try-restart \$1" + elif [ -x /usr/bin/sv ]; then + RESTARTCMD="/usr/bin/sv try-restart \$1" + elif [ -e /etc/arch-release -a -d /etc/rc.d ]; then + RCDIR=/etc/rc.d + RESTARTCMD="if [ -e /var/run/daemons/\$1 ]; then + /etc/rc.d/\$1 restart; +fi" + elif [ -e /etc/slackware-version -a -d /etc/rc.d ]; then + RESTARTCMD="if /etc/rc.d/rc.\$1 status 1>/dev/null 2>&1; then + /etc/rc.d/rc.\$1 restart; +fi" + elif [ -e /etc/rc.d/rc.subr -a -d /etc/rc.d ]; then + # OpenBSD + RESTARTCMD="if /etc/rc.d/\$1 check 1>/dev/null 2>&1; then + /etc/rc.d/\$1 restart; +fi" + else + for x in /etc/init.d/rc.d /etc/rc.d /etc/init.d; do + [ -d $x ] || continue + RESTARTCMD="if $x/\$1 $status 1>/dev/null 2>&1; then + $x/\$1 restart; +fi" + break + done + fi + + if [ -z "$RESTARTCMD" ]; then + if [ "$NOINIT_WARNED" != true ]; then + warn "could not detect a useable init system" + _NOINIT_WARNED=true + fi + return 1 + fi + _NOINIT_WARNED= + return 0 +} + +echo_resolv() +{ + local line= OIFS="$IFS" + + [ -n "$1" -a -f "$IFACEDIR/$1" ] || return 1 + echo "# resolv.conf from $1" + # Our variable maker works of the fact each resolv.conf per interface + # is separated by blank lines. + # So we remove them when echoing them. + while read -r line; do + IFS="$OIFS" + if [ -n "$line" ]; then + # We need to set IFS here to preserve any whitespace + IFS='' + printf "%s\n" "$line" + fi + done < "$IFACEDIR/$1" + IFS="$OIFS" +} + list_resolv() { [ -d "$IFACEDIR" ] || return 0 @@ -320,6 +418,7 @@ list_resolv() cd "$IFACEDIR" retval=1 + excl=true for i in $(uniqify $list); do # Only list interfaces which we really have if ! [ -f "$i" ]; then @@ -334,6 +433,7 @@ list_resolv() printf %s "$i " else echo_resolv "$i" + echo fi [ $? = 0 -a "$retval" = 1 ] && retval=0 done @@ -499,7 +599,7 @@ make_vars() force=false VFLAG= -while getopts a:Dd:fhIilm:puvVx OPT; do +while getopts a:Dd:fhIilm:pRruvVx OPT; do case "$OPT" in f) force=true;; h) usage;; @@ -541,6 +641,18 @@ if [ "$cmd" = l -o "$cmd" = i ]; then exit $? fi +# Restart a service or echo the command to restart a service +if [ "$cmd" = r -o "$cmd" = R ]; then + detect_init || exit 1 + if [ "$cmd" = r ]; then + set -- $args + eval $RESTARTCMD + else + echo "$RESTARTCMD" + fi + exit $? +fi + # Not normally needed, but subscribers should be able to run independently if [ "$cmd" = v -o -n "$VFLAG" ]; then make_vars "$iface" *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201607222305.u6MN5G76028496>