summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2012-09-29 00:33:13 +0200
committerMatthias Schiffer <mschiffer@universe-factory.net>2012-09-29 00:33:13 +0200
commit1a8f3c7cef8e1fbd812cf1c29b5cf8c0ac641bee (patch)
tree0e1fb4cc2ed6669b3b30307c84f3853bced3e8f7
parent40cd665392ef400eaf9b815c22b46874d83c629d (diff)
downloadffd-1a8f3c7cef8e1fbd812cf1c29b5cf8c0ac641bee.tar
ffd-1a8f3c7cef8e1fbd812cf1c29b5cf8c0ac641bee.zip
Minor fixups for neighbour handling
-rw-r--r--ffd/ffd.c16
-rw-r--r--ffd/packet.h2
-rw-r--r--ffd/tlv_types.h2
3 files changed, 10 insertions, 10 deletions
diff --git a/ffd/ffd.c b/ffd/ffd.c
index 02e2df2..807a59a 100644
--- a/ffd/ffd.c
+++ b/ffd/ffd.c
@@ -312,26 +312,26 @@ static void handle_tlv_hello(const ffd_tlv_hello_t *tlv_hello, size_t len, const
uint16_t seqno = ntohs(tlv_hello->seqno);
if (neigh->last_hello.tv_sec) {
- int16_t seqdiff = seqno - neigh->last_seqno;
- if (seqdiff <= 0) {
- fprintf(stderr, "debug: seqno already seen, ignorin.\n");
- return;
- }
-
int timediff = timespec_diff(&now, &neigh->last_hello)/10;
uint16_t seqexp = neigh->last_seqno + (timediff - neigh->hello_interval/2)/neigh->hello_interval;
/* cast to int16_t to ensure correct handling of seqno wrapping */
if (abs((int16_t)(seqno - seqexp)) > 16) {
- fprintf(stderr, "info: neighbor was reset.\n");
+ fprintf(stderr, "info: neighbour was reset.\n");
neigh->hello_log = 0;
}
else {
+ int16_t seqdiff = seqno - neigh->last_seqno;
+ if (seqdiff <= 0) {
+ fprintf(stderr, "debug: seqno already seen, ignoring.\n");
+ return;
+ }
+
neigh->hello_log <<= seqdiff;
}
}
else {
- fprintf(stderr, "info: received hello from new neighbor.\n");
+ fprintf(stderr, "info: received hello from new neighbour.\n");
}
neigh->hello_log |= 1;
diff --git a/ffd/packet.h b/ffd/packet.h
index a44824a..a21cc67 100644
--- a/ffd/packet.h
+++ b/ffd/packet.h
@@ -39,7 +39,7 @@
struct __attribute__((packed)) _ffd_packet_t {
uint16_t version_magic;
uint16_t len;
- uint8_t tlv[0];
+ uint8_t tlv[];
};
diff --git a/ffd/tlv_types.h b/ffd/tlv_types.h
index 221240e..dcb44b4 100644
--- a/ffd/tlv_types.h
+++ b/ffd/tlv_types.h
@@ -41,7 +41,7 @@ typedef struct __attribute__((packed)) _ffd_tlv_ihu_t {
uint8_t reserved;
uint16_t rxcost;
uint16_t interval;
- uint8_t address[0];
+ uint8_t address[];
} ffd_tlv_ihu_t;
#endif /* _FFD_TLV_TYPES_H_ */