]> granicus.if.org Git - icinga2/blobdiff - lib/icinga/legacytimeperiod.cpp
Merge pull request #6727 from Icinga/feature/cluster-config-sync-stage
[icinga2] / lib / icinga / legacytimeperiod.cpp
index eea88e2ca21b90611dfb275186a05262e233b9f3..2ae72e6519ac9984de282c367f95fbc53433b6e4 100644 (file)
@@ -1,21 +1,4 @@
-/******************************************************************************
- * Icinga 2                                                                   *
- * Copyright (C) 2012-2018 Icinga Development Team (https://icinga.com/)      *
- *                                                                            *
- * This program is free software; you can redistribute it and/or              *
- * modify it under the terms of the GNU General Public License                *
- * as published by the Free Software Foundation; either version 2             *
- * of the License, or (at your option) any later version.                     *
- *                                                                            *
- * This program is distributed in the hope that it will be useful,            *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of             *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the              *
- * GNU General Public License for more details.                               *
- *                                                                            *
- * You should have received a copy of the GNU General Public License          *
- * along with this program; if not, write to the Free Software Foundation     *
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.             *
- ******************************************************************************/
+/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */
 
 #include "icinga/legacytimeperiod.hpp"
 #include "base/function.hpp"
@@ -42,7 +25,7 @@ bool LegacyTimePeriod::IsInTimeRange(tm *begin, tm *end, int stride, tm *referen
 
        int daynumber = (tsref - tsbegin) / (24 * 60 * 60);
 
-       if (stride > 1 && daynumber % stride == 0)
+       if (stride > 1 && daynumber % stride > 0)
                return false;
 
        return true;
@@ -359,7 +342,7 @@ void LegacyTimePeriod::ProcessTimeRangeRaw(const String& timerange, tm *referenc
 
        if (begin->tm_hour * 3600 + begin->tm_min * 60 + begin->tm_sec >=
                end->tm_hour * 3600 + end->tm_min * 60 + end->tm_sec)
-               BOOST_THROW_EXCEPTION(std::invalid_argument("Time period segment ends before it begins"));
+               end->tm_hour += 24;
 }
 
 Dictionary::Ptr LegacyTimePeriod::ProcessTimeRange(const String& timestamp, tm *reference)
@@ -408,7 +391,7 @@ Dictionary::Ptr LegacyTimePeriod::FindRunningSegment(const String& daydef, const
                        ProcessTimeRanges(timeranges, &iter, segments);
 
                        Dictionary::Ptr bestSegment;
-                       double bestEnd;
+                       double bestEnd = 0.0;
 
                        ObjectLock olock(segments);
                        for (const Dictionary::Ptr& segment : segments) {