diff options
Diffstat (limited to 'abs/extra-testing/ddclient/ddclient-foreground.patch')
-rw-r--r-- | abs/extra-testing/ddclient/ddclient-foreground.patch | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/abs/extra-testing/ddclient/ddclient-foreground.patch b/abs/extra-testing/ddclient/ddclient-foreground.patch new file mode 100644 index 0000000..a814ede --- /dev/null +++ b/abs/extra-testing/ddclient/ddclient-foreground.patch @@ -0,0 +1,47 @@ +--- ../ddclient-orig/ddclient 2009-10-19 22:45:15.000000000 +1030 ++++ ddclient 2009-10-19 22:50:11.000000000 +1030 +@@ -307,6 +307,7 @@ + my %variables = ( + 'global-defaults' => { + 'daemon' => setv(T_DELAY, 0, 0, 1, 0, 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), +@@ -535,6 +536,7 @@ + "usage: ${program} [options]", + "options are:", + [ "daemon", "=s", "-daemon delay : run as a daemon, specify delay as an interval." ], ++ [ "foreground", "!", "-foreground : do not fork" ], + [ "proxy", "=s", "-proxy host : use 'host' as the HTTP proxy" ], + [ "server", "=s", "-server host : update DNS information on 'host'" ], + [ "protocol", "=s", "-protocol type : update protocol used" ], +@@ -623,7 +625,10 @@ + $SIG{'HUP'} = sub { $caught_hup = 1; }; + $SIG{'TERM'} = sub { $caught_term = 1; }; + $SIG{'KILL'} = sub { $caught_kill = 1; }; +-if (opt('daemon') && !opt('force')) { ++# don't fork() if foreground or force is on ++if (opt('foreground') || opt('force')) { ++ ; ++} elsif (opt('daemon')) { + $SIG{'CHLD'} = 'IGNORE'; + my $pid = fork; + if ($pid < 0) { +@@ -633,12 +638,15 @@ + exit 0; + } + $SIG{'CHLD'} = 'DEFAULT'; +- $opt{'syslog'} = 1; + open(STDOUT, ">/dev/null"); + open(STDERR, ">/dev/null"); + open(STDIN, "</dev/null"); ++} + ++# write out the pid file if we're daemon'ized ++if(opt('daemon')) { + write_pid(); ++ $opt{'syslog'} = 1; + } + + umask 077; |