X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/tripe/blobdiff_plain/dd68bf2eb2b421c06ed12a773d8bce2ff740d07b..f241e36cca984bac62d30783bca3b36808070312:/server/tripe.h diff --git a/server/tripe.h b/server/tripe.h index d1093f7b..2ffe978f 100644 --- a/server/tripe.h +++ b/server/tripe.h @@ -226,6 +226,8 @@ typedef struct keyset { #define KSERR_REGEN -1 /* Regenerate keys */ #define KSERR_NOKEYS -2 /* No keys left */ #define KSERR_DECRYPT -3 /* Unable to decrypt message */ +#define KSERR_SEQ -4 /* Incorrect sequence number */ +#define KSERR_MALFORMED -5 /* Input ciphertext is broken */ /* --- Key exchange --- * * @@ -338,7 +340,9 @@ typedef struct peerspec { unsigned long t_ka; /* Keep alive interval */ addr sa; /* Socket address to speak to */ size_t sasz; /* Socket address size */ - unsigned kxf; /* Key exchange flags to set */ + unsigned f; /* Flags for the peer */ +#define PSF_KXMASK 255u /* Key-exchange flags to set */ +#define PSF_MOBILE 256u /* Address may change rapidly */ } peerspec; typedef struct peer_byname { @@ -857,6 +861,19 @@ extern int c_check(buf */*b*/); extern void a_vformat(dstr */*d*/, const char */*fmt*/, va_list /*ap*/); +/* --- @a_format@ --- * + * + * Arguments: @dstr *d@ = where to leave the formatted message + * @const char *fmt@ = pointer to format string + * + * Returns: --- + * + * Use: Writes a tokenized message into a string, for later + * presentation. + */ + +extern void a_format(dstr */*d*/, const char */*fmt*/, ...); + /* --- @a_warn@ --- * * * Arguments: @const char *fmt@ = pointer to format string @@ -933,13 +950,15 @@ extern void a_daemon(void); * Arguments: @const char *sock@ = socket name to create * @uid_t u@ = user to own the socket * @gid_t g@ = group to own the socket + * @mode_t m@ = permissions to set on the socket * * Returns: --- * * Use: Creates the admin listening socket. */ -extern void a_init(const char */*sock*/, uid_t /*u*/, gid_t /*g*/); +extern void a_init(const char */*sock*/, + uid_t /*u*/, gid_t /*g*/, mode_t /*m*/); /*----- Mapping with addresses as keys ------------------------------------*/ @@ -1306,7 +1325,7 @@ extern void p_destroy(peer */*p*/); #define FOREACH_PEER(p, stuff) do { \ peer_iter i_; \ peer *p; \ - for (p_mkiter(&i_); (p = p_next(&i_)) != 0; ) do stuff while (0); \ + for (p_mkiter(&i_); (p = p_next(&i_)) != 0; ) stuff \ } while (0) /* --- @p_mkiter@ --- *