diff options
author | Patrick McHardy <kaber@trash.net> | 2008-07-16 20:51:47 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-07-16 20:51:47 -0700 |
commit | 51ce7ec92187b22ab1598987bb5f9776f6e0ebad (patch) | |
tree | 7617a6e5bfa58e4969c5a7f5ff5688a3129dbdee /net/802/garp.c | |
parent | 9a6d276e85aa3d8f308fc5e8de6892daeb60ae5f (diff) | |
download | talos-op-linux-51ce7ec92187b22ab1598987bb5f9776f6e0ebad.tar.gz talos-op-linux-51ce7ec92187b22ab1598987bb5f9776f6e0ebad.zip |
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>
Diffstat (limited to 'net/802/garp.c')
-rw-r--r-- | net/802/garp.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/net/802/garp.c b/net/802/garp.c index 3b78f7b74fd4..1dcb0660c49d 100644 --- a/net/802/garp.c +++ b/net/802/garp.c @@ -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); |