From 1a8f3c7cef8e1fbd812cf1c29b5cf8c0ac641bee Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Sat, 29 Sep 2012 00:33:13 +0200 Subject: Minor fixups for neighbour handling --- ffd/ffd.c | 16 ++++++++-------- ffd/packet.h | 2 +- ffd/tlv_types.h | 2 +- 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_ */ -- cgit v1.2.3