diff --git a/data/ddns/schema/client.yml b/data/ddns/schema/client.yml index 41fccca..4baedb0 100644 --- a/data/ddns/schema/client.yml +++ b/data/ddns/schema/client.yml @@ -14,6 +14,7 @@ mapping: "proxy_url": {type: str} "user": {type: str, required: yes} "passwd": {type: str, required: yes} + "timeout": {type: int} "profiles": type: map required: yes diff --git a/data/ddns/schema/myip.yml b/data/ddns/schema/myip.yml index d8d862d..3aec545 100644 --- a/data/ddns/schema/myip.yml +++ b/data/ddns/schema/myip.yml @@ -5,3 +5,4 @@ mapping: "url": {type: str, required: yes} "proxy_url": {type: str} "default_interface": {type: str} + "timeout": {type: int} diff --git a/lib/ddns/myip.rb b/lib/ddns/myip.rb index 8ca4732..384140c 100644 --- a/lib/ddns/myip.rb +++ b/lib/ddns/myip.rb @@ -38,6 +38,7 @@ module DDNS curl.follow_location = true curl.resolve_mode = type curl.set(:interface, 'if!%s' % iface) if iface + curl.timeout = @config.timeout if @config.timeout end # TODO: how to check when IPv4/6 is not available diff --git a/lib/ddns/regip.rb b/lib/ddns/regip.rb index a884d3f..1729d09 100644 --- a/lib/ddns/regip.rb +++ b/lib/ddns/regip.rb @@ -32,6 +32,7 @@ module DDNS curl.proxy_url = @config.proxy_url if @config.proxy_url curl.follow_location = true curl.userpwd = sprintf("%s:%s", @config.user, @config.passwd) + curl.timeout = @config.timeout if @config.timeout end begin