chiark / gitweb /
max_start_pad: calculate globally, not via client graph
[secnet.git] / util.c
diff --git a/util.c b/util.c
index 24dd9a33ebfb375ea3047425e83b8c8bc6b376c2..8c23485c059581cbb2aef2c1d8c40628dbaeecaa 100644 (file)
--- a/util.c
+++ b/util.c
@@ -387,7 +387,7 @@ void send_nak(const struct comm_addr *dest, uint32_t our_index,
              uint32_t their_index, uint32_t msgtype,
              struct buffer_if *buf, const char *logwhy)
 {
-    buffer_init(buf,dest->comm->min_start_pad);
+    buffer_init(buf,calculate_max_start_pad());
     buf_append_uint32(buf,their_index);
     buf_append_uint32(buf,our_index);
     buf_append_uint32(buf,LABEL_NAK);
@@ -419,3 +419,19 @@ void util_module(dict_t *dict)
 {
     add_closure(dict,"sysbuffer",buffer_apply);
 }
+
+void update_max_start_pad(int32_t *our_module_global, int32_t our_instance)
+{
+    if (*our_module_global < our_instance)
+       *our_module_global=our_instance;
+}
+
+int32_t        transform_max_start_pad, comm_max_start_pad;
+
+int32_t calculate_max_start_pad(void)
+{
+    return
+       site_max_start_pad +
+       transform_max_start_pad +
+       comm_max_start_pad;
+}