From patchwork Wed May 18 14:34:10 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Adler X-Patchwork-Id: 1632842 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=googlegroups.com header.i=@googlegroups.com header.a=rsa-sha256 header.s=20210112 header.b=Pa16nUfw; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=googlegroups.com (client-ip=2a00:1450:4864:20::139; helo=mail-lf1-x139.google.com; envelope-from=swupdate+bncbclp7i7wwmhrbauisskamgqehmsbugi@googlegroups.com; receiver=) Received: from mail-lf1-x139.google.com (mail-lf1-x139.google.com [IPv6:2a00:1450:4864:20::139]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4L3Fr82L2zz9sGh for ; Thu, 19 May 2022 00:34:46 +1000 (AEST) Received: by mail-lf1-x139.google.com with SMTP id 21-20020ac24d55000000b00473e75f3331sf1148216lfp.15 for ; Wed, 18 May 2022 07:34:46 -0700 (PDT) ARC-Seal: i=3; a=rsa-sha256; t=1652884483; cv=pass; d=google.com; s=arc-20160816; b=z6ryqXeeTS8LseZE0o7lAXyn6OfQDNy1MWLgfFt7VNbcKprwZxunDlPQQltpL9J7JD fuZnJS0wLTPRkKMm26cPiToyhlJ7SW+s9MF3AEv1pmlsM277Q2fkjctg1qxmIt6oLF8i KxOyVgafbbiQ79xHAnFNBoOVQd/FNqi5qn6WDrlmoEuCNaGU+3ZPJk3VQcv10qjm2Vok HeYn2c0mZiFB3M9ON7UYSWfq3TAGrwTS8gFfHYr/o0W3LFVpJO4pnIcYLbXquFrmi1OQ ktZxUFiQSwgb0IMc8C6GBlpZEe+FXlXqtGSMWyZHMSDfGapuBajE91H3hcy5vUzZ1XzK 9cqw== ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:mime-version:message-id:date :subject:cc:to:from:sender:dkim-signature; bh=1P5RgzGpNWJW0dr5oeooAL45uVStSwzMRj+zViJA3i0=; b=rWM0JCHBg4X8xfsocqTeK6ZAtahM//wprGKVqOjTp80AYgSs/Uf9AWXeN4qQi463fO stVhSfsvbTI5wz0WGv0q74J80gw72JjFzC5bevUSkOo8dpUOzemTfWqAKfwkd3MRwuLH gJfL91PjHS0q0OMuskimh5KufOw/lOavC+t92yW/u+lepLlR+4R5uiUwMqhpUzV2sVGa g4W8c+g67oSaHBeZyC58NZD+kiLP9mmBQ/dN312t2uvTiU3pHZdtSrGt66otenCjxcye hLNX4l4x3nRsqvQqYRbmGNDG5vdDckYOqRndWOk46hEAtNHcuOJfGENkbWYy0ZEiu0/c 46Kw== ARC-Authentication-Results: i=3; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=OxFVFQPy; arc=pass (i=1 spf=pass spfdomain=siemens.com dkim=pass dkdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of michael.adler@siemens.com designates 2a01:111:f400:7e1a::620 as permitted sender) smtp.mailfrom=michael.adler@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:mime-version :x-original-sender:x-original-authentication-results:precedence :mailing-list:list-id:list-post:list-help:list-archive :list-subscribe:list-unsubscribe; bh=1P5RgzGpNWJW0dr5oeooAL45uVStSwzMRj+zViJA3i0=; b=Pa16nUfwCo3nIO+apzmxBXbzfREUcvcxwnuSJkGjp1NFm8QvdjMXIpkYqI1T1p7fSe VC2W3XgvPULA/hPN3eoy7F3vqUffGwz5YN4Q/T1dXKZJPDGn0qKSLcdDzowIkYcJBn8A VuVsYRUlsKAFZSr56HCJjdA4wewBO00fv1m91b0lWMuE7mIdOVu5mZxLp8aGzQQHZZhY L/1MOdhgoO8ar756Nu0fvErb+Mg8NEneGzpBvF/4eZS+6mXXLG4f2rwoay4gkCpq8pGh pQvROUK52+90nRgJe9h9LrniWBVEFU8GgZtb5QD8VGpSaTL82nb6odiA/gRArzIAp1os 0gYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=sender:x-gm-message-state:from:to:cc:subject:date:message-id :mime-version:x-original-sender:x-original-authentication-results :precedence:mailing-list:list-id:x-spam-checked-in-group:list-post :list-help:list-archive:list-subscribe:list-unsubscribe; bh=1P5RgzGpNWJW0dr5oeooAL45uVStSwzMRj+zViJA3i0=; b=3AahwuUNa9CF++dgh/MAelS5ySgFFUUR5q5N2JciLM86RO9ZcLc5GrWpHql3XXhnlV XiCNVNalTMN/UOzhG/tp1v6c04Ayw+KVD0N1oaLflhSuvK2K/0KJlHsIrHNHfL/8haQA cbTjxcTVHD8OLF6Y0e1l6apswGKAv0LwBO63cXNUaDTqR1j07ypcJ7g3gW1r+WRaAs7p Itb8kzEk43DsSmLxGPPRQov+z+lvmWP4r0Y3kMhCkKRN9xKORT7aU8LnEbSBimyW85f+ w4YP94x8GwzJmQLUJg9EWaT8ma+7HHEM5yuwiAGQLescd/MAbzWsUSOF8A6LYt0LjOGI iFtQ== Sender: swupdate@googlegroups.com X-Gm-Message-State: AOAM530SjsGQzTdfG+EMGI/6esu4EPXKwIAi56tjERDsxbSo5GUKHnHW seUGxV6rbaAFYl9LAANntRo= X-Google-Smtp-Source: ABdhPJw+s1+ArJ0zsgvsRruXw8st8cT3v8OmqrDQwsraw2zxDrvLIxmxmEoP25hnv/uifiBf6xyWOw== X-Received: by 2002:a05:6512:1510:b0:445:cbc3:a51f with SMTP id bq16-20020a056512151000b00445cbc3a51fmr20523742lfb.116.1652884482539; Wed, 18 May 2022 07:34:42 -0700 (PDT) X-BeenThere: swupdate@googlegroups.com Received: by 2002:a05:6512:1693:b0:448:3742:2320 with SMTP id bu19-20020a056512169300b0044837422320ls14340508lfb.1.gmail; Wed, 18 May 2022 07:34:41 -0700 (PDT) X-Received: by 2002:ac2:4c56:0:b0:465:760:f6ad with SMTP id o22-20020ac24c56000000b004650760f6admr20427718lfk.187.1652884481236; Wed, 18 May 2022 07:34:41 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1652884481; cv=pass; d=google.com; s=arc-20160816; b=SAI1MLIFxzAeyhqvd7STwPuBnHMkSz1Y2i2+pJCD5WGSmoNBXtnTYPCKF740QUle3n AS5xLpjRKQOf45vBCmiKCOTDM/wMSPDdzs7fdOAurrpOvjbRjjpnHed0qJ7i0NmFBINF RguWkQ9irGp6OkR3m5DHkSlDjVfP1OLr2ipiNCCR2N/kOq4wasBGTw49k4Ffif4pKPV7 eSH6qfeLnbQi9BRm2SKk8kfHesrQJt3RR4ONha0PXhj+XrSDyc+uH1hKFpjpCyNCoQqf W8W/A/+n3Up4hnj7RRkMxw4dgjEc45C4dHGiYxAy7IfY4i0ydsnDdi7SofKVxyMe+o7v qSyQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:content-transfer-encoding:message-id:date:subject:cc :to:from:dkim-signature; bh=2jpRI/WNbMFBpbdo+sF3Ih48osicDK/WmUTSDZK7Q8o=; b=JqiXHneiD0/1yzBYzIfIstL8qbiA76JsxOeMF7C1uqz7qo5I9jihktYV/98f4+fxQp 7exgCEenYhW4ORpZBm62xvjxiq4IfyKHEWDKhXHxStNGZg5XCsEX2p8K9DTlQ0YDsCyy nxgKaPEgUQPm9uruVJy4e2Zb0yqrnohMSGnb+KR9J0u4X9P/dB+fAdoAPg/1OHgm+vDv BMC7mJZDPKGLtNuo4rzNbB4JetPYaRhV32VBzwq7SV0YyL3cnzhPZUs4HUypNf4s4Bhc bHfQE0fqr2l38X9RxdJohL/vr6aefUwNVixTsetXhjHDBcdgCLDjOOMFGZOm7MpCGfbY ykYw== ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=OxFVFQPy; arc=pass (i=1 spf=pass spfdomain=siemens.com dkim=pass dkdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of michael.adler@siemens.com designates 2a01:111:f400:7e1a::620 as permitted sender) smtp.mailfrom=michael.adler@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on20620.outbound.protection.outlook.com. [2a01:111:f400:7e1a::620]) by gmr-mx.google.com with ESMTPS id i25-20020a2e8659000000b0024c7f087105si114529ljj.8.2022.05.18.07.34.40 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 18 May 2022 07:34:41 -0700 (PDT) Received-SPF: pass (google.com: domain of michael.adler@siemens.com designates 2a01:111:f400:7e1a::620 as permitted sender) client-ip=2a01:111:f400:7e1a::620; ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IdQw8o0+rEJQEa2vj04mz3NXnbaT+fIjXfhoKDtkdTuINNqcF6/lm8EASTPm5mamApLUjlihdT/vrHo2E4HXs/a4vMK+pfmqXKAE0dsaYA3qs0d2PYWDvDmqIt1qWIFbWhQCjh2Li5xuzmGqhhsKKPJN3rt12Z8/GVkl9hS++R1V6SShvwikDXCK3UpKI3GqFiYBMGp5O+q69lA2zp9ux57VoAH/b661vFGevQiwr5H8z3Sqf60ZsG1owLa1CgK7iONzZ8PPWTmhvpqC20HqixR9RM3ll9UqFFMoMMC1kbDLCVKkGAlw8Y9pMPMqIPNMtygeOxy0kS/YCJBk2oGGFA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=2jpRI/WNbMFBpbdo+sF3Ih48osicDK/WmUTSDZK7Q8o=; b=WbLdDnJz+q8laJGgExtuxEIe07sz3j91GOkRxrLQbdhu5o2OKJeW9FziB/J7lAUcy+KyIp+RhycSNg8UpnmjLd/DGIhrZdxFtpsiBkZ0JsH6o7d9rPk96L6VNZGufGlMu4t6UsoitDdjLnQaIn2vmS4Sat9DXeVrsEEhE84azlLj5P4+DC8IfSbudGzbNvY5P6hkmH7xoB0QhUZdVqxDUgvubvMa2gDaP1ZQT5gku4uGYFxDbbBTPZQh0zpPCTP6y81tkdsioZM/qDmdQd/W++sIt3RVbN0eXOw5MgP8Q6Ao/8dIx81Fx2k2T3VhTSuhNos141E6NGT4PKrqq0bsZQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=siemens.com; dmarc=pass action=none header.from=siemens.com; dkim=pass header.d=siemens.com; arc=none Received: from PAXPR10MB4734.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:102:12e::15) by AM0PR10MB3283.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:17e::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.14; Wed, 18 May 2022 14:34:39 +0000 Received: from PAXPR10MB4734.EURPRD10.PROD.OUTLOOK.COM ([fe80::b4dd:8ff5:e52f:a55f]) by PAXPR10MB4734.EURPRD10.PROD.OUTLOOK.COM ([fe80::b4dd:8ff5:e52f:a55f%7]) with mapi id 15.20.5273.013; Wed, 18 May 2022 14:34:39 +0000 From: Michael Adler To: swupdate@googlegroups.com Cc: Michael Adler , Christian Storm Subject: [swupdate] [PATCH v2] swupdate-ipc: added monitor command Date: Wed, 18 May 2022 16:34:10 +0200 Message-Id: <20220518143410.578170-1-michael.adler@siemens.com> X-Mailer: git-send-email 2.36.0 X-ClientProxiedBy: AM6P193CA0097.EURP193.PROD.OUTLOOK.COM (2603:10a6:209:88::38) To PAXPR10MB4734.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:102:12e::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d2e4284d-621a-47e5-ba11-08da38db8a67 X-MS-TrafficTypeDiagnostic: AM0PR10MB3283:EE_ X-LD-Processed: 38ae3bcd-9579-4fd4-adda-b42e1495d55a,ExtAddr X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: GroQJXDrNUa8yYz+zSyHg7GXXXGp8HRCHiD6fevjSSEWwkP4oBE5KHHWixDsXel4Az8YkaFe1tjQy3U0nGYKw2XiLSjuNOEOzH/a0PUWvXKw2lEtk5WGo+nMxpNekUEvg7NR9STB0rgVdKH+OBh6TF0M3nTpdFemkOdOIDaq70R3YxTDgWkrMNFGY6mAeaXxTX0FX7UvB0oXeg7gXeFxNcHvnsUt0BG+JcEhuZdmy1DeZwayIUkxTe1zDHMN/U2asILtUwfDH6V2fWb8wPrMssfqiIjax2az6llxFUWudEs9Lg8VmYjp6NW3W7tIj2bmQLyzJ5saQ0gPC59xFqMmitJpjQYHxHf3oXyvo+aHeJPW1PSJKRslpDO+C9cMnI3BUjDtnekyCRC/ispP/mOKPruPua7Eod1vsvYOV/YEEqyHq2YJNQC7+KMhTnk3ykddUNM87uoPklb+GSxzNnEstZqfMUwvQDQh4hDf6pwdzaYM/7TggLNiMoe2BB32h4qJzqR1TyzZ1vGupItX0AcXkvRCYVaDFBLAaLulcyVQq/eDjaB009grqlH/EYK/CWqxF+QcZnzvhrgJUaF+/Q54NO0I893uH4L6V40CnRh8CV6d9m8foaoNFLx9uBqSi1dzxaDH02p5KxWH2Ab1SPrjQQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR10MB4734.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(5660300002)(6916009)(8936002)(4326008)(8676002)(54906003)(316002)(66476007)(66556008)(66946007)(2906002)(38100700002)(82960400001)(86362001)(508600001)(26005)(83380400001)(6666004)(107886003)(1076003)(6512007)(2616005)(36756003)(6506007)(186003)(44832011)(6486002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 4MXsRAF9Y246U51MKMImMaxJnkOGqeQUuWgoUqmZJTrbMcT++HiFIPqISGrl3LQcKjO+Rsg+gG8Q4wEJ08obtkNm8Fvqs14abuH/oM8aD2rCgMXcEbKAe4R5AehHw4rfGdZSGBL14yZlhaonHX0XbdsgE5bw0ByNXumizMJXcMMYzuQOrR8ojyYiJckABApO6DL4KdqZa1VFu7HC9qqHbZ0vabgRV68UcEFbxX8qP+HvZ8+2roal3GWt4mEWrYmStOXm1R5iUotyXOUf/0x/3/RtnHC+OC2S70Kyn7EeLaFmqKAMLQLQmR93L6p4260n4iODeuQH06e916ZyvmDeznLA87gAEMExQjeSweSjO70xUBCcjArJ9bZmSlXQJ5/aJhYsFz4AWi4Ul9Lru68ttTacu7BzeFpXJ9H0RGv+CTVmDZ7KxvR8wZ2g8+UQkC/iYmEhR792K9y9rdvMNNdBg4NrEYLpqgsdQkZzCqgRcRoL/IqovSRjzdhuf9ZVoyjmqcrquxrZsfQc+etsN8oQoPE6UopXjHqRxRJKN5BuN3O8NOsnl8m32SwdB6wTycd86hjxeQOWMy1JTbOye14liNTg5WpslSmKtwA6IIht+v+pnPXONOkyRtghv1zbAIfMCRDciCtSjQeeRXhjafBFzD6PcFdAFOskLnYj5FM74R7vZxC3D3M7PyJPbWb+98vb4FXIlVl2la4UxIzbq7+V6+6UAUD/99pYEkkp5rXGMEwX7ws+lZ44Yj55Ykm1Dc7TQB1UcjjWpm8Xazyz2zEGg3/i/wBLhC4d8IGqlMjLuuvOaG/Xnc9+xMksjFp6H0hdtn+DfmrsjXnoDniGSe6zy/CpJCisEdwkBQVoUQpriKtd4fyWksBp/Pxc3LmaF09SrrVFBqX8YrkX4ieY1B3YQU/TDkn+xMGU/uvLPriD+PuSU5ewAgyVYABO2WlecVdCPcZXw1GWRbp50YBN2ulOj40aIe6ZCTEIIa9rY3SwqFlBZt8MV8Tkb1eGysEMjhAJ6bJnlR982BeE5ZTbnd7BBvcufpwQYG+gEHXPKS6dqbNYQvGyh2WPReAFjZ3/m44QXNgd25LDO0ezF/u4N6Undjn/2AFTIgdUTwKCQB7e5Ea4Wu12aF610m2JPXbF2f3tG2fvhP/aWN3S5HYGF5TCqMZybYRxbJpUCjqvB/2AGjCmrlDoSomCv0i82A9jj4kuEP4NG904oUFYyD0QfNV+Q/A/tQmb5IzQdx0usUwTfuk0lUs53KAA2Xzf/T6s/4Ugg0hfuYgJkigW7NDVAj2aLQ7BTeECxERavS/z/M82tWPJaav6Brpx98pthTJSGb+HlDn5MGnu+Ou3pMPqLKa4wCZRUG4omkghnDUNKxaUU0vMrQODnnTRBKYDY3SXZ5vJ5ILiBiEFNC1iGNUUT+pYcnY4rDiYjWZTRVYpyRCGidCpjFUaz3gdGtWHoNshDtJMjitI6iCTB+fRUWLQdJjCIlTXXMRjZdVMFQr8Qh0uIWasxHw9eAdCVDboHY0xcwgMqgd7+ZRF8nJX0ZQ0wKF23IDb+d6SwsGAE0puolkJ7K1OshaJZCsvrObDYZ/zZC2LVdlrjSrhaY5u2yY6XKOL5lAk05WdqY5NDmIIXp42kEvvQRdIT2OsIOUdENsz2/I24jpcuUKZtrJXmTPsKY+98Jq1biNIX2WbtkjcJ+BxfCXIhewYU060otR9xhhAx2ANiI/fa27rdcNaUVI6FKlQAgby1OGHzbIDjFS60grCBD0= X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-Network-Message-Id: d2e4284d-621a-47e5-ba11-08da38db8a67 X-MS-Exchange-CrossTenant-AuthSource: PAXPR10MB4734.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2022 14:34:39.8799 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 38ae3bcd-9579-4fd4-adda-b42e1495d55a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: CY+7/wgmhXRCob8cWPxkMsmJES9ZbDOOGCecqCeoS8CxsRkDvgVEBO+F52EMMZKhJ63WxeFZXSIFoL033a5UKTwhZ+8uEF20103O5GZ9Ki4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR10MB3283 X-Original-Sender: Michael.Adler@siemens.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=OxFVFQPy; arc=pass (i=1 spf=pass spfdomain=siemens.com dkim=pass dkdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of michael.adler@siemens.com designates 2a01:111:f400:7e1a::620 as permitted sender) smtp.mailfrom=michael.adler@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Precedence: list Mailing-list: list swupdate@googlegroups.com; contact swupdate+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: swupdate@googlegroups.com X-Google-Group-Id: 605343134186 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , The monitor command prints all IPC messages to stdout, thus making it suitable for debugging or scripting purposes. Signed-off-by: Michael Adler Signed-off-by: Christian Storm --- tools/swupdate-ipc.c | 88 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) diff --git a/tools/swupdate-ipc.c b/tools/swupdate-ipc.c index 789649f..ce8ec10 100644 --- a/tools/swupdate-ipc.c +++ b/tools/swupdate-ipc.c @@ -83,6 +83,14 @@ static void usage_hawkbitcfg(const char *program) { ); } +static void usage_monitor(const char *program) { + fprintf(stdout,"\t %s \n", program); + fprintf(stdout, + "\t\t-s, --socket : path to progress IPC socket\n" + "\t\t-h, --help : print this help and exit\n" + ); +} + /* * Utility functions called by subcommands */ @@ -589,6 +597,85 @@ static int sysrestart(cmd_t __attribute__((__unused__)) *cmd, } #endif +static struct option monitor_options[] = { + {"help", no_argument, NULL, 'h'}, + {"socket", required_argument, NULL, 's'}, + {NULL, 0, NULL, 0} +}; + +static int monitor(cmd_t __attribute__((__unused__)) *cmd, int argc, char *argv[]) { + char *socket_path = NULL; + + /* Process options with getopt */ + int c; + while ((c = getopt_long(argc, argv, "hs:", monitor_options, NULL)) != EOF) { + switch (c) { + case 's': + free(socket_path); + socket_path = strdup(optarg); + break; + case 'h': + usage_monitor(argv[0]); + exit(0); + break; + default: + usage_monitor(argv[0]); + exit(1); + break; + } + } + + int connfd = -1; + struct progress_msg msg; + while (1) { + if (connfd < 0) { + if (!socket_path) + connfd = progress_ipc_connect(true); + else + connfd = progress_ipc_connect_with_path(socket_path, true); + } + + /* + * if still fails, try later + */ + if (connfd < 0) { + sleep(1); + continue; + } + + if (progress_ipc_receive(&connfd, &msg) <= 0) { + continue; + } + + if (msg.infolen > 0) { + /* + * check that msg is NULL terminated + */ + if (msg.infolen > sizeof(msg.info) - 1) { + msg.infolen = sizeof(msg.info) - 1; + } + msg.info[msg.infolen] = '\0'; + } + + /* + * ensure strings are null-terminated (they usually are by construction) + */ + msg.hnd_name[sizeof(msg.hnd_name) - 1] = '\0'; + msg.cur_image[sizeof(msg.cur_image) - 1] = '\0'; + + fprintf(stdout, "[{ \"magic\": %d, \"status\": %u, \"dwl_percent\": %u, \"dwl_bytes\": %llu" + ", \"nsteps\": %u, \"cur_step\": %u, \"cur_percent\": %u, \"cur_image\": \"%s\"" + ", \"hnd_name\": \"%s\", \"source\": %u, \"infolen\": %u }", + msg.magic, msg.status, msg.dwl_percent, + msg.dwl_bytes, msg.nsteps, msg.cur_step, + msg.cur_percent, msg.cur_image, msg.hnd_name, + msg.source, msg.infolen); + if (msg.infolen > 0) fprintf(stdout, ", %s]\n", msg.info); else fprintf(stdout, "]\n"); + + fflush(stdout); + } + return 0; +} /* * List of implemented commands @@ -600,6 +687,7 @@ cmd_t commands[] = { {"hawkbitcfg", hawkbitcfg, usage_hawkbitcfg}, {"gethawkbit", gethawkbitstatus, usage_gethawkbitstatus}, {"sysrestart", sysrestart, usage_sysrestart}, + {"monitor", monitor, usage_monitor}, {NULL, NULL, NULL} };