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
next prev parent 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).