Ver Fonte

pr-poll-loop: Return error code if PR_Poll fails

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Jan Friesse há 5 anos atrás
pai
commit
c1910888ed
3 ficheiros alterados com 8 adições e 0 exclusões
  1. 3 0
      qdevices/corosync-qnetd.c
  2. 4 0
      qdevices/pr-poll-loop.c
  3. 1 0
      qdevices/pr-poll-loop.h

+ 3 - 0
qdevices/corosync-qnetd.c

@@ -468,6 +468,9 @@ main(int argc, char * const argv[])
 	if (poll_res == -2) {
 	if (poll_res == -2) {
 		log(LOG_CRIT, "pr_poll_loop_exec returned -2 - internal error");
 		log(LOG_CRIT, "pr_poll_loop_exec returned -2 - internal error");
 		return (EXIT_FAILURE);
 		return (EXIT_FAILURE);
+	} else if (poll_res == -3) {
+		log_nss(LOG_CRIT, "pr_poll_loop_exec returned -3 - PR_Poll error");
+		return (EXIT_FAILURE);
 	}
 	}
 
 
 	/*
 	/*

+ 4 - 0
qdevices/pr-poll-loop.c

@@ -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);
 	timer_list_expire(&poll_loop->tlist);
 
 
 	return (0);
 	return (0);

+ 1 - 0
qdevices/pr-poll-loop.h

@@ -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
  *  0 - No error and all callbacks returned 0
  * -1 - Either set_events returned -2 or some other callbacks returned -1
  * -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)
  * -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);
 extern int			 pr_poll_loop_exec(struct pr_poll_loop *poll_loop);