|
@@ -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),
|