0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-12-22 17:51:53 +00:00

Bug fix in checksum calculation.

This commit is contained in:
Ondrej Filip 1999-08-09 18:34:08 +00:00
parent b1693b8f74
commit a4c2ee717c

View File

@ -496,10 +496,7 @@ ospf_tx_hook(sock *sk)
ifa=(struct ospf_iface *)(sk->data); ifa=(struct ospf_iface *)(sk->data);
p=(struct proto *)(ifa->proto); p=(struct proto *)(ifa->proto);
DBG(p->name); DBG("%s: TX_Hook called on interface %s\n", p->name,sk->iface->name);
DBG(": TX_Hook called on interface ");
DBG(sk->iface->name);
DBG(".\n");
} }
void void
@ -511,10 +508,7 @@ ospf_err_hook(sock *sk, int err)
ifa=(struct ospf_iface *)(sk->data); ifa=(struct ospf_iface *)(sk->data);
p=(struct proto *)(ifa->proto); p=(struct proto *)(ifa->proto);
DBG(p->name); DBG("%s: Err_Hook called on interface %s\n", p->name,sk->iface->name);
DBG(": Err_Hook called on interface ");
DBG(sk->iface->name);
DBG(".\n");
} }
/* This will change ! */ /* This will change ! */
@ -606,6 +600,7 @@ fill_ospf_pkt_hdr(struct ospf_iface *ifa, void *buf, u8 h_type)
pkt->routerid=htonl(p->cf->global->router_id); pkt->routerid=htonl(p->cf->global->router_id);
pkt->areaid=htonl(ifa->area); pkt->areaid=htonl(ifa->area);
pkt->autype=htons(ifa->autype); pkt->autype=htons(ifa->autype);
pkt->checksum=0;
} }
void void
@ -656,8 +651,9 @@ hello_timer_hook(timer *timer)
op->length=ntohs(length); op->length=ntohs(length);
/* Do authentification */ /* FIXME Do authentification */
/* Count checksum */
op->checksum=ipsum_calculate(op,sizeof(struct ospf_packet)-8, op->checksum=ipsum_calculate(op,sizeof(struct ospf_packet)-8,
&(pkt->netmask),length-sizeof(struct ospf_packet),NULL); &(pkt->netmask),length-sizeof(struct ospf_packet),NULL);