Received: by 2002:a25:7ec1:0:0:0:0:0 with SMTP id z184csp2861860ybc; Mon, 18 Nov 2019 05:57:06 -0800 (PST) X-Google-Smtp-Source: APXvYqw2xzw3AjhOieckKrQE971mNVJwROctHjW8Rt81gd4HhvfnMZ8OeT1qk7ATDAMTLJlqsGSr X-Received: by 2002:a17:906:f154:: with SMTP id gw20mr26802762ejb.279.1574085426118; Mon, 18 Nov 2019 05:57:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1574085426; cv=none; d=google.com; s=arc-20160816; b=I/m2ShLYXVRFsdAsfcWXz1eciD24Qlw0C+iLMdReB3jM15aIZHsDAM+UdE7Q2IoQ7J 2Quj2a4LQjBV5nQexKUucveS0KppZb7vGlhn3+TfhpNje2MzE9TVUHm6TcnKQn0Ah1vY T2XRa/PbbqskwAfsRdR6ska2o0HF0p0i0KpIYW9WZjZx+FCzV8Vogk8GoTvB9VTg3hu9 FMvmQ/ntdm9EW4t952A9MWp/Xm6UNKFkUP8ScgR6zqxla/aTAXDPPcWULZInJG7CCYPB dx+o2GEgRA0YcuLxI4bc8di+cyDI0RrF2MKEd1HdHap2dVn1CHSyxKd7ZijZzhakd24k nOyw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=GregPZSq/njzsCBPwkp+eiP0XJJysWULi57rhiXBmzs=; b=mNbetROS7bXRAGQjHbruKk4VXh1wMRbqLAoB5Ex8dtU4ZBvfAAt7iOFn5CgvFuiE55 cnZCtcmwqPJ4cai8sv6X7TVxjx4Gnkdz0ncHQrcUEwbh1UItQKp4nUAxZqRLkMgL2Ps5 cgwj0+Zrj6mfsUIFThNiFbfpulvBLd8e5AF30XtnRoX5DqTDAtRNKZUYsWS9I95Bbn+U mbE/J00KuVikttQjWQZGRyHJbwZ4HIJ4kRp3BslMlyC9ivTVjj6chjC/Ax7GZzBP2qOv EyMOv2HBVcfhrUCXJZgzJ00Ml8ZUnZU+Q4ZilwUV/Ib63kylryhStQV94j616PqmzdYn HXoQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-bluetooth-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l64si14178453edl.306.2019.11.18.05.56.41; Mon, 18 Nov 2019 05:57:06 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-bluetooth-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-bluetooth-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726895AbfKRNxq (ORCPT + 99 others); Mon, 18 Nov 2019 08:53:46 -0500 Received: from mail.monasterossannunziatatodi.it ([212.104.57.17]:44908 "EHLO mail.tinia.eu" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726909AbfKRNxp (ORCPT ); Mon, 18 Nov 2019 08:53:45 -0500 Received: from localhost (localhost [127.0.0.1]) by mail.tinia.eu (Postfix) with ESMTP id C8D73222934; Mon, 18 Nov 2019 14:44:18 +0100 (CET) Received: from mail.tinia.eu ([127.0.0.1]) by localhost (mail.tinia.eu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id ILRzboeQAzrY; Mon, 18 Nov 2019 14:44:18 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by mail.tinia.eu (Postfix) with ESMTP id 13CC7220985; Mon, 18 Nov 2019 14:44:18 +0100 (CET) X-Virus-Scanned: amavisd-new at yes Received: from mail.tinia.eu ([127.0.0.1]) by localhost (mail.tinia.eu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 5E-FGWWFcBXh; Mon, 18 Nov 2019 14:44:18 +0100 (CET) Received: from blemesh.cbl.lan (customer-93-189-143-66.com-com.it [93.189.143.66]) by mail.tinia.eu (Postfix) with ESMTPA id D5C1F22270B; Mon, 18 Nov 2019 14:44:17 +0100 (CET) From: Daniele Biagetti To: linux-bluetooth@vger.kernel.org Cc: Daniele Subject: [PATCH 2/6] tools/mesh: Fix status messages processing Date: Mon, 18 Nov 2019 14:44:01 +0100 Message-Id: <20191118134405.20212-3-daniele.biagetti@cblelectronics.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20191118134405.20212-1-daniele.biagetti@cblelectronics.com> References: <20191118134405.20212-1-daniele.biagetti@cblelectronics.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: linux-bluetooth-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-bluetooth@vger.kernel.org From: Daniele The status messages was processed and displayed even if they do not belong to the present model. This fix ensure that the status messages are processed only if they have the correct opcode. --- tools/mesh/node.c | 11 +++++++++++ tools/mesh/onoff-model.c | 19 ++++++++++++------- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/tools/mesh/node.c b/tools/mesh/node.c index d23315ce4..3171ef01a 100644 --- a/tools/mesh/node.c +++ b/tools/mesh/node.c @@ -475,6 +475,8 @@ static bool deliver_model_data(struct mesh_element* e= lement, uint16_t src, uint16_t app_idx, uint8_t *data, uint16_t len) { GList *l; + uint32_t opcode; + int n; =20 for(l =3D element->models; l; l =3D l->next) { struct mesh_model *model =3D l->data; @@ -487,6 +489,15 @@ static bool deliver_model_data(struct mesh_element* = element, uint16_t src, return true; } =20 + if (mesh_opcode_get(data, len, &opcode, &n)) { + len -=3D n; + data +=3D n; + } else + return false; + bt_shell_printf("Unknown Model Message received (%d) opcode %x\n", + len, opcode); + print_byte_array("\t",data, len); + return false; } =20 diff --git a/tools/mesh/onoff-model.c b/tools/mesh/onoff-model.c index 6236e1fea..a6baeb0c5 100644 --- a/tools/mesh/onoff-model.c +++ b/tools/mesh/onoff-model.c @@ -111,6 +111,7 @@ static bool client_msg_recvd(uint16_t src, uint8_t *d= ata, { uint32_t opcode; int n; + char s[128]; =20 if (mesh_opcode_get(data, len, &opcode, &n)) { len -=3D n; @@ -127,18 +128,22 @@ static bool client_msg_recvd(uint16_t src, uint8_t = *data, return false; =20 case OP_GENERIC_ONOFF_STATUS: + bt_shell_printf("On Off Model Message received (%d) opcode %x\n", + len, opcode); + print_byte_array("\t",data, len); if (len !=3D 1 && len !=3D 3) break; =20 - bt_shell_printf("Node %4.4x: Off Status present =3D %s", - src, data[0] ? "ON" : "OFF"); - + sprintf(s, "Node %4.4x: On Off Status present =3D %s", + src, data[0] ? "ON" : "OFF"); if (len =3D=3D 3) { - bt_shell_printf(", target =3D %s", - data[1] ? "ON" : "OFF"); + sprintf(s, ", target =3D %s", + data[1] ? "ON" : "OFF"); + bt_shell_printf("%s\n", s); print_remaining_time(data[2]); - } else - bt_shell_printf("\n"); + }else + bt_shell_printf("%s\n", s); + break; } =20 --=20 2.20.1