[package] allow a script to get the ip address, patch from Tomasz Fornal
authorFlorian Fainelli <florian@openwrt.org>
Sun, 11 Apr 2010 20:43:41 +0000 (20:43 +0000)
committerFlorian Fainelli <florian@openwrt.org>
Sun, 11 Apr 2010 20:43:41 +0000 (20:43 +0000)
SVN-Revision: 20810

net/ddns-scripts/Makefile
net/ddns-scripts/files/etc/config/ddns
net/ddns-scripts/files/usr/lib/ddns/dynamic_dns_functions.sh

index b9f715d31b2bd8cd4f150a5dcabf3bec81f0f379..3811865dee8ddc48e84fe2bc69ef3b5e8a34ce69 100644 (file)
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ddns-scripts
 PKG_VERSION:=1.0.0
-PKG_RELEASE:=6
+PKG_RELEASE:=7
 
 PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
 
index 7c3f3c1a7ccf957652251a7dcaa3eb81ef6d5927..2545215ed6e28d931673f00cceb6ac1b810ec744 100644 (file)
@@ -31,6 +31,9 @@
 # (e.g. "eth1") and whatever the current ip of this interface is
 # will be associated with the domain when an update is performed.
 #
+# If "ip_source" is "script" you specify a script to obtain ip address.
+# The "ip_script" option should contain path to your script.
+#
 # The last possibility is that "ip_source" is "web", which means
 # that in order to obtain our ip address we will connect to a 
 # website, and the first valid ip address listed on that page
@@ -77,6 +80,9 @@ config service "myddns"
        #option ip_source       "interface"
        #option ip_interface    "eth0.1"
 
+       #option ip_source       "script"
+       #option ip_script       "path to your scrip"
+
        #option ip_source       "web"
        #option ip_url          "http://www.whatismyip.com/automation/n09230945.asp"
 
index 07ea4b8ffece3aadc19e4742e732ff089d728f43..82f01ca830ac34f2e55b701464f8026410909cb5 100644 (file)
@@ -53,7 +53,7 @@ get_current_ip()
 {
 
        #if ip source is not defined, assume we want to get ip from wan 
-       if [ "$ip_source" != "interface" ] && [ "$ip_source" != "web" ]
+       if [ "$ip_source" != "interface" ] && [ "$ip_source" != "web" ] && [ "$ip_source" != "script" ]
        then
                ip_source="network"
                ip_network="wan"
@@ -74,6 +74,10 @@ get_current_ip()
        if [ "$ip_source" = "network" ] || [ "$ip_source" = "interface" ]
        then
                current_ip=$(ifconfig $ip_interface | grep -o 'inet addr:[0-9.]*' | grep -o "$ip_regex")
+       elif [ "$ip_source" = "script" ]
+       then
+               # get ip from script
+               current_ip=$($ip_script)
        else
                # get ip from web
                # we check each url in order in ip_url variable, and if no ips are found we use dyndns ip checker