summaryrefslogtreecommitdiff
path: root/templates/service/dns/dynamic/interface/node.def
diff options
context:
space:
mode:
Diffstat (limited to 'templates/service/dns/dynamic/interface/node.def')
-rw-r--r--templates/service/dns/dynamic/interface/node.def33
1 files changed, 9 insertions, 24 deletions
diff --git a/templates/service/dns/dynamic/interface/node.def b/templates/service/dns/dynamic/interface/node.def
index b540d2b2..c402e483 100644
--- a/templates/service/dns/dynamic/interface/node.def
+++ b/templates/service/dns/dynamic/interface/node.def
@@ -1,30 +1,15 @@
tag:
help: Set interface to send DDNS updates for
type: txt
-
-allowed: local -a array ;
- array=($(awk '$1 ~ /:/ { print $1 }' /proc/net/dev));
- echo -n ${array[@]%:*}
-
+allowed: /opt/vyatta/sbin/vyatta-interfaces.pl --show=all
+syntax:expression: exec "/opt/vyatta/sbin/vyatta-interfaces.pl --dev=$VAR(@) --check=all"
commit:expression: $VAR(./@/service/@@) != ""; "At least one service must be set to send DDNS updates for $VAR(@)"
-delete:expression: "touch /tmp/ddclient_$VAR(@).$PPID"
+delete:touch /tmp/ddclient_$VAR(@).$PPID
-end:expression: "if [ -f \"/tmp/ddclient_$VAR(@).$PPID\" ]; then \
- sudo /opt/vyatta/sbin/vyatta-dynamic-dns.pl --stop-dynamicdns --interface $VAR(@) \
- rm /tmp/ddclient_$VAR(@).$PPID; \
- else \
- sudo /opt/vyatta/sbin/vyatta-dynamic-dns.pl --update-dynamicdns --interface $VAR(@); \
- # generate a warning if interface does not exist on system
- intf_array=($(awk '$1 ~ /:/ { print $1 }' /proc/net/dev))
- intf_array_len=${#intf_array[*]}
- i=0
- while [ $i -lt $intf_array_len ]; do
- temp=${intf_array[$i]%:*}
- if [ \"$temp\" == \"$VAR(@)\" ] ; then
- exit 0
- fi
- let i++
- done
- echo Dynamic DNS warning : interface [$VAR(@)] does not exist on system
- fi; "
+end: if [ -f /tmp/ddclient_$VAR(@).$PPID ]; then
+ sudo /opt/vyatta/sbin/vyatta-dynamic-dns.pl --stop-dynamicdns --interface $VAR(@)
+ rm /tmp/ddclient_$VAR(@).$PPID
+ else
+ sudo /opt/vyatta/sbin/vyatta-dynamic-dns.pl --update-dynamicdns --interface $VAR(@)
+ fi