garp: retry sending JoinIn messages after allocation failures

Increase reliability by retrying to send JoinIn messages after memory
allocation failures on each TRANSMIT_PDU event until it succeeds.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Patrick McHardy 2008-07-16 20:51:47 -07:00 committed by David S. Miller
parent 9a6d276e85
commit 51ce7ec921
1 changed files with 4 additions and 1 deletions

View File

@ -323,7 +323,10 @@ static void garp_attr_event(struct garp_applicant *app,
case GARP_ACTION_NONE:
break;
case GARP_ACTION_S_JOIN_IN:
garp_pdu_append_attr(app, attr, GARP_JOIN_IN);
/* When appending the attribute fails, don't update state in
* order to retry on next TRANSMIT_PDU event. */
if (garp_pdu_append_attr(app, attr, GARP_JOIN_IN) < 0)
return;
break;
case GARP_ACTION_S_LEAVE_EMPTY:
garp_pdu_append_attr(app, attr, GARP_LEAVE_EMPTY);