From dc47afea38f76627b376636221f02e02a4214fb0 Mon Sep 17 00:00:00 2001 From: Richard Hansen Date: Fri, 26 Jun 2020 14:32:33 -0400 Subject: [PATCH 1/4] Delete unused `config` entry --- ddclient | 317 +++++++++++++++++++++++++++---------------------------- 1 file changed, 158 insertions(+), 159 deletions(-) diff --git a/ddclient b/ddclient index f1452d5..83126e9 100755 --- a/ddclient +++ b/ddclient @@ -313,186 +313,185 @@ sub setv { 'type' => shift, 'required' => shift, 'cache' => shift, - 'config' => shift, 'default' => shift, 'minimum' => shift, }; } my %variables = ( 'global-defaults' => { - 'daemon' => setv(T_DELAY, 0, 0, 1, $daemon_default, interval('60s')), - 'foreground' => setv(T_BOOL, 0, 0, 1, 0, undef), - 'file' => setv(T_FILE, 0, 0, 1, "$etc$program.conf", undef), - 'cache' => setv(T_FILE, 0, 0, 1, "$cachedir$program.cache", undef), - 'pid' => setv(T_FILE, 0, 0, 1, "", undef), - 'proxy' => setv(T_FQDNP, 0, 0, 1, '', undef), - 'protocol' => setv(T_PROTO, 0, 0, 1, 'dyndns2', undef), + 'daemon' => setv(T_DELAY, 0, 0, $daemon_default, interval('60s')), + 'foreground' => setv(T_BOOL, 0, 0, 0, undef), + 'file' => setv(T_FILE, 0, 0, "$etc$program.conf", undef), + 'cache' => setv(T_FILE, 0, 0, "$cachedir$program.cache", undef), + 'pid' => setv(T_FILE, 0, 0, "", undef), + 'proxy' => setv(T_FQDNP, 0, 0, '', undef), + 'protocol' => setv(T_PROTO, 0, 0, 'dyndns2', undef), - 'use' => setv(T_USE, 0, 0, 1, 'ip', undef), - 'ip' => setv(T_IP, 0, 0, 1, undef, undef), - 'if' => setv(T_IF, 0, 0, 1, 'ppp0', undef), - 'if-skip' => setv(T_STRING,1, 0, 1, '', undef), - 'web' => setv(T_STRING,0, 0, 1, 'dyndns', undef), - 'web-skip' => setv(T_STRING,1, 0, 1, '', undef), - 'fw' => setv(T_ANY, 0, 0, 1, '', undef), - 'fw-skip' => setv(T_STRING,1, 0, 1, '', undef), - 'fw-login' => setv(T_LOGIN, 1, 0, 1, '', undef), - 'fw-password' => setv(T_PASSWD,1, 0, 1, '', undef), - 'cmd' => setv(T_PROG, 0, 0, 1, '', undef), - 'cmd-skip' => setv(T_STRING,1, 0, 1, '', undef), + 'use' => setv(T_USE, 0, 0, 'ip', undef), + 'ip' => setv(T_IP, 0, 0, undef, undef), + 'if' => setv(T_IF, 0, 0, 'ppp0', undef), + 'if-skip' => setv(T_STRING,1, 0, '', undef), + 'web' => setv(T_STRING,0, 0, 'dyndns', undef), + 'web-skip' => setv(T_STRING,1, 0, '', undef), + 'fw' => setv(T_ANY, 0, 0, '', undef), + 'fw-skip' => setv(T_STRING,1, 0, '', undef), + 'fw-login' => setv(T_LOGIN, 1, 0, '', undef), + 'fw-password' => setv(T_PASSWD,1, 0, '', undef), + 'cmd' => setv(T_PROG, 0, 0, '', undef), + 'cmd-skip' => setv(T_STRING,1, 0, '', undef), - 'timeout' => setv(T_DELAY, 0, 0, 1, interval('120s'), interval('120s')), - 'retry' => setv(T_BOOL, 0, 0, 0, 0, undef), - 'force' => setv(T_BOOL, 0, 0, 0, 0, undef), - 'ssl' => setv(T_BOOL, 0, 0, 0, 0, undef), - 'ipv6' => setv(T_BOOL, 0, 0, 0, 0, undef), - 'syslog' => setv(T_BOOL, 0, 0, 1, 0, undef), - 'facility' => setv(T_STRING,0, 0, 1, 'daemon', undef), - 'priority' => setv(T_STRING,0, 0, 1, 'notice', undef), - 'mail' => setv(T_EMAIL, 0, 0, 1, '', undef), - 'mail-failure' => setv(T_EMAIL, 0, 0, 1, '', undef), + 'timeout' => setv(T_DELAY, 0, 0, interval('120s'), interval('120s')), + 'retry' => setv(T_BOOL, 0, 0, 0, undef), + 'force' => setv(T_BOOL, 0, 0, 0, undef), + 'ssl' => setv(T_BOOL, 0, 0, 0, undef), + 'ipv6' => setv(T_BOOL, 0, 0, 0, undef), + 'syslog' => setv(T_BOOL, 0, 0, 0, undef), + 'facility' => setv(T_STRING,0, 0, 'daemon', undef), + 'priority' => setv(T_STRING,0, 0, 'notice', undef), + 'mail' => setv(T_EMAIL, 0, 0, '', undef), + 'mail-failure' => setv(T_EMAIL, 0, 0, '', undef), - 'exec' => setv(T_BOOL, 0, 0, 1, 1, undef), - 'debug' => setv(T_BOOL, 0, 0, 1, 0, undef), - 'verbose' => setv(T_BOOL, 0, 0, 1, 0, undef), - 'quiet' => setv(T_BOOL, 0, 0, 1, 0, undef), - 'help' => setv(T_BOOL, 0, 0, 1, 0, undef), - 'test' => setv(T_BOOL, 0, 0, 1, 0, undef), - 'geturl' => setv(T_STRING,0, 0, 0, '', undef), + 'exec' => setv(T_BOOL, 0, 0, 1, undef), + 'debug' => setv(T_BOOL, 0, 0, 0, undef), + 'verbose' => setv(T_BOOL, 0, 0, 0, undef), + 'quiet' => setv(T_BOOL, 0, 0, 0, undef), + 'help' => setv(T_BOOL, 0, 0, 0, undef), + 'test' => setv(T_BOOL, 0, 0, 0, undef), + 'geturl' => setv(T_STRING,0, 0, '', undef), - 'postscript' => setv(T_POSTS, 0, 0, 1, '', undef), + 'postscript' => setv(T_POSTS, 0, 0, '', undef), }, 'service-common-defaults' => { - 'server' => setv(T_FQDNP, 1, 0, 1, 'members.dyndns.org', undef), - 'login' => setv(T_LOGIN, 1, 0, 1, '', undef), - 'password' => setv(T_PASSWD,1, 0, 1, '', undef), - 'host' => setv(T_STRING,1, 1, 1, '', undef), + 'server' => setv(T_FQDNP, 1, 0, 'members.dyndns.org', undef), + 'login' => setv(T_LOGIN, 1, 0, '', undef), + 'password' => setv(T_PASSWD,1, 0, '', undef), + 'host' => setv(T_STRING,1, 1, '', undef), - 'use' => setv(T_USE, 0, 0, 1, 'ip', undef), - 'if' => setv(T_IF, 0, 0, 1, 'ppp0', undef), - 'if-skip' => setv(T_STRING,0, 0, 1, '', undef), - 'web' => setv(T_STRING,0, 0, 1, 'dyndns', undef), - 'web-skip' => setv(T_STRING,0, 0, 1, '', undef), - 'fw' => setv(T_ANY, 0, 0, 1, '', undef), - 'fw-skip' => setv(T_STRING,0, 0, 1, '', undef), - 'fw-login' => setv(T_LOGIN, 0, 0, 1, '', undef), - 'fw-password' => setv(T_PASSWD,0, 0, 1, '', undef), - 'cmd' => setv(T_PROG, 0, 0, 1, '', undef), - 'cmd-skip' => setv(T_STRING,0, 0, 1, '', undef), - 'ipv6' => setv(T_BOOL, 0, 0, 0, 0, undef), - 'ip' => setv(T_IP, 0, 1, 0, undef, undef), - 'wtime' => setv(T_DELAY, 0, 1, 1, 0, interval('30s')), - 'mtime' => setv(T_NUMBER,0, 1, 0, 0, undef), - 'atime' => setv(T_NUMBER,0, 1, 0, 0, undef), - 'status' => setv(T_ANY, 0, 1, 0, '', undef), - 'min-interval' => setv(T_DELAY, 0, 0, 1, interval('30s'), 0), - 'max-interval' => setv(T_DELAY, 0, 0, 1, interval('25d'), 0), - 'min-error-interval' => setv(T_DELAY, 0, 0, 1, interval('5m'), 0), + 'use' => setv(T_USE, 0, 0, 'ip', undef), + 'if' => setv(T_IF, 0, 0, 'ppp0', undef), + 'if-skip' => setv(T_STRING,0, 0, '', undef), + 'web' => setv(T_STRING,0, 0, 'dyndns', undef), + 'web-skip' => setv(T_STRING,0, 0, '', undef), + 'fw' => setv(T_ANY, 0, 0, '', undef), + 'fw-skip' => setv(T_STRING,0, 0, '', undef), + 'fw-login' => setv(T_LOGIN, 0, 0, '', undef), + 'fw-password' => setv(T_PASSWD,0, 0, '', undef), + 'cmd' => setv(T_PROG, 0, 0, '', undef), + 'cmd-skip' => setv(T_STRING,0, 0, '', undef), + 'ipv6' => setv(T_BOOL, 0, 0, 0, undef), + 'ip' => setv(T_IP, 0, 1, undef, undef), + 'wtime' => setv(T_DELAY, 0, 1, 0, interval('30s')), + 'mtime' => setv(T_NUMBER,0, 1, 0, undef), + 'atime' => setv(T_NUMBER,0, 1, 0, undef), + 'status' => setv(T_ANY, 0, 1, '', undef), + 'min-interval' => setv(T_DELAY, 0, 0, interval('30s'), 0), + 'max-interval' => setv(T_DELAY, 0, 0, interval('25d'), 0), + 'min-error-interval' => setv(T_DELAY, 0, 0, interval('5m'), 0), - 'warned-min-interval' => setv(T_ANY, 0, 1, 0, 0, undef), - 'warned-min-error-interval' => setv(T_ANY, 0, 1, 0, 0, undef), + 'warned-min-interval' => setv(T_ANY, 0, 1, 0, undef), + 'warned-min-error-interval' => setv(T_ANY, 0, 1, 0, undef), }, 'dyndns-common-defaults' => { - 'static' => setv(T_BOOL, 0, 1, 1, 0, undef), - 'wildcard' => setv(T_BOOL, 0, 1, 1, 0, undef), - 'mx' => setv(T_OFQDN, 0, 1, 1, '', undef), - 'backupmx' => setv(T_BOOL, 0, 1, 1, 0, undef), + 'static' => setv(T_BOOL, 0, 1, 0, undef), + 'wildcard' => setv(T_BOOL, 0, 1, 0, undef), + 'mx' => setv(T_OFQDN, 0, 1, '', undef), + 'backupmx' => setv(T_BOOL, 0, 1, 0, undef), }, 'easydns-common-defaults' => { - 'wildcard' => setv(T_BOOL, 0, 1, 1, 0, undef), - 'mx' => setv(T_OFQDN, 0, 1, 1, '', undef), - 'backupmx' => setv(T_BOOL, 0, 1, 1, 0, undef), + 'wildcard' => setv(T_BOOL, 0, 1, 0, undef), + 'mx' => setv(T_OFQDN, 0, 1, '', undef), + 'backupmx' => setv(T_BOOL, 0, 1, 0, undef), }, 'noip-common-defaults' => { - 'static' => setv(T_BOOL, 0, 1, 1, 0, undef), + 'static' => setv(T_BOOL, 0, 1, 0, undef), }, 'noip-service-common-defaults' => { - 'server' => setv(T_FQDNP, 1, 0, 1, 'dynupdate.no-ip.com',undef), - 'login' => setv(T_LOGIN, 1, 0, 1, '', undef), - 'password' => setv(T_PASSWD,1, 0, 1, '', undef), - 'host' => setv(T_STRING,1, 1, 1, '', undef), - 'ip' => setv(T_IP, 0, 1, 0, undef, undef), - 'wtime' => setv(T_DELAY, 0, 1, 1, 0, interval('30s')), - 'mtime' => setv(T_NUMBER,0, 1, 0, 0, undef), - 'atime' => setv(T_NUMBER,0, 1, 0, 0, undef), - 'status' => setv(T_ANY, 0, 1, 0, '', undef), - 'min-interval' => setv(T_DELAY, 0, 0, 1, interval('30s'), 0), - 'max-interval' => setv(T_DELAY, 0, 0, 1, interval('25d'), 0), - 'min-error-interval' => setv(T_DELAY, 0, 0, 1, interval('5m'), 0), - 'warned-min-interval' => setv(T_ANY, 0, 1, 0, 0, undef), - 'warned-min-error-interval' => setv(T_ANY, 0, 1, 0, 0, undef), + 'server' => setv(T_FQDNP, 1, 0, 'dynupdate.no-ip.com',undef), + 'login' => setv(T_LOGIN, 1, 0, '', undef), + 'password' => setv(T_PASSWD,1, 0, '', undef), + 'host' => setv(T_STRING,1, 1, '', undef), + 'ip' => setv(T_IP, 0, 1, undef, undef), + 'wtime' => setv(T_DELAY, 0, 1, 0, interval('30s')), + 'mtime' => setv(T_NUMBER,0, 1, 0, undef), + 'atime' => setv(T_NUMBER,0, 1, 0, undef), + 'status' => setv(T_ANY, 0, 1, '', undef), + 'min-interval' => setv(T_DELAY, 0, 0, interval('30s'), 0), + 'max-interval' => setv(T_DELAY, 0, 0, interval('25d'), 0), + 'min-error-interval' => setv(T_DELAY, 0, 0, interval('5m'), 0), + 'warned-min-interval' => setv(T_ANY, 0, 1, 0, undef), + 'warned-min-error-interval' => setv(T_ANY, 0, 1, 0, undef), }, 'zoneedit-service-common-defaults' => { - 'zone' => setv(T_OFQDN, 0, 0, 1, undef, undef), + 'zone' => setv(T_OFQDN, 0, 0, undef, undef), }, 'dtdns-common-defaults' => { - 'login' => setv(T_LOGIN, 0, 0, 0, 'unused', undef), - 'client' => setv(T_STRING,0, 1, 1, $program, undef), + 'login' => setv(T_LOGIN, 0, 0, 'unused', undef), + 'client' => setv(T_STRING,0, 1, $program, undef), }, 'nsupdate-common-defaults' => { - 'ttl' => setv(T_NUMBER,0, 1, 0, 600, undef), - 'zone' => setv(T_STRING,1, 1, 1, '', undef), - 'tcp' => setv(T_BOOL, 0, 1, 1, 0, undef), + 'ttl' => setv(T_NUMBER,0, 1, 600, undef), + 'zone' => setv(T_STRING,1, 1, '', undef), + 'tcp' => setv(T_BOOL, 0, 1, 0, undef), }, 'cloudflare-common-defaults' => { - 'server' => setv(T_FQDNP, 1, 0, 1, 'api.cloudflare.com/client/v4', undef), - 'zone' => setv(T_FQDN, 1, 0, 1, '', undef), - 'login' => setv(T_LOGIN, 0, 0, 1, 'token', undef), - 'static' => setv(T_BOOL, 0, 1, 1, 0, undef), - 'wildcard' => setv(T_BOOL, 0, 1, 1, 0, undef), - 'mx' => setv(T_OFQDN, 0, 1, 1, '', undef), - 'backupmx' => setv(T_BOOL, 0, 1, 1, 0, undef), - 'ttl' => setv(T_NUMBER,1, 0, 1, 1, undef), + 'server' => setv(T_FQDNP, 1, 0, 'api.cloudflare.com/client/v4', undef), + 'zone' => setv(T_FQDN, 1, 0, '', undef), + 'login' => setv(T_LOGIN, 0, 0, 'token', undef), + 'static' => setv(T_BOOL, 0, 1, 0, undef), + 'wildcard' => setv(T_BOOL, 0, 1, 0, undef), + 'mx' => setv(T_OFQDN, 0, 1, '', undef), + 'backupmx' => setv(T_BOOL, 0, 1, 0, undef), + 'ttl' => setv(T_NUMBER,1, 0, 1, undef), }, 'googledomains-common-defaults' => { - 'server' => setv(T_FQDNP, 1, 0, 1, 'domains.google.com', undef), + 'server' => setv(T_FQDNP, 1, 0, 'domains.google.com', undef), }, 'duckdns-common-defaults' => { - 'server' => setv(T_FQDNP, 1, 0, 1, 'www.duckdns.org', undef), - 'login' => setv(T_LOGIN, 0, 0, 0, 'unused', undef), + 'server' => setv(T_FQDNP, 1, 0, 'www.duckdns.org', undef), + 'login' => setv(T_LOGIN, 0, 0, 'unused', undef), }, 'freemyip-common-defaults' => { - 'server' => setv(T_FQDNP, 1, 0, 1, 'freemyip.com', undef), - 'login' => setv(T_LOGIN, 0, 0, 0, 'unused', undef), + 'server' => setv(T_FQDNP, 1, 0, 'freemyip.com', undef), + 'login' => setv(T_LOGIN, 0, 0, 'unused', undef), }, 'woima-common-defaults' => { - 'static' => setv(T_BOOL, 0, 1, 1, 0, undef), - 'wildcard' => setv(T_BOOL, 0, 1, 1, 0, undef), - 'mx' => setv(T_OFQDN, 0, 1, 1, '', undef), - 'backupmx' => setv(T_BOOL, 0, 1, 1, 0, undef), - 'custom' => setv(T_BOOL, 0, 1, 1, 0, undef), - 'script' => setv(T_STRING,1, 1, 1, '/nic/update', undef), + 'static' => setv(T_BOOL, 0, 1, 0, undef), + 'wildcard' => setv(T_BOOL, 0, 1, 0, undef), + 'mx' => setv(T_OFQDN, 0, 1, '', undef), + 'backupmx' => setv(T_BOOL, 0, 1, 0, undef), + 'custom' => setv(T_BOOL, 0, 1, 0, undef), + 'script' => setv(T_STRING,1, 1, '/nic/update', undef), }, 'woima-service-common-defaults' => { - 'server' => setv(T_FQDNP, 1, 0, 1, 'dyn.woima.fi', undef), - 'login' => setv(T_LOGIN, 1, 0, 1, '', undef), - 'password' => setv(T_PASSWD,1, 0, 1, '', undef), - 'ip' => setv(T_IP, 0, 1, 0, undef, undef), - 'wtime' => setv(T_DELAY, 0, 1, 1, 0, interval('30s')), - 'mtime' => setv(T_NUMBER,0, 1, 0, 0, undef), - 'atime' => setv(T_NUMBER,0, 1, 0, 0, undef), - 'status' => setv(T_ANY, 0, 1, 0, '', undef), - 'min-interval' => setv(T_DELAY, 0, 0, 1, interval('30s'), 0), - 'max-interval' => setv(T_DELAY, 0, 0, 1, interval('25d'), 0), - 'min-error-interval' => setv(T_DELAY, 0, 0, 1, interval('5m'), 0), - 'warned-min-interval' => setv(T_ANY, 0, 1, 0, 0, undef), - 'warned-min-error-interval' => setv(T_ANY, 0, 1, 0, 0, undef), + 'server' => setv(T_FQDNP, 1, 0, 'dyn.woima.fi', undef), + 'login' => setv(T_LOGIN, 1, 0, '', undef), + 'password' => setv(T_PASSWD,1, 0, '', undef), + 'ip' => setv(T_IP, 0, 1, undef, undef), + 'wtime' => setv(T_DELAY, 0, 1, 0, interval('30s')), + 'mtime' => setv(T_NUMBER,0, 1, 0, undef), + 'atime' => setv(T_NUMBER,0, 1, 0, undef), + 'status' => setv(T_ANY, 0, 1, '', undef), + 'min-interval' => setv(T_DELAY, 0, 0, interval('30s'), 0), + 'max-interval' => setv(T_DELAY, 0, 0, interval('25d'), 0), + 'min-error-interval' => setv(T_DELAY, 0, 0, interval('5m'), 0), + 'warned-min-interval' => setv(T_ANY, 0, 1, 0, undef), + 'warned-min-error-interval' => setv(T_ANY, 0, 1, 0, undef), }, 'yandex-common-defaults' => { - 'server' => setv(T_FQDNP, 1, 0, 1, 'pddimp.yandex.ru', undef), + 'server' => setv(T_FQDNP, 1, 0, 'pddimp.yandex.ru', undef), }, 'dnsmadeeasy-common-defaults' => { - 'server' => setv(T_FQDNP, 1, 0, 1, 'cp.dnsmadeeasy.com', undef), - 'script' => setv(T_STRING,1, 1, 1, '/servlet/updateip', undef), + 'server' => setv(T_FQDNP, 1, 0, 'cp.dnsmadeeasy.com', undef), + 'script' => setv(T_STRING,1, 1, '/servlet/updateip', undef), }, 'dondominio-common-defaults' => { - 'server' => setv(T_FQDNP, 1, 0, 1, 'dondns.dondominio.com', undef), + 'server' => setv(T_FQDNP, 1, 0, 'dondns.dondominio.com', undef), }, 'ovh-common-defaults' => { - 'server' => setv(T_FQDNP, 1, 0, 1, 'www.ovh.com', undef), - 'script' => setv(T_STRING,1, 1, 1, '/nic/update', undef), - 'login' => setv(T_LOGIN, 1, 0, 1, '', undef), - 'password' => setv(T_PASSWD,1, 0, 1, '', undef), + 'server' => setv(T_FQDNP, 1, 0, 'www.ovh.com', undef), + 'script' => setv(T_STRING,1, 1, '/nic/update', undef), + 'login' => setv(T_LOGIN, 1, 0, '', undef), + 'password' => setv(T_PASSWD,1, 0, '', undef), }, ); my %services = ( @@ -510,8 +509,8 @@ my %services = ( 'update' => \&nic_dyndns2_update, 'examples' => \&nic_dyndns2_examples, 'variables' => merge( - { 'custom' => setv(T_BOOL, 0, 1, 1, 0, undef), }, - { 'script' => setv(T_STRING, 1, 1, 1, '/nic/update', undef), }, + { 'custom' => setv(T_BOOL, 0, 1, 0, undef), }, + { 'script' => setv(T_STRING, 1, 1, '/nic/update', undef), }, $variables{'dyndns-common-defaults'}, $variables{'service-common-defaults'}, ), @@ -521,7 +520,7 @@ my %services = ( 'update' => \&nic_noip_update, 'examples' => \&nic_noip_examples, 'variables' => merge( - { 'custom' => setv(T_BOOL, 0, 1, 1, 0, undef), }, + { 'custom' => setv(T_BOOL, 0, 1, 0, undef), }, $variables{'noip-common-defaults'}, $variables{'noip-service-common-defaults'}, ), @@ -531,7 +530,7 @@ my %services = ( 'update' => \&nic_dslreports1_update, 'examples' => \&nic_dslreports1_examples, 'variables' => merge( - { 'host' => setv(T_NUMBER, 1, 1, 1, 0, undef) }, + { 'host' => setv(T_NUMBER, 1, 1, 0, undef) }, $variables{'service-common-defaults'}, ), }, @@ -540,8 +539,8 @@ my %services = ( 'update' => \&nic_hammernode1_update, 'examples' => \&nic_hammernode1_examples, 'variables' => merge( - { 'server' => setv(T_FQDNP, 1, 0, 1, 'dup.hn.org', undef) }, - { 'min-interval' => setv(T_DELAY, 0, 0, 1, interval('5m'), 0), }, + { 'server' => setv(T_FQDNP, 1, 0, 'dup.hn.org', undef) }, + { 'min-interval' => setv(T_DELAY, 0, 0, interval('5m'), 0), }, $variables{'service-common-defaults'}, ), }, @@ -550,8 +549,8 @@ my %services = ( 'update' => \&nic_zoneedit1_update, 'examples' => \&nic_zoneedit1_examples, 'variables' => merge( - { 'server' => setv(T_FQDNP, 1, 0, 1, 'dynamic.zoneedit.com', undef) }, - { 'min-interval' => setv(T_DELAY, 0, 0, 1, interval('5m'), 0), }, + { 'server' => setv(T_FQDNP, 1, 0, 'dynamic.zoneedit.com', undef) }, + { 'min-interval' => setv(T_DELAY, 0, 0, interval('5m'), 0), }, $variables{'service-common-defaults'}, $variables{'zoneedit-service-common-defaults'}, ), @@ -561,8 +560,8 @@ my %services = ( 'update' => \&nic_easydns_update, 'examples' => \&nic_easydns_examples, 'variables' => merge( - { 'server' => setv(T_FQDNP, 1, 0, 1, 'members.easydns.com', undef) }, - { 'min-interval' => setv(T_DELAY, 0, 0, 1, interval('5m'), 0), }, + { 'server' => setv(T_FQDNP, 1, 0, 'members.easydns.com', undef) }, + { 'min-interval' => setv(T_DELAY, 0, 0, interval('5m'), 0), }, $variables{'easydns-common-defaults'}, $variables{'service-common-defaults'}, ), @@ -572,8 +571,8 @@ my %services = ( 'update' => \&nic_namecheap_update, 'examples' => \&nic_namecheap_examples, 'variables' => merge( - { 'server' => setv(T_FQDNP, 1, 0, 1, 'dynamicdns.park-your-domain.com', undef) }, - { 'min-interval' => setv(T_DELAY, 0, 0, 1, 0, interval('5m')), }, + { 'server' => setv(T_FQDNP, 1, 0, 'dynamicdns.park-your-domain.com', undef) }, + { 'min-interval' => setv(T_DELAY, 0, 0, 0, interval('5m')), }, $variables{'service-common-defaults'}, ), }, @@ -582,10 +581,10 @@ my %services = ( 'update' => \&nic_nfsn_update, 'examples' => \&nic_nfsn_examples, 'variables' => merge( - { 'server' => setv(T_FQDNP, 1, 0, 1, 'api.nearlyfreespeech.net', undef) }, - { 'min_interval' => setv(T_FQDNP, 0, 0, 1, 0, interval('5m')) }, - { 'ttl' => setv(T_NUMBER, 1, 0, 1, 300, undef) }, - { 'zone' => setv(T_FQDN, 1, 0, 1, undef, undef) }, + { 'server' => setv(T_FQDNP, 1, 0, 'api.nearlyfreespeech.net', undef) }, + { 'min_interval' => setv(T_FQDNP, 0, 0, 0, interval('5m')) }, + { 'ttl' => setv(T_NUMBER, 1, 0, 300, undef) }, + { 'zone' => setv(T_FQDN, 1, 0, undef, undef) }, $variables{'service-common-defaults'}, ), }, @@ -594,8 +593,8 @@ my %services = ( 'update' => \&nic_sitelutions_update, 'examples' => \&nic_sitelutions_examples, 'variables' => merge( - { 'server' => setv(T_FQDNP, 1, 0, 1, 'www.sitelutions.com', undef) }, - { 'min-interval' => setv(T_DELAY, 0, 0, 1, 0, interval('5m')), }, + { 'server' => setv(T_FQDNP, 1, 0, 'www.sitelutions.com', undef) }, + { 'min-interval' => setv(T_DELAY, 0, 0, 0, interval('5m')), }, $variables{'service-common-defaults'}, ), }, @@ -604,8 +603,8 @@ my %services = ( 'update' => \&nic_freedns_update, 'examples' => \&nic_freedns_examples, 'variables' => merge( - { 'server' => setv(T_FQDNP, 1, 0, 1, 'freedns.afraid.org', undef) }, - { 'min-interval' => setv(T_DELAY, 0, 0, 1, 0, interval('5m')), }, + { 'server' => setv(T_FQDNP, 1, 0, 'freedns.afraid.org', undef) }, + { 'min-interval' => setv(T_DELAY, 0, 0, 0, interval('5m')), }, $variables{'service-common-defaults'}, ), }, @@ -614,8 +613,8 @@ my %services = ( 'update' => \&nic_changeip_update, 'examples' => \&nic_changeip_examples, 'variables' => merge( - { 'server' => setv(T_FQDNP, 1, 0, 1, 'nic.changeip.com', undef) }, - { 'min-interval' => setv(T_DELAY, 0, 0, 1, 0, interval('5m')), }, + { 'server' => setv(T_FQDNP, 1, 0, 'nic.changeip.com', undef) }, + { 'min-interval' => setv(T_DELAY, 0, 0, 0, interval('5m')), }, $variables{'service-common-defaults'}, ), }, @@ -633,7 +632,7 @@ my %services = ( 'update' => \&nic_nsupdate_update, 'examples' => \&nic_nsupdate_examples, 'variables' => merge( - { 'login' => setv(T_LOGIN, 1, 0, 1, '/usr/bin/nsupdate', undef), }, + { 'login' => setv(T_LOGIN, 1, 0, '/usr/bin/nsupdate', undef), }, $variables{'nsupdate-common-defaults'}, $variables{'service-common-defaults'}, ), @@ -643,8 +642,8 @@ my %services = ( 'update' => \&nic_cloudflare_update, 'examples' => \&nic_cloudflare_examples, 'variables' => merge( - { 'server' => setv(T_FQDNP, 1, 0, 1, 'api.cloudflare.com/client/v4', undef) }, - { 'min-interval' => setv(T_DELAY, 0, 0, 1, interval('5m'), 0), }, + { 'server' => setv(T_FQDNP, 1, 0, 'api.cloudflare.com/client/v4', undef) }, + { 'min-interval' => setv(T_DELAY, 0, 0, interval('5m'), 0), }, $variables{'cloudflare-common-defaults'}, $variables{'service-common-defaults'}, ), @@ -654,7 +653,7 @@ my %services = ( 'update' => \&nic_googledomains_update, 'examples' => \&nic_googledomains_examples, 'variables' => merge( - { 'min-interval' => setv(T_DELAY, 0, 0, 1, interval('5m'), 0), }, + { 'min-interval' => setv(T_DELAY, 0, 0, interval('5m'), 0), }, $variables{'googledomains-common-defaults'}, $variables{'service-common-defaults'}, ), @@ -691,7 +690,7 @@ my %services = ( 'update' => \&nic_yandex_update, 'examples' => \&nic_yandex_examples, 'variables' => merge( - { 'min-interval' => setv(T_DELAY, 0, 0, 1, interval('5m'), 0), }, + { 'min-interval' => setv(T_DELAY, 0, 0, interval('5m'), 0), }, $variables{'yandex-common-defaults'}, $variables{'service-common-defaults'}, ), From 8a63c5b74f281f549295f285103c483327ea28a0 Mon Sep 17 00:00:00 2001 From: Richard Hansen Date: Sat, 27 Jun 2020 13:01:06 -0400 Subject: [PATCH 2/4] Rename `ipv4_match`, `ipv6_match` to `extract_ipv4`, `extract_ipv6` "Match" only implies a boolean return value. While these functions can be used in boolean context, "extract" more closely matches their intended purpose. --- ddclient | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/ddclient b/ddclient index f1452d5..45e2882 100755 --- a/ddclient +++ b/ddclient @@ -949,7 +949,7 @@ sub update_nics { next; } if (!is_ipv4($ip)) { - if (!ipv6_match($ip)) { + if (!extract_ipv6($ip)) { warning("malformed IP address (%s)", $ip); next; } @@ -1900,7 +1900,7 @@ sub check_value { return undef if $value eq ""; } elsif ($type eq T_IP) { - if (!ipv6_match($value)) { + if (!extract_ipv6($value)) { return undef if !is_ipv4($value); } } @@ -2282,9 +2282,9 @@ sub get_ip { } if (defined($ip)) { # no need to parse $reply - } elsif ($ip = ipv4_match($reply)) { + } elsif ($ip = extract_ipv4($reply)) { $ip = un_zero_pad($ip); - } elsif ($ip = ipv6_match($reply)) { + } elsif ($ip = extract_ipv6($reply)) { $ip = un_zero_pad($ip); } else { warning("found neither ipv4 nor ipv6 address"); @@ -2303,13 +2303,13 @@ sub get_ip { ###################################################################### sub is_ipv4 { my ($value) = @_; - return (length($value // '') != 0) && ($value eq (ipv4_match($value) // '')); + return (length($value // '') != 0) && ($value eq (extract_ipv4($value) // '')); } ###################################################################### -## ipv4_match() extracts the first valid IPv4 address from given string +## extract_ipv4() extracts the first valid IPv4 address from the given string ###################################################################### -sub ipv4_match { +sub extract_ipv4 { (shift // '') =~ /\b((?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))\b/ai; return $1; } @@ -2324,9 +2324,9 @@ sub is_ipv6 { } ###################################################################### -## ipv6_match determine ipv6 address from given string and return them +## extract_ipv6() extracts the first valid IPv6 address from the given string ###################################################################### -sub ipv6_match { +sub extract_ipv6 { my $content = shift; my $omits; my $ip = ""; From 3199f791d86e3d169d1e84b15bedf09c83bed6c4 Mon Sep 17 00:00:00 2001 From: Richard Hansen Date: Fri, 26 Jun 2020 12:30:35 -0400 Subject: [PATCH 3/4] Sort `%services` entries by key --- ddclient | 236 +++++++++++++++++++++++++++---------------------------- 1 file changed, 118 insertions(+), 118 deletions(-) diff --git a/ddclient b/ddclient index 2015654..88c9395 100755 --- a/ddclient +++ b/ddclient @@ -495,6 +495,72 @@ my %variables = ( }, ); my %services = ( + 'changeip' => { + 'updateable' => undef, + 'update' => \&nic_changeip_update, + 'examples' => \&nic_changeip_examples, + 'variables' => merge( + { 'server' => setv(T_FQDNP, 1, 0, 'nic.changeip.com', undef) }, + { 'min-interval' => setv(T_DELAY, 0, 0, 0, interval('5m')), }, + $variables{'service-common-defaults'}, + ), + }, + 'cloudflare' => { + 'updateable' => undef, + 'update' => \&nic_cloudflare_update, + 'examples' => \&nic_cloudflare_examples, + 'variables' => merge( + { 'server' => setv(T_FQDNP, 1, 0, 'api.cloudflare.com/client/v4', undef) }, + { 'min-interval' => setv(T_DELAY, 0, 0, interval('5m'), 0), }, + $variables{'cloudflare-common-defaults'}, + $variables{'service-common-defaults'}, + ), + }, + 'dnsmadeeasy' => { + 'updateable' => undef, + 'update' => \&nic_dnsmadeeasy_update, + 'examples' => \&nic_dnsmadeeasy_examples, + 'variables' => merge( + $variables{'dnsmadeeasy-common-defaults'}, + $variables{'service-common-defaults'}, + ), + }, + 'dondominio' => { + 'updateable' => undef, + 'update' => \&nic_dondominio_update, + 'examples' => \&nic_dondominio_examples, + 'variables' => merge( + $variables{'dondominio-common-defaults'}, + $variables{'service-common-defaults'}, + ), + }, + 'dslreports1' => { + 'updateable' => undef, + 'update' => \&nic_dslreports1_update, + 'examples' => \&nic_dslreports1_examples, + 'variables' => merge( + { 'host' => setv(T_NUMBER, 1, 1, 0, undef) }, + $variables{'service-common-defaults'}, + ), + }, + 'dtdns' => { + 'updateable' => undef, + 'update' => \&nic_dtdns_update, + 'examples' => \&nic_dtdns_examples, + 'variables' => merge( + $variables{'dtdns-common-defaults'}, + $variables{'service-common-defaults'}, + ), + }, + 'duckdns' => { + 'updateable' => undef, + 'update' => \&nic_duckdns_update, + 'examples' => \&nic_duckdns_examples, + 'variables' => merge( + $variables{'duckdns-common-defaults'}, + $variables{'service-common-defaults'}, + ), + }, 'dyndns1' => { 'updateable' => \&nic_dyndns2_updateable, 'update' => \&nic_dyndns1_update, @@ -515,22 +581,43 @@ my %services = ( $variables{'service-common-defaults'}, ), }, - 'noip' => { + 'easydns' => { 'updateable' => undef, - 'update' => \&nic_noip_update, - 'examples' => \&nic_noip_examples, + 'update' => \&nic_easydns_update, + 'examples' => \&nic_easydns_examples, 'variables' => merge( - { 'custom' => setv(T_BOOL, 0, 1, 0, undef), }, - $variables{'noip-common-defaults'}, - $variables{'noip-service-common-defaults'}, + { 'server' => setv(T_FQDNP, 1, 0, 'members.easydns.com', undef) }, + { 'min-interval' => setv(T_DELAY, 0, 0, interval('5m'), 0), }, + $variables{'easydns-common-defaults'}, + $variables{'service-common-defaults'}, ), }, - 'dslreports1' => { + 'freedns' => { 'updateable' => undef, - 'update' => \&nic_dslreports1_update, - 'examples' => \&nic_dslreports1_examples, + 'update' => \&nic_freedns_update, + 'examples' => \&nic_freedns_examples, 'variables' => merge( - { 'host' => setv(T_NUMBER, 1, 1, 0, undef) }, + { 'server' => setv(T_FQDNP, 1, 0, 'freedns.afraid.org', undef) }, + { 'min-interval' => setv(T_DELAY, 0, 0, 0, interval('5m')), }, + $variables{'service-common-defaults'}, + ), + }, + 'freemyip' => { + 'updateable' => undef, + 'update' => \&nic_freemyip_update, + 'examples' => \&nic_freemyip_examples, + 'variables' => merge( + $variables{'freemyip-common-defaults'}, + $variables{'service-common-defaults'}, + ), + }, + 'googledomains' => { + 'updateable' => undef, + 'update' => \&nic_googledomains_update, + 'examples' => \&nic_googledomains_examples, + 'variables' => merge( + { 'min-interval' => setv(T_DELAY, 0, 0, interval('5m'), 0), }, + $variables{'googledomains-common-defaults'}, $variables{'service-common-defaults'}, ), }, @@ -544,28 +631,6 @@ my %services = ( $variables{'service-common-defaults'}, ), }, - 'zoneedit1' => { - 'updateable' => undef, - 'update' => \&nic_zoneedit1_update, - 'examples' => \&nic_zoneedit1_examples, - 'variables' => merge( - { 'server' => setv(T_FQDNP, 1, 0, 'dynamic.zoneedit.com', undef) }, - { 'min-interval' => setv(T_DELAY, 0, 0, interval('5m'), 0), }, - $variables{'service-common-defaults'}, - $variables{'zoneedit-service-common-defaults'}, - ), - }, - 'easydns' => { - 'updateable' => undef, - 'update' => \&nic_easydns_update, - 'examples' => \&nic_easydns_examples, - 'variables' => merge( - { 'server' => setv(T_FQDNP, 1, 0, 'members.easydns.com', undef) }, - { 'min-interval' => setv(T_DELAY, 0, 0, interval('5m'), 0), }, - $variables{'easydns-common-defaults'}, - $variables{'service-common-defaults'}, - ), - }, 'namecheap' => { 'updateable' => undef, 'update' => \&nic_namecheap_update, @@ -588,43 +653,14 @@ my %services = ( $variables{'service-common-defaults'}, ), }, - 'sitelutions' => { + 'noip' => { 'updateable' => undef, - 'update' => \&nic_sitelutions_update, - 'examples' => \&nic_sitelutions_examples, + 'update' => \&nic_noip_update, + 'examples' => \&nic_noip_examples, 'variables' => merge( - { 'server' => setv(T_FQDNP, 1, 0, 'www.sitelutions.com', undef) }, - { 'min-interval' => setv(T_DELAY, 0, 0, 0, interval('5m')), }, - $variables{'service-common-defaults'}, - ), - }, - 'freedns' => { - 'updateable' => undef, - 'update' => \&nic_freedns_update, - 'examples' => \&nic_freedns_examples, - 'variables' => merge( - { 'server' => setv(T_FQDNP, 1, 0, 'freedns.afraid.org', undef) }, - { 'min-interval' => setv(T_DELAY, 0, 0, 0, interval('5m')), }, - $variables{'service-common-defaults'}, - ), - }, - 'changeip' => { - 'updateable' => undef, - 'update' => \&nic_changeip_update, - 'examples' => \&nic_changeip_examples, - 'variables' => merge( - { 'server' => setv(T_FQDNP, 1, 0, 'nic.changeip.com', undef) }, - { 'min-interval' => setv(T_DELAY, 0, 0, 0, interval('5m')), }, - $variables{'service-common-defaults'}, - ), - }, - 'dtdns' => { - 'updateable' => undef, - 'update' => \&nic_dtdns_update, - 'examples' => \&nic_dtdns_examples, - 'variables' => merge( - $variables{'dtdns-common-defaults'}, - $variables{'service-common-defaults'}, + { 'custom' => setv(T_BOOL, 0, 1, 0, undef), }, + $variables{'noip-common-defaults'}, + $variables{'noip-service-common-defaults'}, ), }, 'nsupdate' => { @@ -637,42 +673,22 @@ my %services = ( $variables{'service-common-defaults'}, ), }, - 'cloudflare' => { + 'ovh' => { 'updateable' => undef, - 'update' => \&nic_cloudflare_update, - 'examples' => \&nic_cloudflare_examples, + 'update' => \&nic_ovh_update, + 'examples' => \&nic_ovh_examples, 'variables' => merge( - { 'server' => setv(T_FQDNP, 1, 0, 'api.cloudflare.com/client/v4', undef) }, - { 'min-interval' => setv(T_DELAY, 0, 0, interval('5m'), 0), }, - $variables{'cloudflare-common-defaults'}, + $variables{'ovh-common-defaults'}, $variables{'service-common-defaults'}, ), }, - 'googledomains' => { + 'sitelutions' => { 'updateable' => undef, - 'update' => \&nic_googledomains_update, - 'examples' => \&nic_googledomains_examples, + 'update' => \&nic_sitelutions_update, + 'examples' => \&nic_sitelutions_examples, 'variables' => merge( - { 'min-interval' => setv(T_DELAY, 0, 0, interval('5m'), 0), }, - $variables{'googledomains-common-defaults'}, - $variables{'service-common-defaults'}, - ), - }, - 'duckdns' => { - 'updateable' => undef, - 'update' => \&nic_duckdns_update, - 'examples' => \&nic_duckdns_examples, - 'variables' => merge( - $variables{'duckdns-common-defaults'}, - $variables{'service-common-defaults'}, - ), - }, - 'freemyip' => { - 'updateable' => undef, - 'update' => \&nic_freemyip_update, - 'examples' => \&nic_freemyip_examples, - 'variables' => merge( - $variables{'freemyip-common-defaults'}, + { 'server' => setv(T_FQDNP, 1, 0, 'www.sitelutions.com', undef) }, + { 'min-interval' => setv(T_DELAY, 0, 0, 0, interval('5m')), }, $variables{'service-common-defaults'}, ), }, @@ -695,31 +711,15 @@ my %services = ( $variables{'service-common-defaults'}, ), }, - 'dnsmadeeasy' => { + 'zoneedit1' => { 'updateable' => undef, - 'update' => \&nic_dnsmadeeasy_update, - 'examples' => \&nic_dnsmadeeasy_examples, + 'update' => \&nic_zoneedit1_update, + 'examples' => \&nic_zoneedit1_examples, 'variables' => merge( - $variables{'dnsmadeeasy-common-defaults'}, - $variables{'service-common-defaults'}, - ), - }, - 'dondominio' => { - 'updateable' => undef, - 'update' => \&nic_dondominio_update, - 'examples' => \&nic_dondominio_examples, - 'variables' => merge( - $variables{'dondominio-common-defaults'}, - $variables{'service-common-defaults'}, - ), - }, - 'ovh' => { - 'updateable' => undef, - 'update' => \&nic_ovh_update, - 'examples' => \&nic_ovh_examples, - 'variables' => merge( - $variables{'ovh-common-defaults'}, + { 'server' => setv(T_FQDNP, 1, 0, 'dynamic.zoneedit.com', undef) }, + { 'min-interval' => setv(T_DELAY, 0, 0, interval('5m'), 0), }, $variables{'service-common-defaults'}, + $variables{'zoneedit-service-common-defaults'}, ), }, ); From 176631339720d97cc5ad6ef15cfa09e8199f4b02 Mon Sep 17 00:00:00 2001 From: Richard Hansen Date: Fri, 26 Jun 2020 12:41:16 -0400 Subject: [PATCH 4/4] Sort `%builtinfw` entries by key --- ddclient | 286 +++++++++++++++++++++++++++---------------------------- 1 file changed, 143 insertions(+), 143 deletions(-) diff --git a/ddclient b/ddclient index 88c9395..112acb8 100755 --- a/ddclient +++ b/ddclient @@ -76,35 +76,60 @@ my %builtinweb = ( 'myonlineportal' => { 'url' => 'https://myonlineportal.net/checkip', }, ); my %builtinfw = ( - 'watchguard-soho' => { - 'name' => 'Watchguard SOHO FW', - 'url' => '/pubnet.htm', - 'skip' => 'NAME=IPAddress VALUE=', + '2wire' => { + 'name' => '2Wire 1701HG Gateway', + 'url' => '/xslt?PAGE=B01', + 'skip' => 'Internet Address:', }, - 'netopia-r910' => { - 'name' => 'Netopia R910 FW', - 'url' => '/WanEvtLog', - 'skip' => 'local:', + '3com-3c886a' => { + 'name' => '3com 3c886a 56k Lan Modem', + 'url' => '/stat3.htm', + 'skip' => 'IP address in use', }, - 'smc-barricade' => { - 'name' => 'SMC Barricade FW', - 'url' => '/status.htm', - 'skip' => 'IP Address', + '3com-oc-remote812' => { + 'name' => '3com OfficeConnect Remote 812', + 'url' => '/callEvent', + 'skip' => '.*LOCAL', }, - 'smc-barricade-alt' => { - 'name' => 'SMC Barricade FW (alternate config)', - 'url' => '/status.HTM', - 'skip' => 'WAN IP', + 'alcatel-510' => { + 'name' => 'Alcatel Speed Touch 510', + 'url' => '/cgi/ip/', + 'skip' => 'ppp', }, - 'smc-barricade-7401bra' => { - 'name' => 'SMC Barricade 7401BRA FW', - 'url' => '/admin/wan1.htm', - 'skip' => 'IP Address', + 'alcatel-stp' => { + 'name' => 'Alcatel Speed Touch Pro', + 'url' => '/cgi/router/', + 'skip' => 'Brt', }, - 'netgear-rt3xx' => { - 'name' => 'Netgear FW', - 'url' => '/mtenSysStatus.html', - 'skip' => 'IP Address', + 'allnet-1298' => { + 'name' => 'Allnet 1298', + 'url' => '/cgi/router/', + 'skip' => 'WAN', + }, + 'cayman-3220h' => { + 'name' => 'Cayman 3220-H DSL', + 'url' => '/shell/show+ip+interfaces', + 'skip' => '.*inet', + }, + 'dlink-524' => { + 'name' => 'D-Link DI-524', + 'url' => '/st_device.html', + 'skip' => 'WAN.*?Addres', + }, + 'dlink-604' => { + 'name' => 'D-Link DI-604', + 'url' => '/st_devic.html', + 'skip' => 'WAN.*?IP.*Address', + }, + 'dlink-614' => { + 'name' => 'D-Link DI-614+', + 'url' => '/st_devic.html', + 'skip' => 'WAN', + }, + 'e-tech' => { + 'name' => 'E-tech Router', + 'url' => '/Status.htm', + 'skip' => 'Public IP Address', }, 'elsa-lancom-dsl10' => { 'name' => 'ELSA LanCom DSL/10 DSL FW', @@ -126,6 +151,16 @@ my %builtinfw = ( 'url' => '/Status.htm', 'skip' => 'WAN.*?Address', }, + 'linksys-rv042-wan1' => { + 'name' => 'Linksys RV042 Dual Homed Router WAN Port 2', + 'url' => '/home.htm', + 'skip' => 'WAN1 IP', + }, + 'linksys-rv042-wan2' => { + 'name' => 'Linksys RV042 Dual Homed Router WAN Port 2', + 'url' => '/home.htm', + 'skip' => 'WAN2 IP', + }, 'linksys-ver2' => { 'name' => 'Linksys FW version 2', 'url' => '/RouterStatus.htm', @@ -136,6 +171,11 @@ my %builtinfw = ( 'url' => '/Status_Router.htm', 'skip' => 'WAN.*?Address', }, + 'linksys-wcg200' => { + 'name' => 'Linksys WCG200 FW', + 'url' => '/RgStatus.asp', + 'skip' => 'WAN.IP.*?Address', + }, 'linksys-wrt854g' => { 'name' => 'Linksys WRT854G FW', 'url' => '/Status_Router.asp', @@ -151,145 +191,105 @@ my %builtinfw = ( 'url' => '/MainPage?id=6', 'skip' => 'ppp-0', }, - '3com-3c886a' => { - 'name' => '3com 3c886a 56k Lan Modem', - 'url' => '/stat3.htm', - 'skip' => 'IP address in use', - }, - 'sohoware-nbg800' => { - 'name' => 'SOHOWare BroadGuard NBG800', - 'url' => '/status.htm', - 'skip' => 'Internet IP', - }, - 'xsense-aero' => { - 'name' => 'Xsense Aero', - 'url' => '/A_SysInfo.htm', - 'skip' => 'WAN.*?IP Address', - }, - 'alcatel-stp' => { - 'name' => 'Alcatel Speed Touch Pro', - 'url' => '/cgi/router/', - 'skip' => 'Brt', - }, - 'alcatel-510' => { - 'name' => 'Alcatel Speed Touch 510', - 'url' => '/cgi/ip/', - 'skip' => 'ppp', - }, - 'allnet-1298' => { - 'name' => 'Allnet 1298', - 'url' => '/cgi/router/', - 'skip' => 'WAN', - }, - '3com-oc-remote812' => { - 'name' => '3com OfficeConnect Remote 812', - 'url' => '/callEvent', - 'skip' => '.*LOCAL', - }, - 'e-tech' => { - 'name' => 'E-tech Router', - 'url' => '/Status.htm', - 'skip' => 'Public IP Address', - }, - 'cayman-3220h' => { - 'name' => 'Cayman 3220-H DSL', - 'url' => '/shell/show+ip+interfaces', - 'skip' => '.*inet', - }, - 'vigor-2200usb' => { - 'name' => 'Vigor 2200 USB', - 'url' => '/doc/online.sht', - 'skip' => 'PPPoA', - }, - 'dlink-614' => { - 'name' => 'D-Link DI-614+', - 'url' => '/st_devic.html', - 'skip' => 'WAN', - }, - 'dlink-604' => { - 'name' => 'D-Link DI-604', - 'url' => '/st_devic.html', - 'skip' => 'WAN.*?IP.*Address', - }, - 'olitec-SX200' => { - 'name' => 'olitec-SX200', - 'url' => '/doc/wan.htm', - 'skip' => 'st_wan_ip[0] = "', - }, - 'westell-6100' => { - 'name' => 'Westell C90-610015-06 DSL Router', - 'url' => '/advstat.htm', - 'skip' => 'IP.+?Address', - }, - '2wire' => { - 'name' => '2Wire 1701HG Gateway', - 'url' => '/xslt?PAGE=B01', - 'skip' => 'Internet Address:', - }, - 'linksys-rv042-wan1' => { - 'name' => 'Linksys RV042 Dual Homed Router WAN Port 2', - 'url' => '/home.htm', - 'skip' => 'WAN1 IP', - }, - 'linksys-rv042-wan2' => { - 'name' => 'Linksys RV042 Dual Homed Router WAN Port 2', - 'url' => '/home.htm', - 'skip' => 'WAN2 IP', + 'netgear-dg834g' => { + 'name' => 'netgear-dg834g', + 'url' => '/setup.cgi?next_file=s_status.htm&todo=cfg_init', + 'skip' => '', }, 'netgear-rp614' => { 'name' => 'Netgear RP614 FW', 'url' => '/sysstatus.html', 'skip' => 'IP Address', }, - 'watchguard-edge-x' => { - 'name' => 'Watchguard Edge X FW', - 'url' => '/netstat.htm', - 'skip' => 'inet addr:', - }, - 'dlink-524' => { - 'name' => 'D-Link DI-524', - 'url' => '/st_device.html', - 'skip' => 'WAN.*?Addres', - }, - 'rtp300' => { - 'name' => 'Linksys RTP300', - 'url' => '/cgi-bin/webcm?getpage=%2Fusr%2Fwww_safe%2Fhtml%2Fstatus%2FRouter.html', - 'skip' => 'Internet.*?IP Address', - }, - 'netgear-wpn824' => { - 'name' => 'Netgear WPN824 FW', - 'url' => '/RST_status.htm', + 'netgear-rt3xx' => { + 'name' => 'Netgear FW', + 'url' => '/mtenSysStatus.html', 'skip' => 'IP Address', }, - 'linksys-wcg200' => { - 'name' => 'Linksys WCG200 FW', - 'url' => '/RgStatus.asp', - 'skip' => 'WAN.IP.*?Address', - }, - 'netgear-dg834g' => { - 'name' => 'netgear-dg834g', - 'url' => '/setup.cgi?next_file=s_status.htm&todo=cfg_init', - 'skip' => '', - }, 'netgear-wgt624' => { 'name' => 'Netgear WGT624', 'url' => '/RST_st_dhcp.htm', 'skip' => 'IP Address', }, - 'sveasoft' => { - 'name' => 'Sveasoft WRT54G/WRT54GS', - 'url' => '/Status_Router.asp', - 'skip' => 'var wan_ip', + 'netgear-wpn824' => { + 'name' => 'Netgear WPN824 FW', + 'url' => '/RST_status.htm', + 'skip' => 'IP Address', + }, + 'netopia-r910' => { + 'name' => 'Netopia R910 FW', + 'url' => '/WanEvtLog', + 'skip' => 'local:', + }, + 'olitec-SX200' => { + 'name' => 'olitec-SX200', + 'url' => '/doc/wan.htm', + 'skip' => 'st_wan_ip[0] = "', + }, + 'rtp300' => { + 'name' => 'Linksys RTP300', + 'url' => '/cgi-bin/webcm?getpage=%2Fusr%2Fwww_safe%2Fhtml%2Fstatus%2FRouter.html', + 'skip' => 'Internet.*?IP Address', + }, + 'sitecom-dc202' => { + 'name' => 'Sitecom DC-202 FW', + 'url' => '/status.htm', + 'skip' => 'Internet IP Address', + }, + 'smc-barricade' => { + 'name' => 'SMC Barricade FW', + 'url' => '/status.htm', + 'skip' => 'IP Address', }, 'smc-barricade-7004vbr' => { 'name' => 'SMC Barricade FW (7004VBR model config)', 'url' => '/status_main.stm', 'skip' => 'var wan_ip=', }, - 'sitecom-dc202' => { - 'name' => 'Sitecom DC-202 FW', + 'smc-barricade-7401bra' => { + 'name' => 'SMC Barricade 7401BRA FW', + 'url' => '/admin/wan1.htm', + 'skip' => 'IP Address', + }, + 'smc-barricade-alt' => { + 'name' => 'SMC Barricade FW (alternate config)', + 'url' => '/status.HTM', + 'skip' => 'WAN IP', + }, + 'sohoware-nbg800' => { + 'name' => 'SOHOWare BroadGuard NBG800', 'url' => '/status.htm', - 'skip' => 'Internet IP Address', + 'skip' => 'Internet IP', + }, + 'sveasoft' => { + 'name' => 'Sveasoft WRT54G/WRT54GS', + 'url' => '/Status_Router.asp', + 'skip' => 'var wan_ip', + }, + 'vigor-2200usb' => { + 'name' => 'Vigor 2200 USB', + 'url' => '/doc/online.sht', + 'skip' => 'PPPoA', + }, + 'watchguard-edge-x' => { + 'name' => 'Watchguard Edge X FW', + 'url' => '/netstat.htm', + 'skip' => 'inet addr:', + }, + 'watchguard-soho' => { + 'name' => 'Watchguard SOHO FW', + 'url' => '/pubnet.htm', + 'skip' => 'NAME=IPAddress VALUE=', + }, + 'westell-6100' => { + 'name' => 'Westell C90-610015-06 DSL Router', + 'url' => '/advstat.htm', + 'skip' => 'IP.+?Address', + }, + 'xsense-aero' => { + 'name' => 'Xsense Aero', + 'url' => '/A_SysInfo.htm', + 'skip' => 'WAN.*?IP Address', }, );