From ef6f26b417060f9ac6c26224469b909a0c3aa933 Mon Sep 17 00:00:00 2001 From: Ondrej Filip Date: Tue, 30 May 2000 15:01:51 +0000 Subject: Bug in lsa comparision. --- proto/ospf/lsalib.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) (limited to 'proto') diff --git a/proto/ospf/lsalib.c b/proto/ospf/lsalib.c index 020ca62..ac56a10 100644 --- a/proto/ospf/lsalib.c +++ b/proto/ospf/lsalib.c @@ -340,17 +340,19 @@ int lsa_comp(struct ospf_lsa_header *l1, struct ospf_lsa_header *l2) /* Return codes from point of view of l1 */ { - if(l1->snsn) return CMP_NEWER; - if(l1->sn==l2->sn) - { - if(l1->checksum=!l2->checksum) - return l1->checksumchecksum ? CMP_OLDER : CMP_NEWER; - if(l1->age==LSA_MAXAGE) return CMP_NEWER; - if(l2->age==LSA_MAXAGE) return CMP_OLDER; - if(abs(l1->age-l2->age)>LSA_MAXAGEDIFF) - return l1->ageage ? CMP_NEWER : CMP_OLDER; - } - return CMP_SAME; + if(l1->sn>l2->sn) return CMP_NEWER; + if(l1->snsn) return CMP_OLDER; + + if(l1->checksum=!l2->checksum) + return l1->checksumchecksum ? CMP_OLDER : CMP_NEWER; + + if((l1->age==LSA_MAXAGE)&&(l2->age!=LSA_MAXAGE)) return CMP_NEWER; + if((l2->age==LSA_MAXAGE)&&(l1->age!=LSA_MAXAGE)) return CMP_OLDER; + + if(abs(l1->age-l2->age)>LSA_MAXAGEDIFF) + return l1->ageage ? CMP_NEWER : CMP_OLDER; + + return CMP_SAME; } /* LSA can be temporarrily, but body must be mb_alloced. */ -- cgit v1.2.3