netd: refactor do_monitor code

- Remove unreachable code
- Make code more readable in general

Bug: 27646390
Change-Id: I8499fd282b4ae95eade66a2dbd4a74a815b3481e
diff --git a/server/ndc.c b/server/ndc.c
index d147bae..00fb77c 100644
--- a/server/ndc.c
+++ b/server/ndc.c
@@ -131,48 +131,51 @@
         FD_ZERO(&read_fds);
         FD_SET(sock, &read_fds);
 
-        if ((rc = select(sock +1, &read_fds, NULL, NULL, &to)) < 0) {
+        rc = TEMP_FAILURE_RETRY(select(sock +1, &read_fds, NULL, NULL, &to));
+        if (rc < 0) {
             int res = errno;
-            fprintf(stderr, "Error in select (%s)\n", strerror(errno));
+            fprintf(stderr, "Error in select (%s)\n", strerror(res));
             free(buffer);
             return res;
-        } else if (!rc) {
+        }
+        if (rc == 0) {
             continue;
-            fprintf(stderr, "[TIMEOUT]\n");
-            return ETIMEDOUT;
-        } else if (FD_ISSET(sock, &read_fds)) {
-            memset(buffer, 0, 4096);
-            if ((rc = read(sock, buffer, 4096)) <= 0) {
-                int res = errno;
-                if (rc == 0)
-                    fprintf(stderr, "Lost connection to Netd - did it crash?\n");
-                else
-                    fprintf(stderr, "Error reading data (%s)\n", strerror(errno));
-                free(buffer);
-                if (rc == 0)
-                    return ECONNRESET;
-                return res;
-            }
+        }
+        if (!FD_ISSET(sock, &read_fds)) {
+            continue;
+        }
 
-            int offset = 0;
-            int i = 0;
+        memset(buffer, 0, 4096);
+        if ((rc = read(sock, buffer, 4096)) <= 0) {
+            int res = errno;
+            if (rc == 0)
+                fprintf(stderr, "Lost connection to Netd - did it crash?\n");
+            else
+                fprintf(stderr, "Error reading data (%s)\n", strerror(res));
+            free(buffer);
+            if (rc == 0)
+                return ECONNRESET;
+            return res;
+        }
 
-            for (i = 0; i < rc; i++) {
-                if (buffer[i] == '\0') {
-                    int code;
-                    char tmp[4];
+        int offset = 0;
+        int i = 0;
 
-                    strncpy(tmp, buffer + offset, 3);
-                    tmp[3] = '\0';
-                    code = atoi(tmp);
+        for (i = 0; i < rc; i++) {
+            if (buffer[i] == '\0') {
+                int code;
+                char tmp[4];
 
-                    printf("%s\n", buffer + offset);
-                    if (stop_after_cmd) {
-                        if (code >= 200 && code < 600)
-                            return 0;
-                    }
-                    offset = i + 1;
+                strncpy(tmp, buffer + offset, 3);
+                tmp[3] = '\0';
+                code = atoi(tmp);
+
+                printf("%s\n", buffer + offset);
+                if (stop_after_cmd) {
+                    if (code >= 200 && code < 600)
+                        return 0;
                 }
+                offset = i + 1;
             }
         }
     }