]> granicus.if.org Git - icinga2/commitdiff
Fix default values for notification filters.
authorGunnar Beutner <gunnar.beutner@netways.de>
Tue, 8 Apr 2014 21:33:25 +0000 (23:33 +0200)
committerGunnar Beutner <gunnar.beutner@netways.de>
Tue, 8 Apr 2014 21:33:25 +0000 (23:33 +0200)
Refs #5979

lib/icinga/notification.cpp
lib/icinga/user.cpp

index 34f8be0cac86311a5cdbec03dae87c2dc19bb400..665d2e40d48a6bfd1ebea022c2f2e20f787f472b 100644 (file)
@@ -78,8 +78,8 @@ void Notification::StaticInitialize(void)
 
 void Notification::OnConfigLoaded(void)
 {
-       SetNotificationTypeFilter(FilterArrayToInt(GetNotificationTypeFilterRaw(), 0));
-       SetNotificationStateFilter(FilterArrayToInt(GetNotificationStateFilterRaw(), 0));
+       SetNotificationTypeFilter(FilterArrayToInt(GetNotificationTypeFilterRaw(), ~0));
+       SetNotificationStateFilter(FilterArrayToInt(GetNotificationStateFilterRaw(), ~0));
 
        GetCheckable()->AddNotification(GetSelf());
 }
@@ -252,13 +252,9 @@ void Notification::BeginExecuteNotification(NotificationType type, const CheckRe
                        return;
                }
 
-               Service::Ptr service = dynamic_pointer_cast<Service>(checkable);
                Host::Ptr host;
-
-               if (service)
-                       host = service->GetHost();
-               else
-                       host = static_pointer_cast<Host>(checkable);
+               Service::Ptr service;
+               tie(host, service) = GetHostService(checkable);
 
                unsigned long fstate;
 
@@ -333,13 +329,9 @@ bool Notification::CheckNotificationUserFilters(NotificationType type, const Use
                }
 
                Checkable::Ptr checkable = GetCheckable();
-               Service::Ptr service = dynamic_pointer_cast<Service>(checkable);
                Host::Ptr host;
-
-               if (service)
-                               host = service->GetHost();
-               else
-                               host = static_pointer_cast<Host>(checkable);
+               Service::Ptr service;
+               tie(host, service) = GetHostService(checkable);
 
                unsigned long fstate;
 
@@ -422,7 +414,7 @@ int icinga::FilterArrayToInt(const Array::Ptr& typeFilters, int defaultValue)
 {
        Value resultTypeFilter;
 
-       if (!typeFilters || typeFilters->GetLength() == 0)
+       if (!typeFilters)
                return defaultValue;
 
        resultTypeFilter = 0;
index 4231a02e06b6ad93bd1762c4585f9884c7acd37e..5e2f8497ca6bc2a53fc843a6c40b651845214ec0 100644 (file)
@@ -33,8 +33,8 @@ REGISTER_SCRIPTFUNCTION(ValidateUserFilters, &User::ValidateFilters);
 
 void User::OnConfigLoaded(void)
 {
-       SetNotificationTypeFilter(FilterArrayToInt(GetNotificationTypeFilterRaw(), 0));
-       SetNotificationStateFilter(FilterArrayToInt(GetNotificationStateFilterRaw(), 0));
+       SetNotificationTypeFilter(FilterArrayToInt(GetNotificationTypeFilterRaw(), ~0));
+       SetNotificationStateFilter(FilterArrayToInt(GetNotificationStateFilterRaw(), ~0));
 
        Array::Ptr groups = GetGroups();