From patchwork Fri Aug 9 11:12:46 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Alvaro Neira X-Patchwork-Id: 265995 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 A731B2C00A4 for ; Fri, 9 Aug 2013 21:13:00 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S967570Ab3HILM5 (ORCPT ); Fri, 9 Aug 2013 07:12:57 -0400 Received: from mail-wi0-f174.google.com ([209.85.212.174]:42512 "EHLO mail-wi0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S967573Ab3HILMz (ORCPT ); Fri, 9 Aug 2013 07:12:55 -0400 Received: by mail-wi0-f174.google.com with SMTP id j17so1516172wiw.7 for ; Fri, 09 Aug 2013 04:12:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=subject:to:from:cc:date:message-id:in-reply-to:references :user-agent:mime-version:content-type:content-transfer-encoding; bh=g0Q0UlFrhYkS+tPok3kaWCnLyazgBGxZg1v1F+uHRp4=; b=hhkwEyX0eXwsvKZQvpJZgV6OuVeHBhNZjukJ/ttQEIbCddA8/U79fuj4L5PjnziAK4 0XGB0/ET8ppsRRGNNqgeEoP2z5K3zlArov1iWJKHWxyLZjiZDdmHEWNZy6L21Y5yPE4m DbHUVoUm6Q7ME16lRQs+0+ahfGg5AE0cywfWekTRDRsnmoQbU4XIAPL1WMEdqqx4U76C frYnzmnPSsjzfiuvEQN+NbL5avwYxRkIHUAXc2Af3sc/NTXuwN80b6diaxZskJY2Q2gV AOU5p2bBZMRPFz+OZxMxkX58z1rdxHkk9+dMnIxRJBqdnuIyG6HO0BrossxbPJO7hdTk 8vFA== X-Received: by 10.194.202.230 with SMTP id kl6mr5919199wjc.9.1376046774259; Fri, 09 Aug 2013 04:12:54 -0700 (PDT) Received: from [127.0.1.1] ([90.174.0.186]) by mx.google.com with ESMTPSA id ee5sm2190589wib.3.2013.08.09.04.12.49 for (version=TLSv1.2 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Fri, 09 Aug 2013 04:12:53 -0700 (PDT) Subject: [libnftables PATCH 05/13] expr: ct: optional output in ct To: netfilter-devel@vger.kernel.org From: Alvaro Neira Cc: eric@regit.org Date: Fri, 09 Aug 2013 13:12:46 +0200 Message-ID: <20130809111246.29819.71948.stgit@Ph0enix> In-Reply-To: <20130809111148.29819.95689.stgit@Ph0enix> References: <20130809111148.29819.95689.stgit@Ph0enix> User-Agent: StGit/0.15 MIME-Version: 1.0 Sender: netfilter-devel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netfilter-devel@vger.kernel.org From: Álvaro Neira Ayuso Display direction and key if available Signed-off-by: Alvaro Neira Ayuso --- src/expr/ct.c | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" 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/src/expr/ct.c b/src/expr/ct.c index 99448c6..f86fd4d 100644 --- a/src/expr/ct.c +++ b/src/expr/ct.c @@ -226,6 +226,30 @@ err: } static int +nft_expr_ct_snprintf_json(char *buf, size_t size, struct nft_rule_expr *e) +{ + int ret, len = size, offset = 0; + struct nft_expr_ct *ct = nft_expr_data(e); + + ret = snprintf(buf, size, "\"dreg\" : %u", ct->dreg); + SNPRINTF_BUFFER_SIZE(ret, size, len, offset); + + if (e->flags & (1 << NFT_EXPR_CT_KEY)) { + ret = snprintf(buf+offset, size, ", \"key\" : \"%s\"", + ctkey2str(ct->key)); + SNPRINTF_BUFFER_SIZE(ret, size, len, offset); + } + + if (e->flags & (1 << NFT_EXPR_CT_DIR)) { + ret = snprintf(buf+offset, size, ", \"dir\" : %u", ct->dir); + SNPRINTF_BUFFER_SIZE(ret, size, len, offset); + } + + return offset; + +} + +static int nft_rule_expr_ct_snprintf(char *buf, size_t len, uint32_t type, uint32_t flags, struct nft_rule_expr *e) { @@ -241,10 +265,7 @@ nft_rule_expr_ct_snprintf(char *buf, size_t len, uint32_t type, "%u", ct->dreg, ctkey2str(ct->key), ct->dir); case NFT_RULE_O_JSON: - return snprintf(buf, len, "\"dreg\" : %u, " - "\"key\" : \"%s\", " - "\"dir\" : %u", - ct->dreg, ctkey2str(ct->key), ct->dir); + return nft_expr_ct_snprintf_json(buf, len, e); default: break; }