diff options
Diffstat (limited to 'templates/service/dns/dynamic/interface/node.def')
-rw-r--r-- | templates/service/dns/dynamic/interface/node.def | 33 |
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 |