X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=secnet.git;a=blobdiff_plain;f=util.c;fp=util.c;h=8c23485c059581cbb2aef2c1d8c40628dbaeecaa;hp=24dd9a33ebfb375ea3047425e83b8c8bc6b376c2;hb=3abd18e85781e00e2b7fc641f29c99e130238abf;hpb=779837e133a4740798015a1d7de6fbf6b4b1720f diff --git a/util.c b/util.c index 24dd9a3..8c23485 100644 --- 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; +}