From patchwork Wed Sep 21 14:06:42 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Antonio Quartulli X-Patchwork-Id: 1269 Return-Path: Received: from contumacia.investici.org (contumacia.investici.org [178.255.144.35]) by open-mesh.org (Postfix) with ESMTPS id A0D146006C1 for ; Wed, 21 Sep 2011 16:07:35 +0200 (CEST) Authentication-Results: open-mesh.org; dkim=pass (1024-bit key) header.i=@autistici.org; dkim-adsp=pass Received: from [178.255.144.35] (contumacia [178.255.144.35]) (Authenticated sender: ordex@autistici.org) by localhost (Postfix) with ESMTPSA id 9D091E83AC; Wed, 21 Sep 2011 14:07:33 +0000 (UTC) X-DKIM: Sendmail DKIM Filter v2.8.2 contumacia.investici.org 9D091E83AC DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=autistici.org; s=stigmate; t=1316614055; bh=Uh/pwxjRtIOetF9N89tHypK6HNOdSq+RpeP14X++c/Q=; h=From:To:Cc:Subject:Date:Message-Id; b=gZIuTG/t5Y6tdyx27zC/M8RCpw0c20Cqamb0tEnKBvVhkPr55krBTcjDyBYCepK7W pMDao88nytpghJ+nA6eVeYgoqg6jbr/RUZ7qCgg0Fp75YgFsU5UNMIs41mOGnhZyoa r2Q2+80oW6BudgMNtdlbYWAB6xvirdcLlrNji4lE= From: Antonio Quartulli To: b.a.t.m.a.n@lists.open-mesh.org Date: Wed, 21 Sep 2011 16:06:42 +0200 Message-Id: <1316614002-17919-1-git-send-email-ordex@autistici.org> X-Mailer: git-send-email 1.7.3.4 Subject: [B.A.T.M.A.N.] [PATCH] batman-adv: do_bcast has to be true for broadcast packets only X-BeenThere: b.a.t.m.a.n@lists.open-mesh.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: The list for a Better Approach To Mobile Ad-hoc Networking List-Id: The list for a Better Approach To Mobile Ad-hoc Networking List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Sep 2011 14:07:35 -0000 corrects a critical bug of the GW feature. This bug made all the unicast packets destined to a GW to be sent as broadcast. This bug is present even if the sender GW feature is configured as OFF. It's an urgent bug fix and should be committed as soon as possible. This was a regression introduced by 17852faeb269bc72f6ff542e21c0b3056fb99c48 Signed-off-by: Antonio Quartulli --- soft-interface.c | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-) diff --git a/soft-interface.c b/soft-interface.c index aceeabc..652fb7b 100644 --- a/soft-interface.c +++ b/soft-interface.c @@ -566,7 +566,7 @@ static int interface_tx(struct sk_buff *skb, struct net_device *soft_iface) struct orig_node *orig_node = NULL; int data_len = skb->len, ret; short vid = -1; - bool do_bcast = false; + bool do_bcast; if (atomic_read(&bat_priv->mesh_state) != MESH_ACTIVE) goto dropped; @@ -600,15 +600,15 @@ static int interface_tx(struct sk_buff *skb, struct net_device *soft_iface) orig_node = transtable_search(bat_priv, ethhdr->h_source, ethhdr->h_dest); - if (is_multicast_ether_addr(ethhdr->h_dest) || - (orig_node && orig_node->gw_flags)) { + do_bcast = is_multicast_ether_addr(ethhdr->h_dest); + if (do_bcast || (orig_node && orig_node->gw_flags)) { ret = gw_is_target(bat_priv, skb, orig_node); if (ret < 0) goto dropped; - if (ret == 0) - do_bcast = true; + if (ret) + do_bcast = false; } /* ethernet packet should be broadcasted */