Просмотр исходного кода

device: skip uninteresting messages

Daniele Bartolini 5 лет назад
Родитель
Сommit
82b66af70c
1 измененных файлов с 14 добавлено и 6 удалено
  1. 14 6
      src/device/device.cpp

+ 14 - 6
src/device/device.cpp

@@ -684,14 +684,22 @@ void Device::refresh()
 		rr.error = ReadResult::UNKNOWN;
 		if (wr.error == WriteResult::SUCCESS)
 		{
-			rr = dc.read(&msg_len, 4);
-			if (rr.error == ReadResult::SUCCESS)
+			do
 			{
-				array::resize(msg, msg_len + 1);
-				rr = dc.read(array::begin(msg), msg_len);
-				msg[msg_len] = '\0';
-				dc.close();
+				rr = dc.read(&msg_len, 4);
+				if (rr.error == ReadResult::SUCCESS)
+				{
+					array::resize(msg, msg_len + 1);
+					rr = dc.read(array::begin(msg), msg_len);
+					msg[msg_len] = '\0';
+				}
+
+				if (rr.error != ReadResult::SUCCESS)
+					break;
 			}
+			while (strstr(array::begin(msg), "refresh_list") == NULL);
+
+			dc.close();
 		}
 
 		if (rr.error == ReadResult::SUCCESS)