]> git.proxmox.com Git - mirror_corosync-qdevice.git/commitdiff
pr-poll-loop: Return error code if PR_Poll fails
authorJan Friesse <jfriesse@redhat.com>
Tue, 25 Aug 2020 12:30:49 +0000 (14:30 +0200)
committerJan Friesse <jfriesse@redhat.com>
Tue, 25 Aug 2020 16:01:17 +0000 (18:01 +0200)
Signed-off-by: Jan Friesse <jfriesse@redhat.com>
qdevices/corosync-qnetd.c
qdevices/pr-poll-loop.c
qdevices/pr-poll-loop.h

index 8dc5022b1203b8425c4cdabdd40a028f7c0ee6f5..c5c6b09dde04983c3ad12275fa966d21d378c1ad 100644 (file)
@@ -468,6 +468,9 @@ main(int argc, char * const argv[])
        if (poll_res == -2) {
                log(LOG_CRIT, "pr_poll_loop_exec returned -2 - internal error");
                return (EXIT_FAILURE);
+       } else if (poll_res == -3) {
+               log_nss(LOG_CRIT, "pr_poll_loop_exec returned -3 - PR_Poll error");
+               return (EXIT_FAILURE);
        }
 
        /*
index d92cf5264429e14d3aa287532519fb4e5b0adfed..91d24f7ecb9a3a840bbc1040a17cae3b03577c09 100644 (file)
@@ -484,6 +484,10 @@ pr_poll_loop_exec(struct pr_poll_loop *poll_loop)
                }
        }
 
+       if (poll_res == -1) {
+               return (-3);
+       }
+
        timer_list_expire(&poll_loop->tlist);
 
        return (0);
index 22ab70af63293dd07ca446beb80178da2a55eb8a..16e7ec6f2bb8ada18279c632d77526022bd9917a 100644 (file)
@@ -125,6 +125,7 @@ extern int                   pr_poll_loop_del_prfd(struct pr_poll_loop *poll_loop,
  *  0 - No error and all callbacks returned 0
  * -1 - Either set_events returned -2 or some other callbacks returned -1
  * -2 - Other error (events is not POLLIN|POLLOUT, or set_events cb was not 0, -1 or -2)
+ * -3 - PR_Poll returned -1
  */
 extern int                      pr_poll_loop_exec(struct pr_poll_loop *poll_loop);