diff --git a/include/restart.h b/include/restart.h index b088eff6..aaa4911c 100644 --- a/include/restart.h +++ b/include/restart.h @@ -27,7 +27,7 @@ #ifndef INCLUDED_restart_h #define INCLUDED_restart_h -void restart(const char *); -void server_reboot(void); +void restart(const char *) __attribute__((noreturn)); +void server_reboot(void) __attribute__((noreturn)); #endif diff --git a/libratbox/include/ratbox_lib.h b/libratbox/include/ratbox_lib.h index ac91f476..d05038f5 100644 --- a/libratbox/include/ratbox_lib.h +++ b/libratbox/include/ratbox_lib.h @@ -179,14 +179,14 @@ typedef void die_cb(const char *buffer); char *rb_ctime(const time_t, char *, size_t); char *rb_date(const time_t, char *, size_t); void rb_lib_log(const char *, ...); -void rb_lib_restart(const char *, ...); +void rb_lib_restart(const char *, ...) __attribute__((noreturn)); void rb_lib_die(const char *, ...); void rb_set_time(void); const char *rb_lib_version(void); void rb_lib_init(log_cb * xilog, restart_cb * irestart, die_cb * idie, int closeall, int maxfds, size_t dh_size, size_t fd_heap_size); -void rb_lib_loop(long delay); +void rb_lib_loop(long delay) __attribute__((noreturn)); time_t rb_current_time(void); const struct timeval *rb_current_time_tv(void); diff --git a/libratbox/include/rb_memory.h b/libratbox/include/rb_memory.h index d4dd6f0c..256c4b5d 100644 --- a/libratbox/include/rb_memory.h +++ b/libratbox/include/rb_memory.h @@ -34,7 +34,7 @@ #include -void rb_outofmemory(void); +void rb_outofmemory(void) __attribute__((noreturn)); static inline void * rb_malloc(size_t size) diff --git a/modules/m_restart.c b/modules/m_restart.c index e175e9d9..3e7a1de3 100644 --- a/modules/m_restart.c +++ b/modules/m_restart.c @@ -95,6 +95,5 @@ mo_restart(struct Client *client_p, struct Client *source_p, int parc, const cha rb_sprintf(buf, "Server RESTART by %s", get_client_name(source_p, HIDE_IP)); restart(buf); - - return 0; + /* UNREACHABLE */ } diff --git a/src/ircd.c b/src/ircd.c index 146fedac..cda38209 100644 --- a/src/ircd.c +++ b/src/ircd.c @@ -418,7 +418,7 @@ ircd_log_cb(const char *str) ilog(L_MAIN, "libratbox reports: %s", str); } -static void +static void __attribute__((noreturn)) ircd_restart_cb(const char *str) { inotice("libratbox has called the restart callback: %s", str); @@ -730,6 +730,5 @@ main(int argc, char *argv[]) ConfigFileEntry.dpath, getpid()); rb_lib_loop(0); - - return 0; + /* UNREACHABLE */ } diff --git a/ssld/ssld.c b/ssld/ssld.c index 18237ef8..fa222de3 100644 --- a/ssld/ssld.c +++ b/ssld/ssld.c @@ -1257,7 +1257,7 @@ main(int argc, char **argv) if(!ssld_ssl_ok) send_nossl_support(mod_ctl, NULL); rb_lib_loop(0); - return 0; + /* UNREACHABLE */ }