chiark / gitweb /
make-secnet-sites: Tainted: Fix a lot of bad return values
[secnet.git] / secnet.h
index c6e8f4966164762c4dd3d0a918f5e4c5308cefc8..4a42b43c9fbdac105ad92d5ed0ddf85a66330d7e 100644 (file)
--- a/secnet.h
+++ b/secnet.h
@@ -27,6 +27,8 @@
 #include <stdlib.h>
 #include <stdarg.h>
 #include <stdio.h>
+#include <stdint.h>
+#include <inttypes.h>
 #include <string.h>
 #include <assert.h>
 #include <fcntl.h>
 #define MAX_PEER_ADDRS 5
 /* send at most this many copies; honour at most that many addresses */
 
+#define MAX_NAK_MSG 80
+
 struct hash_if;
 struct comm_if;
 struct comm_addr;
+struct priomsg;
 
 typedef char *string_t;
 typedef const char *cstring_t;
@@ -379,8 +384,8 @@ extern init_module log_module;
 struct buffer_if;
 
 struct alg_msg_data {
-    uint8_t *sigstart;
-    int32_t siglen;
+    uint8_t *start;
+    int32_t len;
 };
 
 /* PURE closure requires no interface */
@@ -462,10 +467,18 @@ typedef struct comm_clientinfo *comm_clientinfo_fn(void *state, dict_t*,
  * The semantics depend on the dict and defined by the comm, and
  * should be documented in README. */
 
+enum {
+    comm_notify_whynot_general,
+    comm_notify_whynot_unpick,
+    comm_notify_whynot_name_local,
+    comm_notify_whynot_name_remote,
+};
+
 /* Return True if the packet was processed, and shouldn't be passed to
    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);
+                             const struct comm_addr *source,
+                             struct priomsg *whynot);
 typedef void comm_request_notify_fn(void *commst, void *nst,
                                    comm_notify_fn *fn);
 typedef void comm_release_notify_fn(void *commst, void *nst,
@@ -659,7 +672,6 @@ struct hash_if {
 struct buffer_if {
     bool_t free;
     cstring_t owner; /* Set to constant string */
-    uint32_t flags; /* How paranoid should we be? */
     struct cloc loc; /* Where we were defined */
     uint8_t *base;
     uint8_t *start;