Merge pull request #1600 from chris5560/master

luci.app-ddns: Update to 2.4.9-1
This commit is contained in:
Hannu Nyman 2018-01-27 17:20:35 +02:00 committed by GitHub
commit 2b5181abd8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 68 additions and 37 deletions

View file

@ -2,7 +2,7 @@
# Copyright 2008 Steven Barth <steven@midlink.org>
# Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
# Copyright 2013 Manuel Munz <freifunk at somakoma dot de>
# Copyright 2014-2017 Christian Schoenebeck <christian dot schoenebeck at gmail dot com>
# Copyright 2014-2018 Christian Schoenebeck <christian dot schoenebeck at gmail dot com>
#
# This is free software, licensed under the Apache License, Version 2.0
@ -12,11 +12,11 @@ include $(TOPDIR)/rules.mk
# Version == major.minor.patch
# increase on new functionality (minor) or patches (patch)
PKG_VERSION:=2.4.8
PKG_VERSION:=2.4.9
# Release == build
# increase on changes of translation files
PKG_RELEASE:=2
PKG_RELEASE:=1
PKG_LICENSE:=Apache-2.0
PKG_MAINTAINER:=Christian Schoenebeck <christian.schoenebeck@gmail.com>

View file

@ -1,7 +1,7 @@
-- Copyright 2008 Steven Barth <steven@midlink.org>
-- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
-- Copyright 2013 Manuel Munz <freifunk at somakoma dot de>
-- Copyright 2014-2017 Christian Schoenebeck <christian dot schoenebeck at gmail dot com>
-- Copyright 2014-2018 Christian Schoenebeck <christian dot schoenebeck at gmail dot com>
-- Licensed to the public under the Apache License 2.0.
module("luci.controller.ddns", package.seeall)
@ -20,11 +20,11 @@ local DDNS = require "luci.tools.ddns" -- ddns multiused functions
luci_helper = "/usr/lib/ddns/dynamic_dns_lucihelper.sh"
local srv_name = "ddns-scripts"
local srv_ver_min = "2.7.6" -- minimum version of service required
local srv_ver_min = "2.7.7" -- minimum version of service required
local srv_ver_cmd = luci_helper .. [[ -V | awk {'print $2'}]]
local app_name = "luci-app-ddns"
local app_title = "Dynamic DNS"
local app_version = "2.4.8-2"
local app_version = "2.4.9-1"
function index()
local nxfs = require "nixio.fs" -- global definitions not available
@ -187,6 +187,11 @@ local function _get_status()
-- try to get registered IP
local lookup_host = s["lookup_host"] or "_nolookup_"
local chk_sec = DDNS.calc_seconds(
tonumber(s["check_interval"]) or 10,
s["check_unit"] or "minutes" )
local reg_ip = DDNS.get_regip(section, chk_sec)
if reg_ip == "NOFILE" then
local dnsserver = s["dns_server"] or ""
local force_ipversion = tonumber(s["force_ipversion"] or 0)
local force_dnstcp = tonumber(s["force_dnstcp"] or 0)
@ -197,9 +202,11 @@ local function _get_status()
if (force_dnstcp == 1) then command = command .. [[t]] end
if (is_glue == 1) then command = command .. [[g]] end
command = command .. [[l ]] .. lookup_host
command = command .. [[ -S ]] .. section
if (#dnsserver > 0) then command = command .. [[ -d ]] .. dnsserver end
command = command .. [[ -- get_registered_ip]]
local reg_ip = SYS.exec(command)
reg_ip = SYS.exec(command)
end
if reg_ip == "" then
reg_ip = "_nodata_"
end

View file

@ -1,4 +1,4 @@
-- Copyright 2014-2016 Christian Schoenebeck <christian dot schoenebeck at gmail dot com>
-- Copyright 2014-2018 Christian Schoenebeck <christian dot schoenebeck at gmail dot com>
-- Licensed to the public under the Apache License 2.0.
local NXFS = require "nixio.fs"
@ -122,6 +122,11 @@ function dom.set_one(self, section)
end
end
function dom.set_two(self, section)
local chk_sec = DDNS.calc_seconds(
tonumber(self.map:get(section, "check_interval")) or 10,
self.map:get(section, "check_unit") or "minutes" )
local ip = DDNS.get_regip(section, chk_sec)
if ip == "NOFILE" then
local lookup_host = self.map:get(section, "lookup_host") or ""
if lookup_host == "" then return "" end
local dnsserver = self.map:get(section, "dnsserver") or ""
@ -135,9 +140,11 @@ function dom.set_two(self, section)
if (force_dnstcp == 1) then command = command .. [[t]] end
if (is_glue == 1) then command = command .. [[g]] end
command = command .. [[l ]] .. lookup_host
command = command .. [[ -S ]] .. section
if (#dnsserver > 0) then command = command .. [[ -d ]] .. dnsserver end
command = command .. [[ -- get_registered_ip]]
local ip = SYS.exec(command)
ip = SYS.exec(command)
end
if ip == "" then ip = translate("no data") end
return ip
end

View file

@ -1,4 +1,4 @@
-- Copyright 2014-2016 Christian Schoenebeck <christian dot schoenebeck at gmail dot com>
-- Copyright 2014-2018 Christian Schoenebeck <christian dot schoenebeck at gmail dot com>
-- Licensed to the public under the Apache License 2.0.
module("luci.tools.ddns", package.seeall)
@ -74,6 +74,23 @@ function get_lastupd(section)
return etime
end
-- read registered IP from [section].ip file
function get_regip(section, chk_sec)
local uci = UCI.cursor()
local rdir = uci:get("ddns", "global", "ddns_rundir") or "/var/run/ddns"
local ip = "NOFILE"
if NXFS.access("%s/%s.ip" % { rdir, section }) then
local ftime = NXFS.stat("%s/%s.ip" % { rdir, section }, "ctime") or 0
local otime = os.time()
-- give ddns-scripts time (9 sec) to update file
if otime < (ftime + chk_sec + 9) then
ip = NXFS.readfile("%s/%s.ip" % { rdir, section })
end
end
uci:unload("ddns")
return ip
end
-- read PID from run file and verify if still running
function get_pid(section)
local uci = UCI.cursor()