From patchwork Wed Aug 18 05:06:39 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changli Gao X-Patchwork-Id: 61995 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 5F3E0B70E0 for ; Wed, 18 Aug 2010 15:07:14 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751576Ab0HRFHJ (ORCPT ); Wed, 18 Aug 2010 01:07:09 -0400 Received: from mail-px0-f174.google.com ([209.85.212.174]:38714 "EHLO mail-px0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750979Ab0HRFHH (ORCPT ); Wed, 18 Aug 2010 01:07:07 -0400 Received: by pxi10 with SMTP id 10so60084pxi.19 for ; Tue, 17 Aug 2010 22:07:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:from:to:cc:subject:date :message-id:x-mailer; bh=N0DkKVR0+4L2MWfq6U2cyBblXNbFXLkVWbLdwKHOrTo=; b=jftkjNTsYuaROd1bKbd/izIOle1GdhBMYbELzD5L7gltSQ81pv6tVOHT9LY7/YHdzQ p9mVyPUU/GQSdsE7q3ImnqGGGwXvVevzyZnuyzxy65iAG8co2cLef2p4CKNbFmz+MsoQ 9wKOs7VF+bafXMfLlbE4LnctHtx96ajzaSTgc= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:date:message-id:x-mailer; b=p+RWc/pSm20tpN7wKJKJX3kayagM0wELH/tabilssOCbIKv8WmKF5fbxFnGxZ0VTS8 iwJFhwatDKQfzBX3Cwep3dw6ZNN/vrLGO3dHo2psZBe/edpnX5Uhup1yVxbFHRo81MfP sswryuRiNEgIt5Nn1BjX6H6d+Y6+QDGfp+nFA= Received: by 10.142.157.7 with SMTP id f7mr6660139wfe.214.1282108026120; Tue, 17 Aug 2010 22:07:06 -0700 (PDT) Received: from localhost.localdomain ([60.29.39.134]) by mx.google.com with ESMTPS id b19sm1575718wff.7.2010.08.17.22.07.02 (version=TLSv1/SSLv3 cipher=RC4-MD5); Tue, 17 Aug 2010 22:07:04 -0700 (PDT) From: Changli Gao To: Patrick McHardy Cc: "David S. Miller" , netfilter-devel@vger.kernel.org, netdev@vger.kernel.org, Changli Gao Subject: [PATCH 7/8] netfilter: xt_hashlimit: use proto_ports_offset() to support AH message Date: Wed, 18 Aug 2010 13:06:39 +0800 Message-Id: <1282107999-3663-1-git-send-email-xiaosuo@gmail.com> X-Mailer: git-send-email 1.7.1 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Signed-off-by: Changli Gao --- net/netfilter/xt_hashlimit.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/net/netfilter/xt_hashlimit.c b/net/netfilter/xt_hashlimit.c index b46a839..9228ee0 100644 --- a/net/netfilter/xt_hashlimit.c +++ b/net/netfilter/xt_hashlimit.c @@ -448,6 +448,7 @@ hashlimit_init_dst(const struct xt_hashlimit_htable *hinfo, { __be16 _ports[2], *ports; u8 nexthdr; + int poff; memset(dst, 0, sizeof(*dst)); @@ -492,19 +493,13 @@ hashlimit_init_dst(const struct xt_hashlimit_htable *hinfo, return 0; } - switch (nexthdr) { - case IPPROTO_TCP: - case IPPROTO_UDP: - case IPPROTO_UDPLITE: - case IPPROTO_SCTP: - case IPPROTO_DCCP: - ports = skb_header_pointer(skb, protoff, sizeof(_ports), + poff = proto_ports_offset(nexthdr); + if (poff >= 0) { + ports = skb_header_pointer(skb, protoff + poff, sizeof(_ports), &_ports); - break; - default: + } else { _ports[0] = _ports[1] = 0; ports = _ports; - break; } if (!ports) return -1;