added latest version of ddclient, including my patch for everydns.net-support

This commit is contained in:
Manuel Friedli 2007-12-17 23:43:37 +00:00
commit 40108876ec
12 changed files with 393 additions and 0 deletions

44
net-dns/ddclient/Manifest Normal file
View file

@ -0,0 +1,44 @@
AUX ddclient-daemon0inconfig.diff 581 RMD160 727f1fdf3c85abac760be6e24563f7717eccfc58 SHA1 af6e1951a5be2566606c474fde1cde0b76e090d0 SHA256 73a69e09f79d7980f042c95bdd01832fa7749555ed237de824f19c45bb99793a
MD5 8547bd5960dc49726d62e1699742e474 files/ddclient-daemon0inconfig.diff 581
RMD160 727f1fdf3c85abac760be6e24563f7717eccfc58 files/ddclient-daemon0inconfig.diff 581
SHA256 73a69e09f79d7980f042c95bdd01832fa7749555ed237de824f19c45bb99793a files/ddclient-daemon0inconfig.diff 581
AUX ddclient-everydns.patch 3454 RMD160 e9ea63e8a055e7c6070c3b0b0b4dbc8627a162fd SHA1 b9ca9ba95f2412e81c8c24b0105278750dbb46b2 SHA256 72efe00568fe3691824e0335509a9302e739558c1955bcca1c1b9e6296b824e9
MD5 07c235b68dec6ab6fcd44d0bcc4389aa files/ddclient-everydns.patch 3454
RMD160 e9ea63e8a055e7c6070c3b0b0b4dbc8627a162fd files/ddclient-everydns.patch 3454
SHA256 72efe00568fe3691824e0335509a9302e739558c1955bcca1c1b9e6296b824e9 files/ddclient-everydns.patch 3454
AUX ddclient-gentoo.diff 422 RMD160 1611b60836c0d688fdacbcbf727f6b59e66ab7fd SHA1 aa49e555729addc6aa9a56df96df627ba8c489c9 SHA256 12230aedb86d138f5d75b42ba9980350ea50a95642bef34e8bc8ec5fdd690f58
MD5 b05219cfd27200ba052fcada5fde3430 files/ddclient-gentoo.diff 422
RMD160 1611b60836c0d688fdacbcbf727f6b59e66ab7fd files/ddclient-gentoo.diff 422
SHA256 12230aedb86d138f5d75b42ba9980350ea50a95642bef34e8bc8ec5fdd690f58 files/ddclient-gentoo.diff 422
AUX ddclient-mss1.diff 415 RMD160 a92c7c7cd9dfa2b8c2cdb095d18f46e85041d181 SHA1 34f35e5db3ea54675ced5a4072920127d95d7ec1 SHA256 380e8dc24ee89360b249a9f8f05cd022d763d6bc8fdea736a571377788dd6e39
MD5 71bb38899e4dd28eb29fdab1f29c8d26 files/ddclient-mss1.diff 415
RMD160 a92c7c7cd9dfa2b8c2cdb095d18f46e85041d181 files/ddclient-mss1.diff 415
SHA256 380e8dc24ee89360b249a9f8f05cd022d763d6bc8fdea736a571377788dd6e39 files/ddclient-mss1.diff 415
AUX ddclient-reasonable-security.patch 858 RMD160 0be9d1a9412225361f6352322ee5af6279730393 SHA1 171f220000c5ada3208f9f5765ef3347c7cbde7d SHA256 4ae67c01b41e0ae2f52b60e43072a872373201cc81f92108cd674b89eabda044
MD5 115dd5b54b4b9d303fca3bc1c57166ef files/ddclient-reasonable-security.patch 858
RMD160 0be9d1a9412225361f6352322ee5af6279730393 files/ddclient-reasonable-security.patch 858
SHA256 4ae67c01b41e0ae2f52b60e43072a872373201cc81f92108cd674b89eabda044 files/ddclient-reasonable-security.patch 858
AUX ddclient.confd 97 RMD160 dab278d7ed0ab8fe9f01c072be549d532f20b5d4 SHA1 90ede573df78aa242b9fec7f6d9f05f0c937fb2b SHA256 7a05a1c016dcffa2033da00e8a58072d0df33c31bc8b96170929032567cb44ab
MD5 4588890d33cb09e7a77aa1de987603b3 files/ddclient.confd 97
RMD160 dab278d7ed0ab8fe9f01c072be549d532f20b5d4 files/ddclient.confd 97
SHA256 7a05a1c016dcffa2033da00e8a58072d0df33c31bc8b96170929032567cb44ab files/ddclient.confd 97
AUX ddclient.init 732 RMD160 53c6674ff80bf0d222178bde2a2d28a3cd9ee635 SHA1 3b65b01e7a7e1d85843f75c701fbb43d5d124ccd SHA256 2e7aecd2ffe978006632d78bb3a7c5eede2490f6af769399c2bb35c531e11146
MD5 edb34c213f0018c0a0a8e6e09f83e45e files/ddclient.init 732
RMD160 53c6674ff80bf0d222178bde2a2d28a3cd9ee635 files/ddclient.init 732
SHA256 2e7aecd2ffe978006632d78bb3a7c5eede2490f6af769399c2bb35c531e11146 files/ddclient.init 732
AUX ddclient.initd 1227 RMD160 033f85c34d5126ce259687c565e16e78f01c4a6e SHA1 cc5e7fff44cba718090178db4cea756727007796 SHA256 9b2767317351437dcf71c59ef4ab15af0e4953465b17774980449885059aa925
MD5 466822e6e98da73817c645272da9986e files/ddclient.initd 1227
RMD160 033f85c34d5126ce259687c565e16e78f01c4a6e files/ddclient.initd 1227
SHA256 9b2767317351437dcf71c59ef4ab15af0e4953465b17774980449885059aa925 files/ddclient.initd 1227
AUX ddclient.rc6 718 RMD160 8faeb700539275e8ede58c857981b858e36c32fe SHA1 514ff1f62675f75203751770d808750a645c2df4 SHA256 8e94f53e278146665cf4f24427c84799767affef3742540a943b7379678171ad
MD5 938d0005b167a69deca19f3b6de7738f files/ddclient.rc6 718
RMD160 8faeb700539275e8ede58c857981b858e36c32fe files/ddclient.rc6 718
SHA256 8e94f53e278146665cf4f24427c84799767affef3742540a943b7379678171ad files/ddclient.rc6 718
DIST ddclient-3.7.3.tar.gz 42034 RMD160 df40a809132102b9326fa7e9d735723e1de8ed37 SHA1 aa4368a58e5b344bffd6561fc7fed304c007fe84 SHA256 f1f57fdca170d9349cb99a3b8b33672d983e0e41c43c2bbb940927380ee12962
EBUILD ddclient-3.7.3-r1.ebuild 2410 RMD160 fb93c0d02b31024477a92bde52446237d580feda SHA1 434a77b141cd950cddf35b013e6fa79f574b1eba SHA256 843ddef8a25b1259e65818df166e86d58a9f984cbb4408872d158f77dce2bbf1
MD5 b21f12c9ac47740faeea0703235304ed ddclient-3.7.3-r1.ebuild 2410
RMD160 fb93c0d02b31024477a92bde52446237d580feda ddclient-3.7.3-r1.ebuild 2410
SHA256 843ddef8a25b1259e65818df166e86d58a9f984cbb4408872d158f77dce2bbf1 ddclient-3.7.3-r1.ebuild 2410
MD5 1b4f422c68a82d37cae0bd29b9b9b993 files/digest-ddclient-3.7.3-r1 241
RMD160 b56a10473b3c84b5fd9937aeef576520d7581f09 files/digest-ddclient-3.7.3-r1 241
SHA256 456facaf438e3d532f5bcc7c9501ae66e5c6384d05cce25fd3c41f24d9ffbe89 files/digest-ddclient-3.7.3-r1 241

View file

@ -0,0 +1,78 @@
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-dns/ddclient/ddclient-3.7.3-r1.ebuild,v 1.7 2007/12/08 11:52:07 armin76 Exp $
inherit eutils
DESCRIPTION="Perl updater client for dynamic DNS services"
HOMEPAGE="http://ddclient.sourceforge.net/"
SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="alpha amd64 ~arm ~hppa ia64 ~mips ppc ppc64 sparc x86 ~x86-fbsd"
IUSE="ssl"
RDEPEND=">=dev-lang/perl-5.1
ssl? ( dev-perl/IO-Socket-SSL )"
pkg_setup() {
enewgroup ${PN}
enewuser ${PN} -1 -1 -1 ${PN}
}
src_unpack() {
unpack ${A}
cd "${S}"
epatch "${FILESDIR}/${PN}-reasonable-security.patch"
epatch "${FILESDIR}/${PN}-everydns.patch"
einfo "Applying version string fix"
if ! sed -i "s/3\.7\.1/$PV/" "$PN"; then
eerror "Failed to update ddclient's internal version string"
eerror 'ddclient 3.7.2 will erroneously report a version of 3.7.1'
fi
# Remove pid line, because it is specified in /etc/conf.d/ddclient
einfo "Applying PID setup"
if ! sed -i "/^pid=*/d" "sample-etc_${PN}.conf"; then
eerror "Failed to remove pid from /etc/$PN/$PN.conf"
eerror "Please set the PID in /etc/conf.d/$PN, not /etc/$PN/$PN.conf"
fi
if ! use ssl; then
einfo "Disabling ssl per your useflags"
sed -i "/^ssl=*/d" "sample-etc_${PN}.conf" ||
eerror "Failed to remove ssl from /etc/$PN/$PN.conf"
fi
}
src_install() {
dosbin ${PN} || die "dosbin failed"
dodoc README* Change* COPYRIGHT sample*
newinitd "${FILESDIR}"/${PN}.initd ${PN}
newconfd "${FILESDIR}"/${PN}.confd ${PN}
keepdir /var/{cache,run}/${PN}
# Filename of sample conf - use live filename if available
local sample=${PN}.conf
[[ -e "${ROOT}/etc/${PN}/${sample}" ]] && sample="${sample}.sample"
insinto /etc/${PN}
insopts -m 0640 -o root -g ${PN}
newins sample-etc_${PN}.conf "${sample}" || die "newins conf failed"
}
pkg_postinst() {
# ensure the directories are owned by the user:group for this pkg
chown ${PN}:${PN} /var/{cache,run}/${PN}
use ssl && return
ewarn
ewarn "$PN will not have support for ssl, which means your dynamic DNS account"
ewarn "information -- including your password -- will be sent over the Internet in the"
ewarn "clear. To secure your information, add 'ssl' to your USEflags,"
ewarn "emerge -N ddclient, and add 'ssl=yes' to /etc/$PN/$PN.conf"
ewarn
}

View file

@ -0,0 +1,15 @@
--- ddclient.orig 2005-01-16 15:18:36.485003496 -0500
+++ ddclient 2005-01-16 15:19:15.628052848 -0500
@@ -924,6 +924,12 @@
my $def = $variables{'merged'}{$k};
my $ovalue = define($globals{$k}, $def->{'default'});
my $value = check_value($ovalue, $def);
+
+ # we should really be allowed to set daemon to 0 in the config file
+ if ($k eq 'daemon' && $ovalue == 0) {
+ $value = $ovalue;
+ }
+
if ($def->{'required'} && !defined $value) {
$value = default($k);
warning("'%s=%s' is an invalid %s. (using default of %s)", $k, $ovalue, $def->{'type'}, $value);

View file

@ -0,0 +1,96 @@
Index: ddclient
===================================================================
--- ddclient (Revision 52)
+++ ddclient (Arbeitskopie)
@@ -464,6 +464,16 @@
$variables{'service-common-defaults'},
),
},
+ 'everydns' => {
+ 'updateable' => undef,
+ 'update' => \&nic_everydns_update,
+ 'examples' => \&nic_everydns_examples,
+ 'variables' => merge(
+ { 'server' => setv(T_FQDNP, 1, 0, 1, 'dyn.everydns.net', undef) },
+ { 'min-interval' => setv(T_DELAY, 0, 0, 1, 0, interval('15m')) },
+ $variables{'service-common-defaults'},
+ ),
+ },
);
$variables{'merged'} = merge($variables{'global-defaults'},
$variables{'service-common-defaults'},
@@ -3122,8 +3132,74 @@
}
}
}
+######################################################################
+## nic_everydns_examples
+######################################################################
+sub nic_everydns_examples {
+ return <<EoEXAMPLE;
+o 'everydns'
+The 'everydns' protocol is the protocol used by the free dynamic
+DNS service offered by EveryDNS at www.everydns.net. So far it actually ignores the
+value of the domain, it just updates all domains associated with the account
+that belongs to the given credentials
+
+Configuration variables applicable to the 'everydns' protocol are:
+ protocol=everydns ##
+ server=dyn.everydns.net ## defaults to members.dyndns.org
+ login=service-login ## login name and password registered with the service
+ password=service-password ##
+ domain.name ## the domain registered with the service.
+
+Example ${program}.conf file entries:
+ ## single host update
+ protocol=everydns, \\
+ login=my-everydns.net-login, \\
+ password=my-everydns.net-password \\
+ my-example-domain.com
+
+EoEXAMPLE
+}
######################################################################
+## nic_everydns_update
+######################################################################
+sub nic_everydns_update {
+ debug("\nnic_everydns_update -------------------");
+
+ ## update each configured domain
+ foreach my $d (@_) {
+ info("setting IP address to %s for %s", $ip, $d);
+ verbose("UPDATE:","updating %s", $d);
+
+ my $url;
+ $url = "http://$config{$d}{'server'}/index.php";
+ $url .= "?ver=0.1";
+ $url .= "&ip=$ip" if $ip;
+ # $url .= "&domain=$d" if $d;
+
+ my $reply = geturl(opt('proxy'), $url, $config{$d}{'login'}, $config{$d}{'password'});
+ if (!defined($reply) || !$reply) {
+ failed("updating %s: Could not connect to %s.", $d, $config{$d}{'server'});
+ last;
+ }
+ last if !header_ok($d, $reply);
+
+ my @reply = split /\n/, $reply;
+ if (grep /^Exit Code: 0$/i, @reply) {
+ $config{$d}{'ip'} = $ip;
+ $config{$d}{'mtime'} = $now;
+ $config{$d}{'status'} = 'good';
+ success("updating %s: good: IP address set to %s", $d, $ip);
+ } else {
+ $config{$d}{'status'} = 'failed';
+ warning("SENT: %s", $url) unless opt('verbose');
+ warning("REPLIED: %s", $reply);
+ failed("updating %s: Invalid reply.", $d);
+ }
+ }
+}
+
+######################################################################
# vim: ai ts=4 sw=4 tw=78 :

View file

@ -0,0 +1,11 @@
--- ddclient.bak 2003-11-05 10:42:33.000000000 +1000
+++ ddclient 2003-11-05 10:52:55.000000000 +1000
@@ -20,7 +20,7 @@
$program =~ s/d$//;
my $now = time;
my $hostname = hostname();
-my $etc = ($program =~ /test/i) ? './' : '/etc/';
+my $etc = ($program =~ /test/i) ? './' : '/etc/ddclient/';
my $savedir = ($program =~ /test/i) ? 'URL/' : '/tmp/';
my $msgs = '';
my $last_msgs = '';

View file

@ -0,0 +1,11 @@
--- ddclient.bak 2003-11-05 10:42:33.000000000 +1000
+++ ddclient 2003-11-05 10:48:12.000000000 +1000
@@ -2629,7 +2629,7 @@
my $h = pop @hosts;
$config{$h}{'status'} = $status;
- if ($status eq 'ok') {
+ if ($status eq 'ok' || $status eq 'nochange') {
$config{$h}{'ip'} = $ip;
$config{$h}{'mtime'} = $now;
success("updating %s: %s: IP address set to %s", $h, $status, $ip);

View file

@ -0,0 +1,21 @@
--- ddclient 2006-04-11 10:14:16.000000000 +0100
+++ ddclient 2006-04-11 20:31:14.000000000 +0100
@@ -776,15 +776,10 @@
# fatal("Cannot open file '%s'. ($!)", $file);
warning("Cannot open file '%s'. ($!)", $file);
}
- # Check for only owner has any access to config file
+ # Guard against world-readability of config file
my ($dev, $ino, $mode, @statrest) = stat(FD);
- if ($mode & 077) {
- if (-f FD && (chmod 0600, $file)) {
- warning("file $file must be accessible only by its owner (fixed).");
- } else {
- # fatal("file $file must be accessible only by its owner.");
- warning("file $file must be accessible only by its owner.");
- }
+ if ($mode & 007) {
+ fatal("Must not be world-accessible\nchange its permissions using e.g.\nchmod 640", $file);
}
local $lineno = 0;

View file

@ -0,0 +1,2 @@
# No need to specify a pid in /etc/ddclient/ddclient.conf
PIDFILE=/var/run/ddclient/ddclient.pid

View file

@ -0,0 +1,30 @@
#!/sbin/runscript
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-dns/ddclient/files/ddclient.init,v 1.1 2005/04/01 22:20:38 seemant Exp $
depend() {
need net
}
checkconfig() {
if [ ! -e /etc/ddclient/ddclient.conf ] ; then
eerror "You need a /etc/ddclient/ddclient.conf file to run ddclient"
eerror "There is a sample file in /etc/ddclient/"
return 1
fi
}
start() {
checkconfig || return 1
ebegin "Starting DDClient"
start-stop-daemon --start --chuid ddclient --quiet --exec /usr/sbin/ddclient 2&>/dev/null
eend $?
}
stop() {
ebegin "Stopping DDClient"
start-stop-daemon --stop --quiet --name ddclient
eend $?
}

View file

@ -0,0 +1,52 @@
#!/sbin/runscript
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-dns/ddclient/files/ddclient.initd,v 1.2 2007/08/08 03:17:32 uberlord Exp $
# Default location if not specified in /etc/conf.d/ddclient
PIDFILE=${PIDFILE:-/var/run/ddclient/ddclient.pid}
depend() {
before cron
need net
use dns logger
}
checkconfig() {
local conf="/etc/ddclient/ddclient.conf"
if [ -e "${conf}" ] ; then
if [ -n "$(find /etc/ddclient -maxdepth 1 -name ddclient.conf -perm +0004)" ] ; then
eerror "${conf} must not be world-readable. Run e.g.:"
eerror " chmod 640 ${conf}"
eerror " chown root:ddclient ${conf}"
return 1
fi
else
eerror "/etc/ddclient/ddclient.conf is needed to run ddclient"
eerror "There is a sample file in /etc/ddclient/"
return 1
fi
}
start() {
checkconfig || return 1
ebegin "Starting ${SVCNAME}"
start-stop-daemon \
--start \
--chuid ddclient \
--exec /usr/sbin/ddclient \
--name ddclient \
--pidfile "${PIDFILE}" \
-- -pid="${PIDFILE}"
eend $?
}
stop() {
ebegin "Stopping ${SVCNAME}"
start-stop-daemon \
--stop \
--signal USR1 \
--pidfile "${PIDFILE}"
eend $?
}

View file

@ -0,0 +1,30 @@
#!/sbin/runscript
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-dns/ddclient/files/ddclient.rc6,v 1.4 2004/07/14 23:21:59 agriffis Exp $
depend() {
need net
}
checkconfig() {
if [ ! -e /etc/ddclient/ddclient.conf ] ; then
eerror "You need a /etc/ddclient/ddclient.conf file to run ddclient"
eerror "There is a sample file in /etc/ddclient/"
return 1
fi
}
start() {
checkconfig || return 1
ebegin "Starting DDClient"
start-stop-daemon --start --quiet --exec /usr/sbin/ddclient
eend $?
}
stop() {
ebegin "Stopping DDClient"
start-stop-daemon --stop --quiet --pidfile /var/run/ddclient.pid
eend $?
}

View file

@ -0,0 +1,3 @@
MD5 5459ae165e74437587b6e84225a7fbf0 ddclient-3.7.3.tar.gz 42034
RMD160 df40a809132102b9326fa7e9d735723e1de8ed37 ddclient-3.7.3.tar.gz 42034
SHA256 f1f57fdca170d9349cb99a3b8b33672d983e0e41c43c2bbb940927380ee12962 ddclient-3.7.3.tar.gz 42034