aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES7
-rw-r--r--RELEASE-NOTES4
-rw-r--r--lib/parsedate.c87
3 files changed, 54 insertions, 44 deletions
diff --git a/CHANGES b/CHANGES
index ab0ba5d24..f68605bf1 100644
--- a/CHANGES
+++ b/CHANGES
@@ -7,6 +7,13 @@
Changelog
+Daniel (9 August 2005)
+- Christopher R. Palmer fixed the offsets used for date parsings when the time
+ zone name of a daylight savings time was used. For example, PDT vs PDS. This
+ flaw was introduced with the new date parser (11 sep 2004 - 7.12.2).
+ Fortunately, no web server or cookie string etc should be using such time
+ zone names thus limiting the effect of this bug.
+
Daniel (8 August 2005)
- Jon Grubbs filed bug report #1249962 which identified a problem with NTLM on
a HTTP proxy if an FTP URL was given. libcurl now properly switches to pure
diff --git a/RELEASE-NOTES b/RELEASE-NOTES
index b6a02ffea..dd00a5845 100644
--- a/RELEASE-NOTES
+++ b/RELEASE-NOTES
@@ -18,6 +18,7 @@ This release includes the following changes:
This release includes the following bugfixes:
+ o date parsing of dates including daylight savings time zone names
o using NTLM over proxy with an FTP URL
o curl-config --features now displays SSL when built with GnuTLS too
o CURLOPT_HTTPGET, CURLOPT_POST and CURLOPT_HTTPPOST reset CURLOPT_NOBODY
@@ -51,6 +52,7 @@ advice from friends like these:
John McGowan, Georg Wicherski, Andres Garcia, Eric Cooper, Todd Kulesza,
Tupone Alfredo, Gisle Vanem, David Shaw, Andrew Bushnell, Dan Fandrich,
- Adrian Schuur, Diego Casorran, Peteris Krumins, Jon Grubbs
+ Adrian Schuur, Diego Casorran, Peteris Krumins, Jon Grubbs, Christopher
+ R. Palmer
Thanks! (and sorry if I forgot to mention someone)
diff --git a/lib/parsedate.c b/lib/parsedate.c
index ae9e232a9..caf38a2ca 100644
--- a/lib/parsedate.c
+++ b/lib/parsedate.c
@@ -102,50 +102,51 @@ struct tzinfo {
/* Here's a bunch of frequently used time zone names. These were supported
by the old getdate parser. */
+#define tDAYZONE -60 /* offset for daylight savings time */
static const struct tzinfo tz[]= {
- {"GMT", 0}, /* Greenwich Mean */
- {"UTC", 0}, /* Universal (Coordinated) */
- {"WET", 0}, /* Western European */
- {"BST", 0}, /* British Summer */
- {"WAT", 60}, /* West Africa */
- {"AST", 240}, /* Atlantic Standard */
- {"ADT", 240}, /* Atlantic Daylight */
- {"EST", 300}, /* Eastern Standard */
- {"EDT", 300}, /* Eastern Daylight */
- {"CST", 360}, /* Central Standard */
- {"CDT", 360}, /* Central Daylight */
- {"MST", 420}, /* Mountain Standard */
- {"MDT", 420}, /* Mountain Daylight */
- {"PST", 480}, /* Pacific Standard */
- {"PDT", 480}, /* Pacific Daylight */
- {"YST", 540}, /* Yukon Standard */
- {"YDT", 540}, /* Yukon Daylight */
- {"HST", 600}, /* Hawaii Standard */
- {"HDT", 600}, /* Hawaii Daylight */
- {"CAT", 600}, /* Central Alaska */
- {"AHST", 600}, /* Alaska-Hawaii Standard */
- {"NT", 660}, /* Nome */
- {"IDLW", 720}, /* International Date Line West */
- {"CET", -60}, /* Central European */
- {"MET", -60}, /* Middle European */
- {"MEWT", -60}, /* Middle European Winter */
- {"MEST", -120}, /* Middle European Summer */
- {"CEST", -120}, /* Central European Summer */
- {"MESZ", -60}, /* Middle European Summer */
- {"FWT", -60}, /* French Winter */
- {"FST", -60}, /* French Summer */
- {"EET", -120}, /* Eastern Europe, USSR Zone 1 */
- {"WAST", -420}, /* West Australian Standard */
- {"WADT", -420}, /* West Australian Daylight */
- {"CCT", -480}, /* China Coast, USSR Zone 7 */
- {"JST", -540}, /* Japan Standard, USSR Zone 8 */
- {"EAST", -600}, /* Eastern Australian Standard */
- {"EADT", -600}, /* Eastern Australian Daylight */
- {"GST", -600}, /* Guam Standard, USSR Zone 9 */
- {"NZT", -720}, /* New Zealand */
- {"NZST", -720}, /* New Zealand Standard */
- {"NZDT", -720}, /* New Zealand Daylight */
- {"IDLE", -720}, /* International Date Line East */
+ {"GMT", 0}, /* Greenwich Mean */
+ {"UTC", 0}, /* Universal (Coordinated) */
+ {"WET", 0}, /* Western European */
+ {"BST", 0 tDAYZONE}, /* British Summer */
+ {"WAT", 60}, /* West Africa */
+ {"AST", 240}, /* Atlantic Standard */
+ {"ADT", 240 tDAYZONE}, /* Atlantic Daylight */
+ {"EST", 300}, /* Eastern Standard */
+ {"EDT", 300 tDAYZONE}, /* Eastern Daylight */
+ {"CST", 360}, /* Central Standard */
+ {"CDT", 360 tDAYZONE}, /* Central Daylight */
+ {"MST", 420}, /* Mountain Standard */
+ {"MDT", 420 tDAYZONE}, /* Mountain Daylight */
+ {"PST", 480}, /* Pacific Standard */
+ {"PDT", 480 tDAYZONE}, /* Pacific Daylight */
+ {"YST", 540}, /* Yukon Standard */
+ {"YDT", 540 tDAYZONE}, /* Yukon Daylight */
+ {"HST", 600}, /* Hawaii Standard */
+ {"HDT", 600 tDAYZONE}, /* Hawaii Daylight */
+ {"CAT", 600}, /* Central Alaska */
+ {"AHST", 600}, /* Alaska-Hawaii Standard */
+ {"NT", 660}, /* Nome */
+ {"IDLW", 720}, /* International Date Line West */
+ {"CET", -60}, /* Central European */
+ {"MET", -60}, /* Middle European */
+ {"MEWT", -60}, /* Middle European Winter */
+ {"MEST", -120 tDAYZONE}, /* Middle European Summer */
+ {"CEST", -120 tDAYZONE}, /* Central European Summer */
+ {"MESZ", -60 tDAYZONE}, /* Middle European Summer */
+ {"FWT", -60}, /* French Winter */
+ {"FST", -60 tDAYZONE}, /* French Summer */
+ {"EET", -120}, /* Eastern Europe, USSR Zone 1 */
+ {"WAST", -420}, /* West Australian Standard */
+ {"WADT", -420 tDAYZONE}, /* West Australian Daylight */
+ {"CCT", -480}, /* China Coast, USSR Zone 7 */
+ {"JST", -540}, /* Japan Standard, USSR Zone 8 */
+ {"EAST", -600}, /* Eastern Australian Standard */
+ {"EADT", -600 tDAYZONE}, /* Eastern Australian Daylight */
+ {"GST", -600}, /* Guam Standard, USSR Zone 9 */
+ {"NZT", -720}, /* New Zealand */
+ {"NZST", -720}, /* New Zealand Standard */
+ {"NZDT", -720 tDAYZONE}, /* New Zealand Daylight */
+ {"IDLE", -720}, /* International Date Line East */
};
/* returns: