A couple of OSPF fixes:
o ((flags & IF_CHANGE_UP) == IF_CHANGE_UP) -> (flags & IF_CHANGE_UP) o bcopy -> memcpy (bcopy is unportable) o Ifdeffed out add_tail(&(ifa->sk_list),NODE mcsk) -- the node in socket structure is for internal use by the resource manager only. (Now, the debugging dump of open sockets looks sane :-)).
This commit is contained in:
parent
1ab4dee028
commit
9da4d14340
1 changed files with 6 additions and 4 deletions
|
@ -185,23 +185,25 @@ ospf_if_notify(struct proto *p, unsigned flags, struct iface *new, struct iface
|
||||||
|
|
||||||
DBG(" OSPF: If notify called\n");
|
DBG(" OSPF: If notify called\n");
|
||||||
|
|
||||||
if(((flags & IF_CHANGE_UP)==IF_CHANGE_UP) && is_good_iface(p, new))
|
if((flags & IF_CHANGE_UP) && is_good_iface(p, new))
|
||||||
{
|
{
|
||||||
debug(" OSPF: using interface %s.\n", new->name);
|
debug(" OSPF: using interface %s.\n", new->name);
|
||||||
/* FIXME: Latter I'll use config - this is incorrect */
|
/* FIXME: Latter I'll use config - this is incorrect */
|
||||||
ifa=mb_alloc(p->pool, sizeof(struct ospf_iface));
|
ifa=mb_alloc(p->pool, sizeof(struct ospf_iface));
|
||||||
bcopy(new, ifa, sizeof(struct ospf_iface));
|
memcpy(ifa, new, sizeof(struct ospf_iface));
|
||||||
add_tail(&((struct proto_ospf *)p)->iface_list, NODE ifa);
|
add_tail(&((struct proto_ospf *)p)->iface_list, NODE ifa);
|
||||||
ospf_iface_default(ifa);
|
ospf_iface_default(ifa);
|
||||||
add_wait_timer(ifa,p->pool,0);
|
add_wait_timer(ifa,p->pool,0);
|
||||||
init_list(&(ifa->sk_list));
|
init_list(&(ifa->sk_list));
|
||||||
if((mcsk=ospf_open_socket(p, ifa))!=NULL)
|
if((mcsk=ospf_open_socket(p, ifa))!=NULL)
|
||||||
{
|
{
|
||||||
|
#if 0 /* FIXME: You cannot do this: the socket nodes are used internally by the resource manager */
|
||||||
add_tail(&(ifa->sk_list),NODE mcsk);
|
add_tail(&(ifa->sk_list),NODE mcsk);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if((flags & IF_CHANGE_DOWN)==IF_CHANGE_DOWN)
|
if(flags & IF_CHANGE_DOWN)
|
||||||
{
|
{
|
||||||
if((ifa=find_iface((struct proto_ospf *)p, old))!=NULL)
|
if((ifa=find_iface((struct proto_ospf *)p, old))!=NULL)
|
||||||
{
|
{
|
||||||
|
@ -209,7 +211,7 @@ ospf_if_notify(struct proto *p, unsigned flags, struct iface *new, struct iface
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if((flags & IF_CHANGE_MTU)==IF_CHANGE_MTU)
|
if(flags & IF_CHANGE_MTU)
|
||||||
{
|
{
|
||||||
if((ifa=find_iface((struct proto_ospf *)p, old))!=NULL)
|
if((ifa=find_iface((struct proto_ospf *)p, old))!=NULL)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue