From f920b48a94705cc6577221f293b7796f5f0feaf7 Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Fri, 21 Apr 2023 10:10:45 +0200 Subject: [PATCH] dns/ddclient: handle pidfile correctly on different backend --- dns/ddclient/Makefile | 1 + .../src/etc/inc/plugins.inc.d/ddclient.inc | 33 +++++++++++-------- .../conf/actions.d/actions_ddclient.conf | 5 +-- 3 files changed, 22 insertions(+), 17 deletions(-) diff --git a/dns/ddclient/Makefile b/dns/ddclient/Makefile index 1e6f5d3ba..3ca84dd22 100644 --- a/dns/ddclient/Makefile +++ b/dns/ddclient/Makefile @@ -1,5 +1,6 @@ PLUGIN_NAME= ddclient PLUGIN_VERSION= 1.12 +PLUGIN_REVISION= 1 PLUGIN_DEPENDS= ddclient-devel PLUGIN_COMMENT= Dynamic DNS client PLUGIN_MAINTAINER= ad@opnsense.org diff --git a/dns/ddclient/src/etc/inc/plugins.inc.d/ddclient.inc b/dns/ddclient/src/etc/inc/plugins.inc.d/ddclient.inc index b5d095910..8e087a38e 100644 --- a/dns/ddclient/src/etc/inc/plugins.inc.d/ddclient.inc +++ b/dns/ddclient/src/etc/inc/plugins.inc.d/ddclient.inc @@ -30,39 +30,46 @@ function ddclient_services() { $services = []; + $mdl = new \OPNsense\DynDNS\DynDNS(); if ($mdl->general->enabled == '1') { - $services[] = [ + $service = [ 'description' => gettext('ddclient'), 'configd' => [ - 'restart' => array('ddclient restart'), - 'start' => array('ddclient start'), - 'stop' => array('ddclient stop'), + 'restart' => ['ddclient restart'], + 'start' => ['ddclient start'], + 'stop' => ['ddclient stop'], ], 'name' => 'ddclient', - 'pidfile' => '/var/run/ddclient.pid', ]; + $service['pidfile'] = (string)$mdl->general->backend != 'opnsense' ? '/var/run/ddclient.pid' : '/var/run/ddclient_opn.pid'; + $services[] = $service; } + return $services; } function ddclient_xmlrpc_sync() { - $result = array(); - $result[] = array( + $result = []; + + $result[] = [ 'description' => gettext('ddclient'), 'section' => 'OPNsense.DynDNS', - 'id' => 'ddclient', 'services' => ['ddclient'], - ); + 'id' => 'ddclient', + ]; + return $result; } function ddclient_syslog() { - $logfacilities = array(); - $logfacilities['ddclient'] = array( - 'facility' => ['ddclient'] - ); + $logfacilities = []; + + $logfacilities['ddclient'] = [ + 'facility' => ['ddclient'], + ]; + return $logfacilities; } diff --git a/dns/ddclient/src/opnsense/service/conf/actions.d/actions_ddclient.conf b/dns/ddclient/src/opnsense/service/conf/actions.d/actions_ddclient.conf index 7d3ddf360..ce63a7ef8 100644 --- a/dns/ddclient/src/opnsense/service/conf/actions.d/actions_ddclient.conf +++ b/dns/ddclient/src/opnsense/service/conf/actions.d/actions_ddclient.conf @@ -12,10 +12,7 @@ type:script message:stopping ddclient [status] -command: - pgrep -qF /var/run/ddclient.pid 2> /dev/null && echo "ddclient is running" || - pgrep -qF /var/run/ddclient_opn.pid 2> /dev/null && echo "ddclient is running" || - echo "ddclient is not running" +command:/usr/local/sbin/pluginctl -s ddclient status type:script_output message:get ddclient status