Switch to side-by-side view

--- a/src/utils/execmd.cpp
+++ b/src/utils/execmd.cpp
@@ -907,8 +907,22 @@
     }
     const int BS = 1024;
     char buf[BS];
-    int n = con->getline(buf, BS);
+    int timeosecs = m->m_timeoutMs / 1000;
+    if (timeosecs == 0)
+        timeosecs = 1;
+
+    // Note that we only go once through here, except in case of
+    // timeout, which is why I think that the goto is more expressive
+    // than a loop
+again:
+    int n = con->getline(buf, BS, timeosecs);
     if (n < 0) {
+        if (con->timedout()) {
+            LOGDEB(("ExecCmd::getline: timeout\n"));
+            if (m->m_advise)
+                m->m_advise->newData(0);
+            goto again;
+        }
 	LOGERR(("ExecCmd::getline: error\n"));
     } else if (n > 0) {
 	data.append(buf, n);