From patchwork Wed Dec 17 12:35:32 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?S=C5=82awomir_Demeszko?= X-Patchwork-Id: 422248 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 1533F1401EF for ; Wed, 17 Dec 2014 23:36:00 +1100 (AEDT) Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP id 75DFF2800B8; Wed, 17 Dec 2014 13:34:02 +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,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 2D6992890C2 for ; Wed, 17 Dec 2014 13:33:52 +0100 (CET) X-policyd-weight: using cached result; rate:hard: -7.6 Received: from hosting.nazwa24.pl (ns1.hosting.nazwa24.pl [46.242.129.143]) by arrakis.dune.hu (Postfix) with ESMTPS for ; Wed, 17 Dec 2014 13:33:51 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=wireless-instruments.com; s=default; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-Id:Date:Subject:Cc:To:From; bh=59na+nUWY7nwNUXVsinSQamxa5L2MFZ/IlXlAmf9mrY=; b=TiSz9ldfm8SYnuzstTxv9hKd9Z0AXcdiLk7PSKfFbRPAqufCCpEjYX1/jhDqhFXGzjhh7sS/4RTihEDv+vF4JYnIQt5EztRpyHPvtVU6hBgm/aySMefMtt7jUXpCCMtq1j3RzvmpsZHsW9i7nxapy6VL2Hqoazrs1Rs1VKtYQlI=; Received: from afo149.internetdsl.tpnet.pl ([83.16.144.149]:58090 helo=localhost.localdomain) by hosting.nazwa24.pl with esmtpsa (UNKNOWN:AES128-SHA256:128) (Exim 4.82) (envelope-from ) id 1Y1DpN-0004M3-DT; Wed, 17 Dec 2014 13:35:41 +0100 From: =?UTF-8?q?S=C5=82awomir=20Demeszko?= To: openwrt-devel@lists.openwrt.org Date: Wed, 17 Dec 2014 13:35:32 +0100 Message-Id: <1418819734-17352-1-git-send-email-s.demeszko@wireless-instruments.com> X-Mailer: git-send-email 1.9.1 MIME-Version: 1.0 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - hosting.nazwa24.pl X-AntiAbuse: Original Domain - lists.openwrt.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - wireless-instruments.com X-Get-Message-Sender-Via: hosting.nazwa24.pl: authenticated_id: s.demeszko@wireless-instruments.com Cc: =?UTF-8?q?S=C5=82awomir=20Demeszko?= Subject: [OpenWrt-Devel] [PATCH uqmi 1/3] Added option for enabling and disabling protection of simcard by PIN 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: , Errors-To: openwrt-devel-bounces@lists.openwrt.org Sender: "openwrt-devel" Signed-off-by: SÅ‚awomir Demeszko --- commands-dms.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ commands-dms.h | 7 +++++++ 2 files changed, 60 insertions(+) diff --git a/commands-dms.c b/commands-dms.c index ad5c89d..360e926 100644 --- a/commands-dms.c +++ b/commands-dms.c @@ -75,6 +75,59 @@ cmd_dms_verify_pin2_prepare(struct qmi_dev *qmi, struct qmi_request *req, struct return QMI_CMD_REQUEST; } +static struct qmi_dms_uim_set_pin_protection_request dms_pin_protection_req = { + QMI_INIT_SEQUENCE(info, + .pin_id = QMI_DMS_UIM_PIN_ID_PIN + ) + }; + +#define cmd_dms_set_pin_cb no_cb +static enum qmi_cmd_result +cmd_dms_set_pin_prepare(struct qmi_dev *qmi, struct qmi_request *req, struct qmi_msg *msg, char *arg) +{ + qmi_set_ptr(&dms_pin_protection_req, info.pin, arg); + return QMI_CMD_DONE; +} + +static enum qmi_cmd_result +cmd_dms_set_pin_protection_prepare(struct qmi_msg *msg, char *arg) +{ + if (!dms_pin_protection_req.data.info.pin) { + uqmi_add_error("Missing argument"); + return QMI_CMD_EXIT; + } + + int is_enabled; + if (strcasecmp(arg, "disabled") == 0) + is_enabled = false; + else if (strcasecmp(arg, "enabled") == 0) + is_enabled = true; + else { + uqmi_add_error("Invalid value (valid: disabled, enabled)"); + return QMI_CMD_EXIT; + } + + qmi_set_ptr(&dms_pin_protection_req, info.protection_enabled, is_enabled); + qmi_set_dms_uim_set_pin_protection_request(msg, &dms_pin_protection_req); + return QMI_CMD_REQUEST; +} + +#define cmd_dms_set_pin1_protection_cb no_cb +static enum qmi_cmd_result +cmd_dms_set_pin1_protection_prepare(struct qmi_dev *qmi, struct qmi_request *req, struct qmi_msg *msg, char *arg) +{ + qmi_set_ptr(&dms_pin_protection_req, info.pin_id, QMI_DMS_UIM_PIN_ID_PIN); + return cmd_dms_set_pin_protection_prepare(msg, arg); +} + +#define cmd_dms_set_pin2_protection_cb no_cb +static enum qmi_cmd_result +cmd_dms_set_pin2_protection_prepare(struct qmi_dev *qmi, struct qmi_request *req, struct qmi_msg *msg, char *arg) +{ + qmi_set_ptr(&dms_pin_protection_req, info.pin_id, QMI_DMS_UIM_PIN_ID_PIN2); + return cmd_dms_set_pin_protection_prepare(msg, arg); +} + static struct qmi_dms_uim_unblock_pin_request dms_unlock_pin_req = { QMI_INIT_SEQUENCE(info, .pin_id = QMI_DMS_UIM_PIN_ID_PIN diff --git a/commands-dms.h b/commands-dms.h index 703b9f7..e214975 100644 --- a/commands-dms.h +++ b/commands-dms.h @@ -2,6 +2,9 @@ __uqmi_command(dms_get_pin_status, get-pin-status, no, QMI_SERVICE_DMS), \ __uqmi_command(dms_verify_pin1, verify-pin1, required, QMI_SERVICE_DMS), \ __uqmi_command(dms_verify_pin2, verify-pin2, required, QMI_SERVICE_DMS), \ + __uqmi_command(dms_set_pin1_protection, set-pin1-protection, required, QMI_SERVICE_DMS), \ + __uqmi_command(dms_set_pin2_protection, set-pin2-protection, required, QMI_SERVICE_DMS), \ + __uqmi_command(dms_set_pin, pin, required, CMD_TYPE_OPTION), \ __uqmi_command(dms_unblock_pin1, unblock-pin1, no, QMI_SERVICE_DMS), \ __uqmi_command(dms_unblock_pin2, unblock-pin2, no, QMI_SERVICE_DMS), \ __uqmi_command(dms_set_puk, puk, required, CMD_TYPE_OPTION), \ @@ -16,6 +19,10 @@ " --get-pin-status: Get PIN verification status\n" \ " --verify-pin1 : Verify PIN1\n" \ " --verify-pin2 : Verify PIN2\n" \ + " --set-pin1-protection : Set PIN1 protection state (disabled, enabled)\n" \ + " --pin : PIN1 needed to change state\n" \ + " --set-pin2-protection : Set PIN2 protection state (disabled, enabled)\n" \ + " --pin : PIN2 needed to change state\n" \ " --unblock-pin1: Unblock PIN1\n" \ " --puk : PUK needed to unblock\n" \ " --new-pin : New pin\n" \