mirror of
https://github.com/novatiq/packages.git
synced 2026-04-30 15:38:40 +01:00
ddns-scripts: Update to version 2.1.0-3
- removed special handling for dynamic_dns_helper.sh and url_escape.sed in Makefile/postinst - minor fixes in logging - allow retry_count of "0" to run infinite retrys on error -- https://dev.openwrt.org/ticket/18382 - changed naming of .dat and .err file to have one per section, not one per process - defer hotplug helper from 25-ddns to 95-ddns (according initscript START=95) -- https://github.com/openwrt/packages/issues/568 (#568) - fix commandline for busybox wget -- https://dev.openwrt.org/ticket/18411 -- https://dev.openwrt.org/ticket/18437 -- https://github.com/openwrt/packages/issues/605 (#605) - remove checking answer from ddns provider because there are to many different. Some providers do not follow API from dyndns.com Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
#!/bin/sh
|
||||
# /usr/lib/ddns/luci_dns_helper.sh
|
||||
#
|
||||
# Written in August 2014
|
||||
# by Christian Schoenebeck <christian dot schoenebeck at gmail dot com>
|
||||
# This script is used by luci-app-ddns
|
||||
# - getting registered IP
|
||||
# - check if possible to get local IP
|
||||
# - verifing given DNS- or Proxy-Server
|
||||
#
|
||||
# variables in small chars are read from /etc/config/ddns as parameter given here
|
||||
# variables in big chars are defined inside these scripts as gloval vars
|
||||
# variables in big chars beginning with "__" are local defined inside functions only
|
||||
# set -vx #script debugger
|
||||
|
||||
[ $# -lt 2 ] && exit 1
|
||||
|
||||
. /usr/lib/ddns/dynamic_dns_functions.sh # global vars are also defined here
|
||||
|
||||
# set -vx #script debugger
|
||||
|
||||
# preset some variables, wrong or not set in dynamic_dns_functions.sh
|
||||
SECTION_ID="lucihelper"
|
||||
LOGFILE="$LOGDIR/$SECTION_ID.log"
|
||||
DATFILE="$RUNDIR/$SECTION_ID.dat" # save stdout data of WGet and other extern programs called
|
||||
ERRFILE="$RUNDIR/$SECTION_ID.err" # save stderr output of WGet and other extern programs called
|
||||
VERBOSE_MODE=0 # no console logging
|
||||
# global variables normally set by reading DDNS UCI configuration
|
||||
use_syslog=0 # no syslog
|
||||
use_logfile=0 # by default no logfile, can be changed here
|
||||
|
||||
__RET=0
|
||||
case "$1" in
|
||||
get_registered_ip)
|
||||
local IP
|
||||
domain=$2 # Hostname/Domain
|
||||
use_ipv6=${3:-"0"} # Use IPv6 - default IPv4
|
||||
force_ipversion=${4:-"0"} # Force IP Version - default 0 - No
|
||||
force_dnstcp=${5:-"0"} # Force TCP on DNS - default 0 - No
|
||||
dns_server=${6:-""} # DNS server - default No DNS
|
||||
write_log 7 "-----> get_registered_ip IP"
|
||||
get_registered_ip IP
|
||||
__RET=$?
|
||||
[ $__RET -ne 0 ] && IP=""
|
||||
echo -n "$IP" # suppress LF
|
||||
;;
|
||||
verify_dns)
|
||||
# $2 : dns-server to verify # no need for force_dnstcp because
|
||||
# verify with nc (netcat) uses tcp anyway
|
||||
use_ipv6=${3:-"0"} # Use IPv6 - default IPv4
|
||||
force_ipversion=${4:-"0"} # Force IP Version - default 0 - No
|
||||
write_log 7 "-----> verify_dns '$2'"
|
||||
verify_dns "$2"
|
||||
__RET=$?
|
||||
;;
|
||||
verify_proxy)
|
||||
# $2 : proxy string to verify
|
||||
use_ipv6=${3:-"0"} # Use IPv6 - default IPv4
|
||||
force_ipversion=${4:-"0"} # Force IP Version - default 0 - No
|
||||
write_log 7 "-----> verify_proxy '$2'"
|
||||
verify_proxy "$2"
|
||||
__RET=$?
|
||||
;;
|
||||
get_local_ip)
|
||||
local IP
|
||||
use_ipv6="$2" # Use IPv6
|
||||
ip_source="$3" # IP source
|
||||
ip_network="$4" # set if source = "network" otherwise "-"
|
||||
ip_url="$5" # set if source = "web" otherwise "-"
|
||||
ip_interface="$6" # set if source = "interface" itherwiase "-"
|
||||
ip_script="$7" # set if source = "script" otherwise "-"
|
||||
proxy="$8" # proxy if set
|
||||
force_ipversion="0" # not needed but must be set
|
||||
use_https="0" # not needed but must be set
|
||||
[ -n "$proxy" -a "$ip_source" = "web" ] && {
|
||||
# proxy defined, used for ip_source=web
|
||||
export HTTP_PROXY="http://$proxy"
|
||||
export HTTPS_PROXY="http://$proxy"
|
||||
export http_proxy="http://$proxy"
|
||||
export https_proxy="http://$proxy"
|
||||
}
|
||||
# don't need IP only the return code
|
||||
[ "$ip_source" = "web" -o "$ip_source" = "script" ] && {
|
||||
# we wait only 3 seconds for an
|
||||
# answer from "web" or "script"
|
||||
write_log 7 "-----> timeout 3 -- get_local_ip IP"
|
||||
timeout 3 -- get_local_ip IP
|
||||
} || {
|
||||
write_log 7 "-----> get_local_ip IP"
|
||||
get_local_ip IP
|
||||
}
|
||||
__RET=$?
|
||||
;;
|
||||
*)
|
||||
__RET=255
|
||||
;;
|
||||
esac
|
||||
|
||||
# remove out and err file
|
||||
[ -f $DATFILE ] && rm -f $DATFILE
|
||||
[ -f $ERRFILE ] && rm -f $ERRFILE
|
||||
return $__RET
|
||||
Reference in New Issue
Block a user