netfilter-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jan Engelhardt <jengelh@medozas.de>
To: kaber@trash.net
Cc: netfilter-devel@vger.kernel.org
Subject: [PATCH 01/10] libxt_time: always ignore libc timezone
Date: Tue, 24 May 2011 03:21:32 +0200	[thread overview]
Message-ID: <1306200102-12148-2-git-send-email-jengelh@medozas.de> (raw)
In-Reply-To: <1306200102-12148-1-git-send-email-jengelh@medozas.de>

Since xt_time is meant to work across many months, libc doing
automatic conversion from local time to UTC (during parse) is
unwanted, especially when --utc is specified. The same goes for
dumping.

Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
---
 extensions/libxt_time.c |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/extensions/libxt_time.c b/extensions/libxt_time.c
index b538476..32f0bf3 100644
--- a/extensions/libxt_time.c
+++ b/extensions/libxt_time.c
@@ -87,7 +87,7 @@ static time_t time_parse_date(const char *s, bool end)
 	const char *os = s;
 	struct tm tm;
 	time_t ret;
-	char *e;
+	char *e, *saved[2];
 
 	year = strtoul(s, &e, 10);
 	if ((*e != '-' && *e != '\0') || year < 1970 || year > 2038)
@@ -136,7 +136,15 @@ static time_t time_parse_date(const char *s, bool end)
 	tm.tm_min  = minute;
 	tm.tm_sec  = second;
 	tm.tm_isdst = 0;
+	/*
+	 * Offsetting, if any, is done by xt_time.ko,
+	 * so we have to disable it here in userspace.
+	 */
+	tzset();
+	memcpy(saved, tzname, sizeof(saved));
+	tzname[0] = tzname[1] = "UTC";
 	ret = mktime(&tm);
+	memcpy(tzname, saved, sizeof(saved));
 	if (ret >= 0)
 		return ret;
 	perror("mktime");
@@ -289,7 +297,7 @@ static void time_print_date(time_t date, const char *command)
 	if (date == 0 || date == LONG_MAX)
 		return;
 
-	t = localtime(&date);
+	t = gmtime(&date);
 	if (command != NULL)
 		/*
 		 * Need a contiguous string (no whitespaces), hence using
-- 
1.7.3.4


  reply	other threads:[~2011-05-24  1:21 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-24  1:21 Option parsing fixes (t-10) Jan Engelhardt
2011-05-24  1:21 ` Jan Engelhardt [this message]
2011-05-24  1:21 ` [PATCH 02/10] libxt_time: --utc and --localtz are mutually exclusive Jan Engelhardt
2011-05-24  1:21 ` [PATCH 03/10] doc: use .IP list for TCPMSS Jan Engelhardt
2011-05-24  1:21 ` [PATCH 04/10] doc: remove redundant .IP calls in libxt_time Jan Engelhardt
2011-05-24  1:21 ` [PATCH 05/10] libxt_time: remove --localtz option Jan Engelhardt
2011-05-24  1:21 ` [PATCH 06/10] libxt_u32: --u32 option is required Jan Engelhardt
2011-05-24  1:21 ` [PATCH 07/10] libip6t_rt: restore --rt-type storing Jan Engelhardt
2011-05-24  1:21 ` [PATCH 08/10] libxtables: more detailed error message on multi-int parsing Jan Engelhardt
2011-05-24  1:21 ` [PATCH 09/10] libxtables: use uintmax for xtables_strtoul Jan Engelhardt
2011-05-24  1:21 ` [PATCH 10/10] libxtables: make multiint parser have greater range Jan Engelhardt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1306200102-12148-2-git-send-email-jengelh@medozas.de \
    --to=jengelh@medozas.de \
    --cc=kaber@trash.net \
    --cc=netfilter-devel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).