From patchwork Sat Jan 24 15:07:51 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yousong Zhou X-Patchwork-Id: 432413 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from arrakis.dune.hu (arrakis.dune.hu [78.24.191.176]) (using TLSv1.1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 7F695140291 for ; Sun, 25 Jan 2015 02:20:15 +1100 (AEDT) Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP id D7C2228BDD0; Sat, 24 Jan 2015 16:16:41 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on arrakis.dune.hu X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=unavailable version=3.3.2 Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP id 55DF928BC8E for ; Sat, 24 Jan 2015 16:16:18 +0100 (CET) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 CL_IP_EQ_HELO_IP=-2 (check from: .gmail. - helo: .mail-pa0-f47.google. - helo-domain: .google.) FROM/MX_MATCHES_HELO(DOMAIN)=-2; rate: -8.5 Received: from mail-pa0-f47.google.com (mail-pa0-f47.google.com [209.85.220.47]) by arrakis.dune.hu (Postfix) with ESMTPS for ; Sat, 24 Jan 2015 16:16:17 +0100 (CET) Received: by mail-pa0-f47.google.com with SMTP id lj1so3018112pab.6 for ; Sat, 24 Jan 2015 07:18:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=1MeiVsuLHcF4+SfvU6R2v9eNchyRsVSJkJu2/8BhW1A=; b=q3s6W3Xmj8X6vOolAFnHzDiaPvLzBV/ZLLEFQbsDlrFJ11aQ63WGkGD9SHBtZw3Snp 4BXmEBxcKH7FISHlr9CFZvlslN2WGGXHkJDTCjxqubPk3SXI7AfgtJBX86ZEwe9P6jgt smPlO7Ikx+dZv67mWz35sj9qMfmMQYOcHSAZGpdlPsUxOynrm8YN7W3WCiWZe+Q02DaX hAC8C6FOCWKgvwymLN1K2E2uW7vHYg+2i0rl1TevEav7RkTJI1QoqeKKk0E+Exh6tDOf obW6BypkQ57bqhBfj575cKPd9AtHdY33cbspPzE6K6tvv9KX4IGa4hocFAIRx8QUwpd3 ClQg== X-Received: by 10.66.157.67 with SMTP id wk3mr20037489pab.95.1422112719204; Sat, 24 Jan 2015 07:18:39 -0800 (PST) Received: from debian.corp.sankuai.com ([103.29.140.56]) by mx.google.com with ESMTPSA id oi5sm5089119pbb.7.2015.01.24.07.18.35 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 24 Jan 2015 07:18:37 -0800 (PST) From: Yousong Zhou To: nbd@openwrt.org Date: Sat, 24 Jan 2015 23:07:51 +0800 Message-Id: <1422112073-24903-3-git-send-email-yszhou4tech@gmail.com> X-Mailer: git-send-email 1.7.10.4 In-Reply-To: <1422112073-24903-1-git-send-email-yszhou4tech@gmail.com> References: <1422112073-24903-1-git-send-email-yszhou4tech@gmail.com> Cc: openwrt-devel@lists.openwrt.org Subject: [OpenWrt-Devel] [PATCH 2/4] cli: properly unload package before quit. X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: OpenWrt Development List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: openwrt-devel-bounces@lists.openwrt.org Sender: "openwrt-devel" Signed-off-by: Yousong Zhou --- cli.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/cli.c b/cli.c index 2ee1e36..8f32255 100644 --- a/cli.c +++ b/cli.c @@ -286,7 +286,7 @@ static int package_cmd(int cmd, char *tuple) { struct uci_element *e = NULL; struct uci_ptr ptr; - int ret = 0; + int ret = 1; if (uci_lookup_ptr(ctx, &ptr, tuple, true) != UCI_OK) { cli_perror(); @@ -299,11 +299,12 @@ static int package_cmd(int cmd, char *tuple) uci_show_changes(ptr.p); break; case CMD_COMMIT: - if (flags & CLI_FLAG_NOCOMMIT) - return 0; + if (flags & CLI_FLAG_NOCOMMIT) { + ret = 0; + goto out; + } if (uci_commit(ctx, &ptr.p, false) != UCI_OK) { cli_perror(); - ret = 1; } break; case CMD_EXPORT: @@ -313,7 +314,6 @@ static int package_cmd(int cmd, char *tuple) if (!(ptr.flags & UCI_LOOKUP_COMPLETE)) { ctx->err = UCI_ERR_NOTFOUND; cli_perror(); - ret = 1; } switch(e->type) { case UCI_TYPE_PACKAGE: @@ -327,11 +327,12 @@ static int package_cmd(int cmd, char *tuple) break; default: /* should not happen */ - return 1; + goto out; } break; } +out: if (ptr.p) uci_unload(ctx, ptr.p); return ret;