]> granicus.if.org Git - icinga2/commitdiff
Fix NetString::ReadStringFromStream() EoF case in 'object list' command
authorMichael Friedrich <michael.friedrich@netways.de>
Sun, 15 Feb 2015 13:37:16 +0000 (14:37 +0100)
committerMichael Friedrich <michael.friedrich@netways.de>
Sun, 15 Feb 2015 13:37:16 +0000 (14:37 +0100)
refs #6109

lib/cli/objectlistcommand.cpp

index 3efe16485622dc6c7d941f8231d9d6466673b7d5..8cb346a726f96a407d5994f4b673b595094a91a3 100644 (file)
@@ -83,8 +83,6 @@ int ObjectListCommand::Run(const boost::program_options::variables_map& vm, cons
        unsigned long objects_count = 0;
        std::map<String, int> type_count;
 
-       String message;
-       StreamReadContext src;
        String name_filter, type_filter;
 
        if (vm.count("name"))
@@ -94,7 +92,17 @@ int ObjectListCommand::Run(const boost::program_options::variables_map& vm, cons
 
        bool first = true;
 
-       while (NetString::ReadStringFromStream(sfp, &message, src) == StatusNewItem) {
+       String message;
+       StreamReadContext src;
+       for (;;) {
+               StreamReadStatus srs = NetString::ReadStringFromStream(sfp, &message, src);
+
+               if (srs == StatusEof)
+                       break;
+
+               if (srs != StatusNewItem)
+                       continue;
+
                PrintObject(std::cout, first, message, type_count, name_filter, type_filter);
                objects_count++;
        }