summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--package/htpdate/Makefile7
-rw-r--r--package/htpdate/files/htpdate.default2
-rw-r--r--package/htpdate/files/htpdate.init2
-rw-r--r--package/htpdate/patches/500-check-time-delta-opt.patch67
-rw-r--r--package/htpdate/patches/no-time-delta-check.patch14
5 files changed, 73 insertions, 19 deletions
diff --git a/package/htpdate/Makefile b/package/htpdate/Makefile
index eb588c5c61..8505425747 100644
--- a/package/htpdate/Makefile
+++ b/package/htpdate/Makefile
@@ -3,9 +3,9 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=htpdate
-PKG_VERSION:=0.7.2
+PKG_VERSION:=0.8.0
PKG_RELEASE:=1
-PKG_MD5SUM:=5b5ab483bdb3ebe155c72197e1b885f6
+PKG_MD5SUM:=5fd1ba822e0949a3cb34e3f61fbeb8ca
PKG_SOURCE_URL:=http://www.clevervest.com/htp/archive/c/
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
@@ -32,8 +32,9 @@ $(IPKG_HTPDATE):
install -m0644 ./files/htpdate.default $(IDIR_HTPDATE)/etc/default/htpdate
install -d -m0755 $(IDIR_HTPDATE)/etc/init.d/
install -m0755 ./files/htpdate.init $(IDIR_HTPDATE)/etc/init.d/htpdate
+ ln -sf htpdate $(IDIR_HTPDATE)/etc/init.d/S49htpdate
install -d -m0755 $(IDIR_HTPDATE)/usr/sbin
- cp -fpR $(PKG_BUILD_DIR)/htpdate $(IDIR_HTPDATE)/usr/sbin/
+ install -m0755 $(PKG_BUILD_DIR)/htpdate $(IDIR_HTPDATE)/usr/sbin/
$(RSTRIP) $(IDIR_HTPDATE)
$(IPKG_BUILD) $(IDIR_HTPDATE) $(PACKAGE_DIR)
diff --git a/package/htpdate/files/htpdate.default b/package/htpdate/files/htpdate.default
index 8c182b3ee1..94674fdd3c 100644
--- a/package/htpdate/files/htpdate.default
+++ b/package/htpdate/files/htpdate.default
@@ -1 +1 @@
-OPTIONS="-D www.google.com www.yahoo.com www.linux.org www.freebsd.org"
+OPTIONS="www.google.com www.yahoo.com www.linux.org www.freebsd.org"
diff --git a/package/htpdate/files/htpdate.init b/package/htpdate/files/htpdate.init
index 9af0e55953..69d3d35f57 100644
--- a/package/htpdate/files/htpdate.init
+++ b/package/htpdate/files/htpdate.init
@@ -9,7 +9,7 @@ PID_F=$RUN_D/$BIN.pid
case $1 in
start)
mkdir -p $RUN_D
- $BIN $OPTIONS
+ $BIN -C 0 -l -s $OPTIONS && $BIN -D $OPTIONS
;;
stop)
[ -f $PID_F ] && kill $(cat $PID_F)
diff --git a/package/htpdate/patches/500-check-time-delta-opt.patch b/package/htpdate/patches/500-check-time-delta-opt.patch
new file mode 100644
index 0000000000..d5e663fdc6
--- /dev/null
+++ b/package/htpdate/patches/500-check-time-delta-opt.patch
@@ -0,0 +1,67 @@
+diff -ruN htpdate-0.8.0-old/htpdate.c htpdate-0.8.0-new/htpdate.c
+--- htpdate-0.8.0-old/htpdate.c 2005-05-26 23:32:18.000000000 +0200
++++ htpdate-0.8.0-new/htpdate.c 2005-06-02 04:33:33.000000000 +0200
+@@ -243,7 +243,7 @@
+ printf("htpdate version %s\n", version);
+ printf("\
+ Usage: htpdate [-0|-1] [-a|-q|-s] [-d|-D] [-h|-l] [-i pid file] [-m minpoll]\n\
+- [-M maxpoll] [-P <proxyserver>[:port]] <host[:port]> ...\n\n\
++ [-M maxpoll] [-C limit] [-P <proxyserver>[:port]] <host[:port]> ...\n\n\
+ -0 HTTP/1.0 request (default)\n\
+ -1 HTTP/1.1 request\n\
+ -a adjust time smoothly\n\
+@@ -257,6 +257,8 @@
+ -m minimum poll interval (2^m)\n\
+ -M maximum poll interval (2^M)\n\
+ -P proxy server\n\
++ -C time delta limit in server responses (in seconds)\n\
++ default: 1 year, unlimited: 0\n\
+ host web server hostname or ip address\n\
+ port port number (default 80 and 8080 for proxy server)\n\n");
+
+@@ -271,6 +273,7 @@
+ int port, proxyport = 8080;
+ int sumtime, numservers, validtime, goodtime, mean, i;
+ double timeavg;
++ int timedeltalimit = YEAR;
+ unsigned int nap = 0, when = 500000;
+ unsigned int minsleep = 10, maxsleep = 18, sleeptime = minsleep;
+ char setmode = 0, httpversion = 0, try, param;
+@@ -283,7 +286,7 @@
+
+
+ /* Parse the command line switches and arguments */
+- while ( (param = getopt(argc, argv, "01adhi:lm:qsDM:P:") ) != -1)
++ while ( (param = getopt(argc, argv, "01adhi:lm:qsDM:P:C:") ) != -1)
+ switch (param)
+ {
+ case '0': /* adjust time */
+@@ -340,6 +343,12 @@
+ }
+ }
+ break;
++ case 'C': /* time delta limit in server responses */
++ if ( (timedeltalimit = atoi(optarg) ) < 0 ) {
++ printlog( 1, "Invalid time delta limit" );
++ exit(1);
++ }
++ break;
+ case '?':
+ return 1;
+ default:
+@@ -458,10 +467,12 @@
+ try--;
+ } while ( timestamp && try && daemonize );
+
+- /* Only include valid responses in timedelta[], |delta time| < year */
+- if ( ( timestamp > -YEAR ) && ( timestamp < YEAR ) ) {
+- timedelta[validtime] = timestamp;
++ timedelta[validtime] = timestamp;
++ /* Only include valid responses in timedelta[], |delta time| < validlimit */
++ if ( ( timedeltalimit == 0 ) || ( ( timestamp > -timedeltalimit ) && ( timestamp < timedeltalimit ) ) ) {
+ validtime++;
++ } else {
++ printlog( 0, "Invalid server response (host: %s, time delta: %d, limit: %d)", host, timestamp, timedeltalimit);
+ }
+
+ /* Sleep for a while, unless we detected a time offset */
diff --git a/package/htpdate/patches/no-time-delta-check.patch b/package/htpdate/patches/no-time-delta-check.patch
deleted file mode 100644
index f459295419..0000000000
--- a/package/htpdate/patches/no-time-delta-check.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- htpdate-0.7.2-orig/htpdate.c 2005-05-05 20:53:13.000000000 +0200
-+++ htpdate-0.7.2-1/htpdate.c 2005-05-07 15:31:21.000000000 +0200
-@@ -411,11 +411,8 @@
-
- timestamp = getHTTPdate( host, port, proxy, proxyport, when );
-
-- /* Only include valid responses in timedelta[], |delta time| < year */
-- if ( labs(timestamp) < 31536000 ) {
- timedelta[validtime] = timestamp;
- validtime++;
-- }
-
- /* Sleep for a while, unless we detect a time offset */
- if ( daemonize && (timestamp == 0) )