[Sumover-dev] [svn commit] r3801 - common/trunk/src
sumover-dev at cs.ucl.ac.uk
sumover-dev at cs.ucl.ac.uk
Thu Aug 31 11:44:16 BST 2006
Author: piers
Date: Thu Aug 31 11:43:54 2006
New Revision: 3801
Modified:
common/trunk/src/mbus.c
Log:
Fixed MBUS seqnum size - introduced wrapping at 999999 - since a number of pieces of code
assume that the seqnum is never longer than 6 digits. This was a problem when the mbus was
used for long periods of time - leading to memroy errors.
Modified: common/trunk/src/mbus.c
==============================================================================
--- common/trunk/src/mbus.c (original)
+++ common/trunk/src/mbus.c Thu Aug 31 11:43:54 2006
@@ -428,7 +428,8 @@
gettimeofday(&curr_time, NULL);
if (curr_time.tv_sec - m->last_heartbeat.tv_sec >= interval) {
- mb_header(++m->seqnum, curr_time, 'U', m->addr, "()", -1);
+ m->seqnum=(++m->seqnum)%999999;
+ mb_header(m->seqnum, curr_time, 'U', m->addr, "()", -1);
mb_add_command("mbus.hello", "");
mb_send(m);
@@ -696,7 +697,8 @@
curr->dest = xstrdup(dest);
curr->retransmit_count = 0;
curr->message_size = alen + 60 + strlen(dest) + strlen(m->addr);
- curr->seqnum = ++m->seqnum;
+ m->seqnum = (++m->seqnum)%999999;
+ curr->seqnum = m->seqnum;
curr->reliable = reliable;
curr->complete = FALSE;
curr->num_cmds = 1;
@@ -906,7 +908,8 @@
sprintf(newseq, "(%6d)", seq); /* size allocated in mb_header */
gettimeofday(&t, NULL);
- mb_header(++m->seqnum, t, 'U', m->addr, newsrc, seq);
+ m->seqnum=(++m->seqnum)%999999;
+ mb_header(m->seqnum, t, 'U', m->addr, newsrc, seq);
mb_send(m);
/* Record sequence number of last reliable message from each source.
More information about the Sumover-dev
mailing list