X-Git-Url: https://git.distorted.org.uk/~mdw/secnet/blobdiff_plain/f1393100aa5412f0df5ee363c6bdd42b2465fa59..56c8ed69eff8342f692c427ce3d2cab6fd557001:/secnet.h diff --git a/secnet.h b/secnet.h index 54d84a5..b2f6927 100644 --- a/secnet.h +++ b/secnet.h @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include @@ -58,6 +59,10 @@ extern struct log_if *system_log; /* from process.c */ extern void start_signal_handling(void); +void afterfork(void); +/* Must be called before exec in every child made after + start_signal_handling. Safe to call in earlier children too. */ + /***** CONFIGURATION support *****/ extern bool_t just_check_config; /* If True then we're going to exit after @@ -169,6 +174,7 @@ extern void *safe_realloc_ary(void *p, size_t size, size_t count, const char *message); void setcloexec(int fd); /* cannot fail */ +void setnonblock(int fd); /* cannot fail */ void pipe_cloexec(int fd[2]); /* pipe(), setcloexec() twice; cannot fail */ extern int sys_cmd(const char *file, const char *argc, ...); @@ -378,7 +384,7 @@ struct comm_addr { }; /* Return True if the packet was processed, and shouldn't be passed to - any other potential receivers. */ + any other potential receivers. (buf is freed iff True returned.) */ typedef bool_t comm_notify_fn(void *state, struct buffer_if *buf, const struct comm_addr *source); typedef void comm_request_notify_fn(void *commst, void *nst, @@ -597,6 +603,8 @@ void lg_vperror(struct log_if *lg, const char *desc, struct cloc *loc, void lg_perror(struct log_if *lg, const char *desc, struct cloc *loc, int class, int errnoval, const char *fmt, ...) FORMAT(printf,6,7); +void lg_exitstatus(struct log_if *lg, const char *desc, struct cloc *loc, + int class, int status, const char *progname); /* The cfgfatal() family of functions require messages that end in '\n' */ extern NORETURN(cfgfatal(struct cloc loc, cstring_t facility,