sa_in_init(&rt->rt_dest, &dest);
sa_in_init(&rt->rt_netmask, &netmask);
sa_in_init(&rt->rt_gateway, &gateway);
- if (rb_tree_insert_node(routes, rt) != rt)
- rt_free(rt);
- else
+ if (rt_proto_add(routes, rt))
n++;
}
}
p = get_option(ifp->ctx, bootp, bootp_len, DHO_ROUTER, &len);
else
p = NULL;
- if (p) {
+ if (p && len % 4 == 0) {
e = p + len;
dest.s_addr = INADDR_ANY;
netmask.s_addr = INADDR_ANY;
sa_in_init(&rt->rt_dest, &dest);
sa_in_init(&rt->rt_netmask, &netmask);
sa_in_init(&rt->rt_gateway, &gateway);
- if (rb_tree_insert_node(routes, rt) != rt)
- rt_free(rt);
- else
+ if (rt_proto_add(routes, rt))
n++;
}
}