- if ( $Conf{BlackoutHourBegin} <= $currHours
- && $currHours <= $Conf{BlackoutHourEnd}
- && grep($_ == $wday, @{$Conf{BlackoutWeekDays}}) ) {
+ my $blackout;
+ #
+ # Allow blackout to span midnight (specified by BlackoutHourBegin
+ # being greater than BlackoutHourEnd)
+ #
+ if ( $Conf{BlackoutHourBegin} > $Conf{BlackoutHourEnd} ) {
+ $blackout = $Conf{BlackoutHourBegin} <= $currHours
+ || $currHours <= $Conf{BlackoutHourEnd};
+ if ( $currHours <= $Conf{BlackoutHourEnd} ) {
+ #
+ # This is after midnight, so decrement the weekday for the
+ # weekday check (eg: Monday 11pm-1am means Monday 2300 to
+ # Tuesday 0100, not Monday 2300-2400 plus Monday 0000-0100).
+ #
+ $wday--;
+ $wday += 7 if ( $wday < 0 );
+ }
+ } else {
+ $blackout = $Conf{BlackoutHourBegin} <= $currHours
+ && $currHours <= $Conf{BlackoutHourEnd};
+ }
+ if ( $blackout && grep($_ == $wday, @{$Conf{BlackoutWeekDays}}) ) {