#include "lib/socket.h"
#include "lib/lists.h"
#include "lib/timer.h"
+#include "lib/checksum.h"
#include "ospf.h"
DBG(ifa->iface->name);
DBG("\n");
break;
+ case OSPF_IS_PTP:
+ case OSPF_IS_DROTHER:
+ case OSPF_IS_BACKUP:
+ case OSPF_IS_DR:
+ DBG("OSPF, RX, Unimplemented state.\n");
+ break;
default:
die("%s: Iface %s in unknown state?",p->name, ifa->iface->name);
break;
return(1);
}
+ if(!ipsum_verify(ps, 16,(void *)ps+sizeof(struct ospf_packet),
+ ntohs(ps->length)-sizeof(struct ospf_packet), NULL))
+ {
+ log("%s: Bad packet received: bad checksum", p->name);
+ log("%s: Discarding",p->name);
+ return(1);
+ }
+
/* FIXME: Count checksum */
/* FIXME: Do authetification */