summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO16
-rw-r--r--00-pdnsd80
-rw-r--r--10-chrony35
-rw-r--r--ChangeLog25
-rw-r--r--LICENSE2
-rw-r--r--PKGBUILD16
6 files changed, 105 insertions, 69 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 41efe1b73edf..7549c4e4b748 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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
diff --git a/LICENSE b/LICENSE
index e4729ff3c171..67f6966c057d 100644
--- a/LICENSE
+++ b/LICENSE
@@ -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
diff --git a/PKGBUILD b/PKGBUILD
index 6f12f900a961..add11c8771f4 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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"
}