diff --git a/[refs] b/[refs] index 62641f794b10..ab4dc398dcde 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9a6d276e85aa3d8f308fc5e8de6892daeb60ae5f +refs/heads/master: 51ce7ec92187b22ab1598987bb5f9776f6e0ebad diff --git a/trunk/net/802/garp.c b/trunk/net/802/garp.c index 3b78f7b74fd4..1dcb0660c49d 100644 --- a/trunk/net/802/garp.c +++ b/trunk/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);