login

<     >

2020-05-01 13:17:45 (UTC-03:00)

Marcel Rodrigues <marcelgmr@gmail.com>

better error checking

diff --git a/isv.c b/isv.c
index c9d65cb..7a399c3 100644
--- a/isv.c
+++ b/isv.c
@@ -92,10 +92,13 @@ load_services(const char *base_dir, int nservices)
         services[i].pid = read_lei32(&stt[12]);
         when = read_beu64(&stt[0]);
         services[i].uptime = time(NULL) + 4611686018427387914ULL - when;
-        fd = open("log/supervise/status", O_RDONLY);
-        read(fd, stt, sizeof stt);
-        close(fd);
-        services[i].log_pid = read_lei32(&stt[12]);
+        if ((fd = open("log/supervise/status", O_RDONLY)) < 0) {
+            services[i].log_pid = 0;
+        } else {
+            read(fd, stt, sizeof stt);
+            close(fd);
+            services[i].log_pid = read_lei32(&stt[12]);
+        }
         services[i].active = !!stat("down", &st);
     }
 }