ddns-scripts: Added support for custom update scripts

Squashed commit of the following:

commit 2701c8868e1ef4949db57e53b27958edba6abb59
Author: Christian Schoenebeck <christian.schoenebeck@gmail.com>
Date:   Sun Oct 5 11:01:57 2014 +0200

    ddns-scripts: Added support for custom update scripts

    Sample script
    Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>

commit e07ecb90fa2c7404a97cf64024e89bd9d88aacd4
Author: Christian Schoenebeck <christian.schoenebeck@gmail.com>
Date:   Sun Oct 5 11:00:11 2014 +0200

    ddns-scripts: Added support for custom update scripts

    Added support for custom update scripts with new option update_script.
    function get_service_url() renamed to get_service_data() and extended to detect scripts inside service / service_ipv6 for later use
    function send_update() modified to support custom update scripts.
    Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>

commit 39e41b2151a79a7ace71a9d40b87cd4d6ce09503
Author: Christian Schoenebeck <christian.schoenebeck@gmail.com>
Date:   Sun Oct 5 10:52:44 2014 +0200

    ddns-scripts: Added support for custom update scripts

    Added support for custom update scripts with new option update_script
    Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>

commit 33f264768e37d8a6fe564faaafa51a7b45a0ee19
Author: Christian Schoenebeck <christian.schoenebeck@gmail.com>
Date:   Sun Oct 5 10:48:21 2014 +0200

    ddns-scripts: Insert description for NEW option update_script

    Insert description for NEW option update_script
    Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>

commit 6f6a60244df53e0556f5c75845c69aa832f97e4c
Author: Christian Schoenebeck <christian.schoenebeck@gmail.com>
Date:   Sun Oct 5 10:43:52 2014 +0200

    ddns-scripts: Update PKG_RELEASE

    Update_PKG_RELEASE to reflect changes
    Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
This commit is contained in:
Steven Barth
2014-10-06 08:39:59 +02:00
parent 8a5d30147f
commit 6ab4a265a2
5 changed files with 91 additions and 25 deletions
@@ -6,7 +6,9 @@
# (Loosely) based on the script on the one posted by exobyte in the forums here:
# http://forum.openwrt.org/viewtopic.php?id=14040
#
# extended and partial rewritten by Christian Schoenebeck in August 2014 to support:
# extended and partial rewritten in August 2014
# by Christian Schoenebeck <christian dot schoenebeck at gmail dot com>
# to support:
# - IPv6 DDNS services
# - DNS Server to retrieve registered IP including TCP transport
# - Proxy Server to send out updates
@@ -62,6 +64,7 @@ LOGFILE="$LOGDIR/$SECTION_ID.log" # log file
#
# service_name Which DDNS service do you use or "custom"
# update_url URL to use to update your "custom" DDNS service
# update_script SCRIPT to use to update your "custom" DDNS service
#
# domain Your DNS name / replace [DOMAIN] in update_url
# username Username of your DDNS service account / replace [USERNAME] in update_url
@@ -161,8 +164,10 @@ verbose_echo " retry counter =: $retry_count times"
# determine what update url we're using if a service_name is supplied
# otherwise update_url is set inside configuration (custom service)
[ -n "$service_name" ] && get_service_url update_url
[ -z "$update_url" ] && critical_error "no update url found/defined"
# or update_script is set inside configuration (custom update script)
[ -n "$service_name" ] && get_service_data update_url update_script
[ -z "$update_url" -a -z "$update_script" ] && critical_error "no update_url found/defined or no update_script found/defined"
[ -n "$update_script" -a ! -f "$update_script" ] && critical_error "custom update_script not found"
#kill old process if it exists & set new pid file
if [ -d $RUNDIR ]; then