X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=secnet.git;a=blobdiff_plain;f=secnet.h;h=647c94082b7b2d0afded05e40fa9cb7f6e79c219;hp=29cbac79c6fdd3247c2d982da9db89e04847c829;hb=30834eab2fc4a8d2063025948dc575682844ddbc;hpb=09aecaa2e38014fcb27d6ca146b5de9bacd0986d diff --git a/secnet.h b/secnet.h index 29cbac7..647c940 100644 --- a/secnet.h +++ b/secnet.h @@ -344,15 +344,22 @@ struct comm_if { comm_addr_to_string_fn *addr_to_string; }; +static inline const char *comm_addr_to_string(const struct comm_addr *ca) +{ + return ca->comm->addr_to_string(ca->comm->st, ca); +} + /* LOG interface */ +#define LOG_MESSAGE_BUFLEN 1023 + typedef void log_msg_fn(void *st, int class, const char *message, ...); typedef void log_vmsg_fn(void *st, int class, const char *message, va_list args); struct log_if { void *st; - log_msg_fn *logfn; /* Do not call these directly - you don't get */ log_vmsg_fn *vlogfn; /* printf format checking. Use [v]slilog instead */ + char buff[LOG_MESSAGE_BUFLEN+1]; }; /* (convenience functions, defined in util.c) */ extern void slilog(struct log_if *lf, int class, const char *message, ...) @@ -360,6 +367,13 @@ FORMAT(printf,3,4); extern void vslilog(struct log_if *lf, int class, const char *message, va_list) FORMAT(printf,3,0); +/* Versions which take (parts of) (multiple) messages, using \n to + * distinguish one message from another. */ +extern void slilog_part(struct log_if *lf, int class, const char *message, ...) +FORMAT(printf,3,4); +extern void vslilog_part(struct log_if *lf, int class, const char *message, + va_list) FORMAT(printf,3,0); + /* SITE interface */ /* Pretty much a placeholder; allows starting and stopping of processing,