BGP: Fixes serious bug in TX handling
Under some circumstances and heavy load, TX could be postponed until the session fails with hold timer expired. Thanks to Javor Kliachev for making the bug reproductible.
This commit is contained in:
parent
16a3254c4c
commit
d924d5a562
1 changed files with 1 additions and 1 deletions
|
@ -769,7 +769,7 @@ bgp_schedule_packet(struct bgp_conn *conn, int type)
|
||||||
{
|
{
|
||||||
DBG("BGP: Scheduling packet type %d\n", type);
|
DBG("BGP: Scheduling packet type %d\n", type);
|
||||||
conn->packets_to_send |= 1 << type;
|
conn->packets_to_send |= 1 << type;
|
||||||
if (conn->sk && conn->sk->tpos == conn->sk->tbuf)
|
if (conn->sk && conn->sk->tpos == conn->sk->tbuf && !ev_active(conn->tx_ev))
|
||||||
ev_schedule(conn->tx_ev);
|
ev_schedule(conn->tx_ev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue