From nobody Fri Aug 1 17:10:55 2025 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4btst15f8cz62sYR; Fri, 01 Aug 2025 17:11:05 +0000 (UTC) (envelope-from phil@juniper.net) Received: from mx0b-00273201.pphosted.com (mx0a-00273201.pphosted.com [208.84.65.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "*.pphosted.com", Issuer "Sectigo RSA Organization Validation Secure Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4btst04VcFz472y; Fri, 01 Aug 2025 17:11:04 +0000 (UTC) (envelope-from phil@juniper.net) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=juniper.net header.s=PPS1017 header.b=0+wVOYzM; dkim=none ("invalid DKIM record") header.d=juniper.net header.s=selector1 header.b=hN+adVa1; spf=pass (mx1.freebsd.org: domain of phil@juniper.net designates 208.84.65.16 as permitted sender) smtp.mailfrom=phil@juniper.net; dmarc=pass (policy=reject) header.from=juniper.net; arc=pass ("microsoft.com:s=arcselector10001:i=1") Received: from pps.filterd (m0108157.ppops.net [127.0.0.1]) by mx0a-00273201.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 571Fn8Et017757; Fri, 1 Aug 2025 10:11:03 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=PPS1017; bh=+/ v3UTYI56ONzRGwB5VthAwS3SJ97jpdAvpqxHScy7w=; b=0+wVOYzM95cq2Gm5Ud dW7V9uIqFWShPsu0RJT03kncqVoIyUwsisBgydeXz75Y5JG2PeWuKr87+ARk6rK4 nmITE6d21ed7vgM4Qo1Mb83qQmBabgqxoj+AsJjKBCSygiftC7G1qQeEBn6Bmbei wkUiDa9KPc+rqpZ52Ri9hLKMRbki0wX0MjGBHFrYIG0WKP8fNH/PhxcquiStwtXY 5JvUrIjXzhdBV4vMMwXbsaD1njHMBiKq5TAJX4QM3r9QdKsyjTZqjZlepzmOEuKs rA2vFM0NcLLMNnfL+AKCbLSVeM0549adIk3u7HOp+WO+qjr2daxz8/1ndQ15VIcf 8vMQ== Received: from sj2pr03cu001.outbound.protection.outlook.com (mail-westusazon11022106.outbound.protection.outlook.com [52.101.43.106]) by mx0a-00273201.pphosted.com (PPS) with ESMTPS id 488ssjs2ky-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 01 Aug 2025 10:11:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=e7jOHAlQIzw7ZTPJOMQoXqNtdyT5mxA2jI2Hl85YHf6RsyS/iktsrsFOOjMnlekspOb7r9/EqWWDRhBCibbLd8Ic/Aj7WmS1b/LIUrYPdgnhVBZ+z+kMEKKmfcUeZX/ymLjyWG0WEOISncjWaAe+1vXG5EDSz+fXWL5GYsyfLPUALBrja+9h30TkqkErMX4ab559x52JyQTr8pnHqGkxTPd70RrW2fHMzFq2mIFz88PpMB49mCLWQnVVNXwVGhP5nNPsRq4Z4/NnVcPxdGf+JiPyR364g4P1ZNWS9XSOgzIHnyjgaNS3AGq91kk5bArDNrOuDldvX5QSrChaLynLtg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=+/v3UTYI56ONzRGwB5VthAwS3SJ97jpdAvpqxHScy7w=; b=G+wiUXPKblZLF/uYx/H4dvQV39uxPjEj7Zf2nYBz8UjalWRo/YB6iNhakb3PkqPqyhj4dNI6oCLJAX7y2PE7mP8flLP+D+q/dYbRGGL9b7lYaGXR05H4Pe5fTond9LX3cTNSrpr8E+HElzyhWNkCy5Sq8l6/vgkJAzA1y5/xbFL5nlYfCvzfm39B+PjcuBTbTTYG2zCC/8RsxGY6qKWKn1nSsB4/EHuXFKOg5lemdIDVKeSMoaaLgk5Y55GLtw5RZhKpIUA1cf/nC742UJQEk9H0fVQZC/Nvp5051p5tUxtnewdXXZCVdMZl2+b93BLeDipT93JblHKlHm10/64Tpg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=softfail (sender ip is 66.129.239.15) smtp.rcpttodomain=freebsd.org smtp.mailfrom=juniper.net; dmarc=fail (p=reject sp=reject pct=100) action=oreject header.from=juniper.net; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+/v3UTYI56ONzRGwB5VthAwS3SJ97jpdAvpqxHScy7w=; b=hN+adVa1PFedn7Kc2BZQmPS2iY2iPTjUEmFsEENwL/Zgoc7agU+cHjUMlREbvuPeTmhajU0Ax9Rr0B9V2Hoq8YZd0+KVFTinnEJVqCZN9F7QLoA/X0r9k7VOGhayqL1m6BiQwgt5BFaXwkgRTwdJ67+EQb7ETBduxSL9MSwkv+M= Received: from PH8PR05CA0013.namprd05.prod.outlook.com (2603:10b6:510:2cc::13) by SA1PR05MB7918.namprd05.prod.outlook.com (2603:10b6:806:1a4::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.14; Fri, 1 Aug 2025 17:11:00 +0000 Received: from CY4PEPF0000EE39.namprd03.prod.outlook.com (2603:10b6:510:2cc:cafe::19) by PH8PR05CA0013.outlook.office365.com (2603:10b6:510:2cc::13) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9009.8 via Frontend Transport; Fri, 1 Aug 2025 17:11:00 +0000 X-MS-Exchange-Authentication-Results: spf=softfail (sender IP is 66.129.239.15) smtp.mailfrom=juniper.net; dkim=none (message not signed) header.d=none;dmarc=fail action=oreject header.from=juniper.net; Received-SPF: SoftFail (protection.outlook.com: domain of transitioning juniper.net discourages use of 66.129.239.15 as permitted sender) Received: from p-exchfe-eqx-02.jnpr.net (66.129.239.15) by CY4PEPF0000EE39.mail.protection.outlook.com (10.167.242.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.8 via Frontend Transport; Fri, 1 Aug 2025 17:10:59 +0000 Received: from p-exchbe-eqx-02.jnpr.net (10.104.9.15) by p-exchfe-eqx-02.jnpr.net (10.104.9.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Fri, 1 Aug 2025 12:10:58 -0500 Received: from p-mailhub01.juniper.net (10.104.20.6) by p-exchbe-eqx-02.jnpr.net (10.104.9.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14 via Frontend Transport; Fri, 1 Aug 2025 12:10:58 -0500 Received: from idleski.juniper.net (idleski.juniper.net [172.25.4.10]) by p-mailhub01.juniper.net (8.14.4/8.11.3) with ESMTP id 571HAvau013125; Fri, 1 Aug 2025 10:10:58 -0700 (envelope-from phil@juniper.net) Received: from [10.0.0.3] (localhost [127.0.0.1]) by idleski.juniper.net (8.18.1/8.18.1) with ESMTP id 571HBCaa002316; Fri, 1 Aug 2025 13:11:12 -0400 (EDT) (envelope-from phil@juniper.net) From: Phil Shafer To: Alan Somers CC: , , Subject: Re: git: 7b35b4d19630 - main - sockstat: add libxo support Date: Fri, 1 Aug 2025 13:10:55 -0400 X-Mailer: MailMate (1.14r5937) Message-ID: <8F928557-328D-46E9-BB53-BDE216693BFC@juniper.net> In-Reply-To: <202507302027.56UKRhb5011315@gitrepo.freebsd.org> References: <202507302027.56UKRhb5011315@gitrepo.freebsd.org> List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000EE39:EE_|SA1PR05MB7918:EE_ X-MS-Office365-Filtering-Correlation-Id: 3a023290-e152-45a1-1906-08ddd11e62df X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|36860700013|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?1WsJVGagiRQo9HZ9TNT/aLjgNMzR8wJI0K+nZaObX12b4J7RHhXnGEuYi1tH?= =?us-ascii?Q?6SpPHd5GfKmA8ETB5InKW4j6KPN2ioJ//um+FsHvhqe2OURU9/wFi2RRnhR0?= =?us-ascii?Q?nrFpuDCoqNPvrvmP+PSQB5tWt8iiJS1Cjhmo9WoO15OMH/uyKFssdBOboxwX?= =?us-ascii?Q?fPm8yUsVKzrDjiEl3AbZoH3rLAnr57Wk+GUTEBS+ggAN4/Y1vMmH0kr63L7R?= =?us-ascii?Q?thf+C0Ae/Wu/kXSnJU0WoNcBLPhs3p5NfdIroS+H8UBdAGHlNo73/TReeT/n?= =?us-ascii?Q?LAK7wO7ftoW3+rvlSW2W1KMRYJtZYxabKGiH4Zl66+wXeVYROGk3TvKrtvSh?= =?us-ascii?Q?M3Ju0rqzNsyA5ZB3bfTiv/9bDzO6i/A3bp1dcsvVh6pBWkYKCDH/d0s2w5ms?= =?us-ascii?Q?USfjzn6yfKBDUR7+devHwH1nVOtdVlXN8IDwFvyn507qQ+NPnih8hTZbJHvd?= =?us-ascii?Q?j1l/FEZX70vTT1+XZxce/wDqO+WC9YKtAQDDsqcKvFb0eu+LNFUWp5YdHdzg?= =?us-ascii?Q?ZzD8dT2o1/NN6QRf/UOKMxlT+Oy7w6gnOJiyyli/+E+Y38OPVE39L6S6/7aV?= =?us-ascii?Q?6NM3QxVskWv3+k2I7HAjAP3FRBY3cNU/0aXvVqXgcPvPtvdAaDzVz54Nn8ML?= =?us-ascii?Q?Tnx2SgXQMzipBCwJouV7sGkFcVQbdH6PkE+noFKoH/rk1EzL1ssWjKad+Ck3?= =?us-ascii?Q?oCxCvzbpvVMPLV0RztQUFEF/ulSznbY+wTCpvvRthMnCzvWMOxcXtIFbHGKk?= =?us-ascii?Q?/JmqAmE5lCK4HR/ro7tAOfmUljHXLCoV+UQQaVnbrTe2MiCOMh17t5R72zNd?= =?us-ascii?Q?KQSY6N6gq2BOt19jFoebYY8y9wg/xNWO5uQeTK2TtFUYv7tCDW2TGamyvtW/?= =?us-ascii?Q?63c8brd/XzXbBDFjNN4WA/f4T5T1IDNyCHOxMXFQcYRR0EfqfaAAj1FwDo0C?= =?us-ascii?Q?Wta3Ck3FGImTSCAKpB51BTLqaDWGWuWHdmfzfzpwbYNd11J8rsK+54LByRLS?= =?us-ascii?Q?M4JYbzr4BVcW23pOI4Kf5TohzbWVhGGrmjZca/h3x4KDVQ+4d10Za9mx8f4v?= =?us-ascii?Q?3AUAVWTqzFhCHKfVIXi92b7gcGvq7FeCkM0uG9N3lDEukLs7dtuOlKfrDpT8?= =?us-ascii?Q?EB315dPEY7sYC9AULQCeEr0t3LWNgxJ399CEjqYO3VuNPgH+HcFYI3pWD1VJ?= =?us-ascii?Q?f/X5U11wAEb5zv/KU/MfTeAEMIx0+I0ubfSDKTeT7RxGsEGx+POeg86B0Dyx?= =?us-ascii?Q?UiLv6iYiBt3yN2njOksPN8GaZAdiLTx2RrDxUJsa6QqHFFsqw+rexlYxIAr8?= =?us-ascii?Q?HhbzLNxFYXYNUY7P2vfGOdCZYOLVoATSaM7XrZnahOz3gGnaekJzDumT6Kk0?= =?us-ascii?Q?CGA+IQY7fN4XHtzAQ5mntqFm44tGTqLWFh1rEfrU+mfbR0Exf9vd8ScXt5x3?= =?us-ascii?Q?V+zUgW6+aqHTKUQmUt/BFi8B/Lu2QdZb9ZTi36UBct7un1kVaWps+ZHQ+5n2?= =?us-ascii?Q?cCi9pWbPmVXP19bqJJgeaX6X3TSigHRpC7ZW?= X-Forefront-Antispam-Report: CIP:66.129.239.15;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:p-exchfe-eqx-02.jnpr.net;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1102; X-OriginatorOrg: juniper.net X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Aug 2025 17:10:59.3889 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3a023290-e152-45a1-1906-08ddd11e62df X-MS-Exchange-CrossTenant-Id: bea78b3c-4cdb-4130-854a-1d193232e5f4 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=bea78b3c-4cdb-4130-854a-1d193232e5f4;Ip=[66.129.239.15];Helo=[p-exchfe-eqx-02.jnpr.net] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000EE39.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR05MB7918 X-Authority-Analysis: v=2.4 cv=bOUWIO+Z c=1 sm=1 tr=0 ts=688cf526 cx=c_pps a=6iYJ5OEDqVuPLaleVyjC8A==:117 a=YQU41r7WENJiSYrYYNJVsQ==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=h8e1o3o8w34MuCiiGQrqVE4VwXA=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=2OwXVqhp2XgA:10 a=s63m1ICgrNkA:10 a=rhJc5-LppCAA:10 a=2a77PQvT4v1nvKM8looA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODAxMDEzMyBTYWx0ZWRfX9MH41BT0ZtvO lttZSuWmTQQoQoN+3uGLz/Dh8/g8tAtV+fV+ygjpIR58aRLNUhe73UVIhqyKZUowcymWRpkqqOY hNH+AYtl7NGU0VMcgvkvDiC/mxgAqxGRcQD+vRE2LAzFq45A8HFG55et4dVzwo9tm0GC4jjWDdG ri58AFhZvdCcZqW96stilW0hHNQBG8JBw+bbuY/BPp2Q1mligMLXQYCLttDWKTGkxffEVHjG+dJ AwTF8E+gzBh36SHFwTgignCalff2T7YpMlE28MZDx5RNkTA+f19bvLCtfD82Ybdjev6vzqVh3R0 r2NHMyM26VoZub1z1soIA0Mz7Ly5Eia1IX7qqtnZgi5xERory83Gc4YehxQLM1/CS33zrBoFvYS oTcoPISQy3t43SsHlbQB2Tt6ePlUnkBzgO1hrgCOdBRfdVRRLtmjV9xLReH6Z0nIunvjb8MZ X-Proofpoint-ORIG-GUID: wbwsFf0NeyNKfXR4NgM2o8XSdsxc-YOE X-Proofpoint-GUID: wbwsFf0NeyNKfXR4NgM2o8XSdsxc-YOE X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-01_05,2025-08-01_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 clxscore=1011 adultscore=0 mlxscore=0 lowpriorityscore=0 mlxlogscore=999 priorityscore=1501 malwarescore=0 phishscore=0 impostorscore=0 bulkscore=0 suspectscore=0 spamscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2508010133 X-Spamd-Result: default: False [-4.60 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_LONG(-1.00)[-1.000]; ARC_ALLOW(-1.00)[microsoft.com:s=arcselector10001:i=1]; NEURAL_HAM_SHORT(-1.00)[-0.998]; DMARC_POLICY_ALLOW(-0.50)[juniper.net,reject]; R_MISSING_CHARSET(0.50)[]; R_DKIM_ALLOW(-0.20)[juniper.net:s=PPS1017]; R_SPF_ALLOW(-0.20)[+ip4:208.84.65.16]; RCVD_IN_DNSWL_LOW(-0.10)[208.84.65.16:from]; MIME_GOOD(-0.10)[text/plain]; RCVD_TLS_LAST(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; R_DKIM_PERMFAIL(0.00)[juniper.net:s=selector1]; TO_DN_SOME(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_TRACE(0.00)[0:+]; DKIM_TRACE(0.00)[juniper.net:+,juniper.net:~]; RCPT_COUNT_THREE(0.00)[4]; MLMMJ_DEST(0.00)[dev-commits-src-main@freebsd.org,dev-commits-src-all@freebsd.org]; ASN(0.00)[asn:26211, ipnet:208.84.65.0/24, country:US]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; FREEFALL_USER(0.00)[phil]; DKIM_MIXED(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[52.101.43.106:received]; RCVD_COUNT_SEVEN(0.00)[9] X-Rspamd-Queue-Id: 4btst04VcFz472y X-Spamd-Bar: ---- This looks good. Some issues below: On 30 Jul 2025, at 16:27, Alan Somers wrote: > @@ -1345,65 +1380,104 @@ display_sock(struct sock *s, struct col_widths= *cw, char *buf, size_t bufsize) > ... >> + } else if (laddr->address.ss_len =3D=3D 0 && > + faddr->conn =3D=3D 0 && is_text_style) = { > + xo_emit(" {:/%-*.*s}", cw->local_addr, > + cw->local_addr, "(not connected= )"); > + } else if (is_text_style) { > + xo_emit(" {:/%-*.*s}", cw->local_addr, > + cw->local_addr, "??"); > + } These calls are missing a field name; you should have seen warning for th= is, something like: foo: missing field name: %-*.*s ?? You'll need something like "{:local-address/%*.*s}". Please be sure to test with "--libxo:W", which will report many issues. = Also there's "xolint" for checking source code. Longer term, I'd like to make some sort of clang plugin to report formatt= ing issues at build time. > @@ -1436,47 +1510,52 @@ display_sock(struct sock *s, struct col_widths = *cw, char *buf, size_t bufsize) > s->proto =3D=3D IPPROTO_TCP) { > switch (s->proto) { > case IPPROTO_SCTP: > - printf(" %-*s", cw->con= n_state, > - sctp_conn_state(s->= state)); > + xo_emit(" {:path-state/= %-*s}", > + cw->path_state,= > + sctp_path_state= ( > + faddr->= state)); > break; Is the change from conn_state to path_state intentional? > + if (xo_get_style(NULL) =3D=3D XO_STYLE_TEXT) { > + cw =3D (struct col_widths) { > ... Here and elsewhere: when you check for XO_STYLE_TEXT for formatting, you'= ll also care about XO_STYLE_HTML and other future styles. I have a funct= ion in libxo that's currently private/static: /* * Indicate if the style is an "encoding" one as opposed to a "display" = one. */ static int xo_style_is_encoding (xo_handle_t *xop) { if (xo_style(xop) =3D=3D XO_STYLE_JSON || xo_style(xop) =3D=3D XO_STYLE_XML || xo_style(xop) =3D=3D XO_STYLE_SDPARAMS || xo_style(xop) =3D=3D XO_STYLE_ENCODER) return TRUE; return FALSE; } I can make that public, allowing you to say "if (!xo_style_is_encoding(NU= LL)) { ... }", but for now, you'll need to explicitly test for XO_STYLE_H= TML. > + xo_error( > +"usage: sockstat [--libxo] [-46ACcfIiLlnqSsUuvw] [-j jid] [-p ports]\n= " > +" [-P protocols]\n"); > + exit(1); I don't have a real convention for this, but maybe "[--libxo ...]" would = convey that there's content with the option? Thanks, Phil