ospfd: Tweak previous iface RR write patch to avoid free/malloc & redundant log
* linklist.{c,h}: (listnode_move_to_tail) new unction to move a
listnode to tail of list.
* ospf_packet.c: (ospf_write) remove debug that seemed to be mostly covered
by existing debug.
Use listnode_move_to_tail to just move the list node to the end of the
tail, rather than freeing the one to hand and allocing a new one.
diff --git a/ospfd/ospf_packet.c b/ospfd/ospf_packet.c
index d2504c7..36aa895 100644
--- a/ospfd/ospf_packet.c
+++ b/ospfd/ospf_packet.c
@@ -760,11 +760,6 @@
sockopt_iphdrincl_swab_htosys (&iph);
ret = sendmsg (ospf->fd, &msg, flags);
sockopt_iphdrincl_swab_systoh (&iph);
- if (IS_DEBUG_OSPF_EVENT)
- zlog_debug ("ospf_write to %s, "
- "id %d, off %d, len %d, interface %s, mtu %u:",
- inet_ntoa (iph.ip_dst), iph.ip_id, iph.ip_off, iph.ip_len,
- oi->ifp->name, oi->ifp->mtu);
if (ret < 0)
zlog_warn ("*** sendmsg in ospf_write failed to %s, "
@@ -796,14 +791,11 @@
/* Move this interface to the tail of write_q to
serve everyone in a round robin fashion */
- list_delete_node (ospf->oi_write_q, node);
+ listnode_move_to_tail (ospf->oi_write_q, node);
if (ospf_fifo_head (oi->obuf) == NULL)
{
oi->on_write_q = 0;
- }
- else
- {
- listnode_add (ospf->oi_write_q, oi);
+ list_delete_node (ospf->oi_write_q, node);
}
/* If packets still remain in queue, call write thread. */