diff options
-rw-r--r-- | .SRCINFO | 16 | ||||
-rw-r--r-- | 00-pdnsd | 80 | ||||
-rw-r--r-- | 10-chrony | 35 | ||||
-rw-r--r-- | ChangeLog | 25 | ||||
-rw-r--r-- | LICENSE | 2 | ||||
-rw-r--r-- | PKGBUILD | 16 |
6 files changed, 105 insertions, 69 deletions
@@ -1,5 +1,5 @@ -pkgbase = networkmanager-dispatcher-chrony - pkgdesc = Dispatcher Script for chrony +pkgbase = networkmanager-dispatcher-pdnsd + pkgdesc = Dispatcher Script for pDNSd; works with systemd and sysvinit pkgver = 2.1 pkgrel = 1 url = https://wiki.gnome.org/Projects/NetworkManager @@ -7,12 +7,12 @@ pkgbase = networkmanager-dispatcher-chrony arch = any license = MIT depends = networkmanager - depends = chrony - backup = etc/NetworkManager/dispatcher.d/10-chrony - source = 10-chrony + depends = pdnsd + backup = etc/NetworkManager/dispatcher.d/00-pdnsd + source = 00-pdnsd source = LICENSE - sha256sums = 676cc8a1b770c4e4d6985d194e3bf82d47794809d49ffa2bfbb2190f10ed7885 - sha256sums = 453e6920a08aa104baf245c81568050d075379af3944ae92b03d46d01e37d6cf + sha256sums = 586da6d5e87185ad4c00cdcdaae666a0a777fda477c652355bf826851da66814 + sha256sums = dcadbc70cabe99658c2ec966cbec7134514fbe8894b1fe7bd5f3ccbaf643825a -pkgname = networkmanager-dispatcher-chrony +pkgname = networkmanager-dispatcher-pdnsd diff --git a/00-pdnsd b/00-pdnsd new file mode 100644 index 000000000000..ed7ab1ce87b3 --- /dev/null +++ b/00-pdnsd @@ -0,0 +1,80 @@ +#!/bin/sh + +INTERFACE=$1 +STATUS=$2 + +# $INIT should be either "init" (System V) or "systemd". +INIT=`cat /proc/1/comm` + +no_valid_init() { + echo 'No valid init system set. Please select either "init" or "systemd".' + exit 1 +} + +pdnsd_is_running() { + # Check whether pDNSd is running. + case "$INIT" in + 'systemd') + systemctl is-active pdnsd.service -q + return $? + ;; + 'init') + [ 'STARTED' = `rc.d list|grep pdnsd|cut -f1 -d']'|cut -d'[' -f2` ] + return $? + ;; + *) + no_valid_init + ;; + esac +} + +pdnsd_init_command() { + # Give pDNSd a command through the init system + case "$INIT" in + 'systemd') + exec systemctl $1 pdnsd.service + ;; + 'init') + exec rc.d $1 pdnsd + ;; + *) + no_valid_init + ;; + esac +} + +pdnsd_going_up() { + if ! pdnsd_is_running; then + # pDNSd isn't running. Start it. + pdnsd_init_command start + else + # pDNSd is running. Restart it. + pdnsd_init_command restart + fi +} + +pdnsd_going_down() { + # Check for active interface, take offline if none is active + if [ 'connected' != `nm-tool|grep State|cut -f2 -d' '` ]; then + pdnsd_init_command stop + else + # If another interface is active, restart so we're sure we're using + # the active connection. + pdnsd_init_command restart + fi +} + +case "$STATUS" in + up) + pdnsd_going_up + ;; + vpn-up) + pdnsd_going_up + ;; + down) + pdnsd_going_down + ;; + vpn-down) + pdnsd_going_down + ;; +esac diff --git a/10-chrony b/10-chrony deleted file mode 100644 index eb5fad149148..000000000000 --- a/10-chrony +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/sh - -INTERFACE=$1 -STATUS=$2 - -# Make sure we're always getting the standard response strings -LANG='C' - -CHRONY=$(which chronyc) - -chrony_cmd() { - echo "Chrony going $1." - exec $CHRONY -a $1 -} - -nm_connected() { - [ "$(nmcli -t --fields STATE g)" = 'connected' ] -} - -case "$STATUS" in - up) - chrony_cmd online - ;; - vpn-up) - chrony_cmd online - ;; - down) - # Check for active interface, take offline if none is active - nm_connected || chrony_cmd offline - ;; - vpn-down) - # Check for active interface, take offline if none is active - nm_connected || chrony_cmd offline - ;; -esac diff --git a/ChangeLog b/ChangeLog index 85104f30f6b2..c76f383c34a7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,31 +3,22 @@ * 2.1-1 : Switch to MIT license and include "LICENSE" file. -2014-12-16 Frederik "Freso" S. Olesen <freso.dk@gmail.com> +2012-09-27 Frederik "Freso" S. Olesen <freso.dk@gmail.com> * 2.0-1 : - Now utilises the new "-a" parameter of chronyc and various other improvements, - including fixing a bashism in the connectivity testing. - Thanks to Adam Mendlik, cgtx, and teffalump for helping to - bring this update about! + Added support for running under both systemd and System V systems. -2014-08-14 Frederik "Freso" S. Olesen <freso.dk@gmail.com> +2012-03-10 Frederik "Freso" S. Olesen <freso.dk@gmail.com> * 1.1-1 : - Changed the URL to point to the current NetworkManager site. - Bring it up-to-date to work with recent NetworkManager releases, with the help - of Troy Engel. Thank you! + Fixed not actually starting pDNSd on connection... Oops. + Other very minor changes. -2011-11-09 Frederik "Freso" S. Olesen <freso.dk@gmail.com> - - * 1.0-2 : - Added the dispatcher script to backup=(), to enable local modifications. - -2011-11-01 Frederik "Freso" S. Olesen <freso.dk@gmail.com> +2012-01-03 Frederik "Freso" S. Olesen <freso.dk@gmail.com> * 1.0-1 : - Initial release of networkmanager-dispatcher-chrony. + Initial release of networkmanager-dispatcher-pdnsd. The PKGBUILD (and to some degree the script), was based on the - networkmanager-dispatcher-ntpd package and script. + networkmanager-dispatcher-chrony package and script. Development happens at GitHub: https://github.com/Freso/PKGBUILDs @@ -1,4 +1,4 @@ -Copyright (c) 2011-2015 Frederik “Freso” S. Olesen +Copyright (c) 2012-2015 Frederik “Freso” S. Olesen Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -1,20 +1,20 @@ # Maintainer: Frederik "Freso" S. Olesen <freso.dk@gmail.com> # Based on package by Jelle van der Waa <jelle vdwaa nl>. -pkgname=networkmanager-dispatcher-chrony +pkgname=networkmanager-dispatcher-pdnsd pkgver=2.1 pkgrel=1 -pkgdesc="Dispatcher Script for chrony" +pkgdesc='Dispatcher Script for pDNSd; works with systemd and sysvinit' arch=(any) license=('MIT') url='https://wiki.gnome.org/Projects/NetworkManager' -depends=('networkmanager' 'chrony') -backup=(etc/NetworkManager/dispatcher.d/10-chrony) +depends=('networkmanager' 'pdnsd') +backup=(etc/NetworkManager/dispatcher.d/00-pdnsd) changelog=ChangeLog -source=('10-chrony' 'LICENSE') -sha256sums=('676cc8a1b770c4e4d6985d194e3bf82d47794809d49ffa2bfbb2190f10ed7885' - '453e6920a08aa104baf245c81568050d075379af3944ae92b03d46d01e37d6cf') +source=('00-pdnsd' 'LICENSE') +sha256sums=('586da6d5e87185ad4c00cdcdaae666a0a777fda477c652355bf826851da66814' + 'dcadbc70cabe99658c2ec966cbec7134514fbe8894b1fe7bd5f3ccbaf643825a') package() { - install -Dm700 "$srcdir/10-chrony" "$pkgdir/etc/NetworkManager/dispatcher.d/10-chrony" + install -Dm700 "$srcdir/00-pdnsd" "$pkgdir/etc/NetworkManager/dispatcher.d/00-pdnsd" install -Dm644 "$srcdir/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE" } |