Similar the dispatch function in libevent.
__dso_public int sudo_ev_del_v1(struct sudo_event_base *head, struct sudo_event *ev);
#define sudo_ev_del(_a, _b) sudo_ev_del_v1((_a), (_b))
+/* Dispatch events, returns SUDO_CB_SUCCESS, SUDO_CB_BREAK or SUDO_CB_ERROR */
+__dso_public int sudo_ev_dispatch_v1(struct sudo_event_base *head);
+#define sudo_ev_dispatch(_a) sudo_ev_dispatch_v1((_a))
+
/* Main event loop, returns SUDO_CB_SUCCESS, SUDO_CB_BREAK or SUDO_CB_ERROR */
__dso_public int sudo_ev_loop_v1(struct sudo_event_base *head, int flags);
#define sudo_ev_loop(_a, _b) sudo_ev_loop_v1((_a), (_b))
debug_return_int(0);
}
+int
+sudo_ev_dispatch_v1(struct sudo_event_base *base)
+{
+ return sudo_ev_loop_v1(base, 0);
+}
+
/*
* Run main event loop.
* Returns 0 on success, 1 if no events registered and -1 on error
sudo_conf_clear_paths_v1
sudo_conf_debug_files_v1
sudo_conf_debugging_v1
+sudo_conf_devsearch_path_v1
sudo_conf_disable_coredump_v1
sudo_conf_group_source_v1
sudo_conf_max_groups_v1
sudo_conf_noexec_path_v1
-sudo_conf_devsearch_path_v1
sudo_conf_plugin_dir_path_v1
sudo_conf_plugins_v1
sudo_conf_probe_interfaces_v1
sudo_debug_deregister_v1
sudo_debug_enter_v1
sudo_debug_execve2_v1
-sudo_debug_exit_v1
sudo_debug_exit_bool_v1
sudo_debug_exit_id_t_v1
sudo_debug_exit_int_v1
sudo_debug_exit_ptr_v1
sudo_debug_exit_size_t_v1
sudo_debug_exit_ssize_t_v1
-sudo_debug_exit_str_v1
sudo_debug_exit_str_masked_v1
+sudo_debug_exit_str_v1
sudo_debug_exit_time_t_v1
+sudo_debug_exit_v1
sudo_debug_fork_v1
sudo_debug_get_active_instance_v1
sudo_debug_get_fds_v1
sudo_ev_base_free_v1
sudo_ev_base_setdef_v1
sudo_ev_del_v1
+sudo_ev_dispatch_v1
sudo_ev_free_v1
sudo_ev_get_timeleft_v1
sudo_ev_got_break_v1
sudo_fatal_callback_register_v1
sudo_fatal_nodebug_v1
sudo_fatalx_nodebug_v1
-sudo_ttyname_dev_v1
sudo_get_ttysize_v1
sudo_gethostname_v1
sudo_gettime_mono_v1
sudo_term_noecho_v1
sudo_term_raw_v1
sudo_term_restore_v1
+sudo_ttyname_dev_v1
sudo_vfatal_nodebug_v1
sudo_vfatalx_nodebug_v1
sudo_vwarn_nodebug_v1
/* Read back terminal size response */
if (sudo_ev_add(evbase, gc.ev, &gc.timeout, false) == -1)
sudo_fatal(U_("unable to add event to queue"));
- sudo_ev_loop(evbase, 0);
+ sudo_ev_dispatch(evbase);
if (gc.state == GOTSIZE) {
sudo_debug_printf(SUDO_DEBUG_INFO|SUDO_DEBUG_LINENO,
}
/* Run event loop. */
- sudo_ev_loop(closure->evbase, 0);
+ sudo_ev_dispatch(closure->evbase);
if (sudo_ev_got_break(closure->evbase))
ret = 1;
*/
cstat.type = CMD_INVALID;
cstat.val = 0;
- (void) sudo_ev_loop(mc.evbase, 0);
+ (void) sudo_ev_dispatch(mc.evbase);
if (mc.cmnd_pid != -1) {
pid_t pid;
* Non-pty event loop.
* Wait for command to exit, handles signals and the error pipe.
*/
- if (sudo_ev_loop(ec.evbase, 0) == -1)
+ if (sudo_ev_dispatch(ec.evbase) == -1)
sudo_warn(U_("error in event loop"));
if (sudo_ev_got_break(ec.evbase)) {
/* error from callback */
* and pass output from master to stdout and IO plugin.
*/
add_io_events(ec.evbase);
- if (sudo_ev_loop(ec.evbase, 0) == -1)
+ if (sudo_ev_dispatch(ec.evbase) == -1)
sudo_warn(U_("error in event loop"));
if (sudo_ev_got_break(ec.evbase)) {
/* error from callback or monitor died */
}
}
}
- (void) sudo_ev_loop(evbase, 0);
+ (void) sudo_ev_dispatch(evbase);
/* We should now have flushed all write buffers. */
SLIST_FOREACH(iob, &iobufs, entries) {