From patchwork Wed Jul 31 12:18:52 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tomasz Bursztyka X-Patchwork-Id: 263687 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 7AEE42C00A8 for ; Wed, 31 Jul 2013 22:19:06 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751338Ab3GaMTE (ORCPT ); Wed, 31 Jul 2013 08:19:04 -0400 Received: from mga02.intel.com ([134.134.136.20]:51933 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751236Ab3GaMTD (ORCPT ); Wed, 31 Jul 2013 08:19:03 -0400 Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga101.jf.intel.com with ESMTP; 31 Jul 2013 05:18:58 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.89,787,1367996400"; d="scan'208";a="354860605" Received: from unknown (HELO rd-180.ger.corp.intel.com) ([10.252.122.220]) by orsmga001.jf.intel.com with ESMTP; 31 Jul 2013 05:18:57 -0700 From: Tomasz Bursztyka To: netfilter-devel@vger.kernel.org Cc: Tomasz Bursztyka Subject: [iptables-nftables - PATCH] xtables: Do not dump before command parsing has been finished Date: Wed, 31 Jul 2013 15:18:52 +0300 Message-Id: <1375273132-10169-1-git-send-email-tomasz.bursztyka@linux.intel.com> X-Mailer: git-send-email 1.8.3.2 Sender: netfilter-devel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netfilter-devel@vger.kernel.org On xtables-save.c, -d will not output right away but after the full command line hase been parsed. Signed-off-by: Tomasz Bursztyka --- I ensure the same behavior as usual, so -d outputs and exit succesfully as usual. iptables/xtables-save.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/iptables/xtables-save.c b/iptables/xtables-save.c index db03090..990c0fe 100644 --- a/iptables/xtables-save.c +++ b/iptables/xtables-save.c @@ -78,6 +78,7 @@ int xtables_save_main(int argc, char *argv[]) { const char *tablename = NULL; + bool dump = false; struct nft_handle h = { .family = AF_INET, /* default to AF_INET */ }; @@ -118,8 +119,8 @@ xtables_save_main(int argc, char *argv[]) xtables_modprobe_program = optarg; break; case 'd': - do_output(&h, tablename, show_counters); - exit(0); + dump = true; + break; case '4': h.family = AF_INET; break; @@ -135,5 +136,10 @@ xtables_save_main(int argc, char *argv[]) exit(1); } + if (dump) { + do_output(&h, tablename, show_counters); + exit(0); + } + return !do_output(&h, tablename, show_counters); }