From patchwork Wed Jul 27 00:43:10 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Westphal X-Patchwork-Id: 653030 X-Patchwork-Delegate: pablo@netfilter.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3rzcVd4PQ4z9t0X for ; Wed, 27 Jul 2016 11:15:21 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758117AbcG0BPU (ORCPT ); Tue, 26 Jul 2016 21:15:20 -0400 Received: from Chamillionaire.breakpoint.cc ([146.0.238.67]:60758 "EHLO Chamillionaire.breakpoint.cc" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753251AbcG0BPT (ORCPT ); Tue, 26 Jul 2016 21:15:19 -0400 Received: from fw by Chamillionaire.breakpoint.cc with local (Exim 4.84_2) (envelope-from ) id 1bSCwN-00064W-GX; Wed, 27 Jul 2016 02:43:15 +0200 From: Florian Westphal To: Cc: Florian Westphal Subject: [nft PATCH 1/7] netlink: add __binop_adjust helper Date: Wed, 27 Jul 2016 02:43:10 +0200 Message-Id: <1469580196-2100-2-git-send-email-fw@strlen.de> X-Mailer: git-send-email 2.7.3 In-Reply-To: <1469580196-2100-1-git-send-email-fw@strlen.de> References: <1469580196-2100-1-git-send-email-fw@strlen.de> Sender: netfilter-devel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netfilter-devel@vger.kernel.org binop_adjust takes an expression whose LHS is expected to be the binop expression that we use to adjust a payload expression based on a mask (to match sub-byte headers like iphdr->version). A followup patch has to pass the binop directly, so add add a helper for it. Signed-off-by: Florian Westphal --- src/netlink_delinearize.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/netlink_delinearize.c b/src/netlink_delinearize.c index 257473a..ae87280 100644 --- a/src/netlink_delinearize.c +++ b/src/netlink_delinearize.c @@ -1265,10 +1265,10 @@ static void binop_adjust_one(const struct expr *binop, struct expr *value, } } -static void binop_adjust(struct expr *expr, unsigned int shift) +static void __binop_adjust(const struct expr *binop, struct expr *right, + unsigned int shift) { - const struct expr *binop = expr->left; - struct expr *right = expr->right, *i; + struct expr *i; switch (right->ops->type) { case EXPR_VALUE: @@ -1293,11 +1293,16 @@ static void binop_adjust(struct expr *expr, unsigned int shift) } break; default: - BUG("unknown expression type %s\n", expr->ops->name); + BUG("unknown expression type %s\n", right->ops->name); break; } } +static void binop_adjust(struct expr *expr, unsigned int shift) +{ + __binop_adjust(expr->left, expr->right, shift); +} + static void binop_postprocess(struct rule_pp_ctx *ctx, struct expr *expr) { struct expr *binop = expr->left;