Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Fix issue #157 relating to daylight savings time.

  • Loading branch information...
commit 3376b7295e6903d7fb28ba97de5cd72688719fb7 1 parent c6c2b31
Magnus Klaar authored
Showing with 14 additions and 1 deletion.
  1. +14 −1 src/cowboy_clock.erl
View
15 src/cowboy_clock.erl
@@ -64,7 +64,20 @@ rfc2109(LocalTime) ->
{{YYYY,MM,DD},{Hour,Min,Sec}} =
case calendar:local_time_to_universal_time_dst(LocalTime) of
[Gmt] -> Gmt;
- [_,Gmt] -> Gmt
+ [_,Gmt] -> Gmt;
+ [] ->
+ %% The localtime generated by cowboy_cookies may fall within
+ %% the hour that is skipped by daylight savings time. If this
+ %% is such a localtime, increment the localtime with one hour
+ %% and try again, if this succeeds, subtracting the max_age
+ %% from the resulting universaltime and converting to a local
+ %% time will yield the original localtime.
+ {Date, {Hour1, Min1, Sec1}} = LocalTime,
+ LocalTime2 = {Date, {Hour1 + 1, Min1, Sec1}},
+ case calendar:local_time_to_universal_time_dst(LocalTime2) of
+ [Gmt] -> Gmt;
+ [_,Gmt] -> Gmt
+ end
end,
Wday = calendar:day_of_the_week({YYYY,MM,DD}),
DayBin = pad_int(DD),
Please sign in to comment.
Something went wrong with that request. Please try again.