From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.3 (2019-12-06) on atuin.qyliss.net X-Spam-Level: X-Spam-Status: No, score=0.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FORGED_SPF_HELO,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS autolearn=no autolearn_force=no version=3.4.3 Received: by atuin.qyliss.net (Postfix, from userid 496) id D3A971835B; Mon, 6 Jul 2020 16:24:23 +0000 (UTC) Received: from [127.0.0.1] (localhost [IPv6:::1]) by atuin.qyliss.net (Postfix) with ESMTP id DCBC8182C9; Mon, 6 Jul 2020 16:24:18 +0000 (UTC) Received: by atuin.qyliss.net (Postfix, from userid 496) id B0EB81832C; Mon, 6 Jul 2020 16:24:16 +0000 (UTC) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12olkn2022.outbound.protection.outlook.com [40.92.23.22]) by atuin.qyliss.net (Postfix) with ESMTPS id BC14A1832B for ; Mon, 6 Jul 2020 16:24:13 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=T4Bqn708bHgWSX7/UDuaSjhC1jfMyoida41u4cnebrQxa+/ZOHmv2B1aml05RvXRrelLKbHjf0+v3QG78GPfDEvykam8K0Te7iwj+MifRgQXcT+jqBoSXlC7ODzvlRq6Z42YVi3gKGigUayTx6LL6oF3il75MOl017IVePQRStvOzjSeAqjj4w+S0aW0ITHEEzo4Yp1M+1AFuZkq4qDYkJ3H4wqjuQGyIx1dysgiV1pyTiWzgldUNpyDqdbzwcK3v5SD+RtbvcBvUVvx58gTIzQ777GqgMARrIPLYKxpN3ZxUgQY9/5wbG3kieICBxYFnLHovK8crKulK+h5MNHrSQ== 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-SenderADCheck; bh=GwSZTM/T8AP+6b5U19o3vh8A+Zj0ko9CPyK+rLfm1Tw=; b=RosrqGKNIiajC6ZRqmzuUXihsGi0DdT3wFJpwua9bTm38jyJp25jwqx7fzHWaj/BYyWK3w+rjQxe3XvHPI9pPocbbw0+z1JywZk8xw4bDo1+GsC5SJZkVb8oNnJXJqtifOOUa2CiM0aqIKfn3awJuW/tPebVpact+UCYx5MHf0Mol4D9nsrQEGJeeML2Hay5FdoLEBp3HynTFZQem3QI7PsG1wgSlZVqajl/rYp9QgmZNnHKXisIFiGoNw/rKSej3UzX0VvwghuDWhm1UYpU76hCDE4h12dDF9hNEbaeYWJySMDogITr7yWKc9qzHw7l5o/t4z0SEUvF9H20nOCVxA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GwSZTM/T8AP+6b5U19o3vh8A+Zj0ko9CPyK+rLfm1Tw=; b=WjSrg0cRcuDCdABL3a2uILiiHjOkLOddKKVgqibN2zpH7jsVF7+mchhFvQC5NFA+Y4ZmFjeq63EkUsY4Z6cZaEKWxh7IGI+hctU0ch8BG3WmiEcMil6nG6/UTgbCqE08xWyeWFo1gkIwJzOCyqM1QnoNjDcd1xpy+NG74J59GIbl5T2l0khmZpWTJUMGbfEF/2CF3+9hHQRhGOBesqpep4Ehq5Aga++grqDpn0KS0eUX1HwsMfDUE4RRk3DyAvVe9speG/B8Tls0znoq4xgZIh9ycyQXh4IVx4vLicIzY+fdv8AkE87QFq2YW8L8d+B8bjJWrL6CZnbV4bQ6SnI63A== Received: from MW2NAM12FT059.eop-nam12.prod.protection.outlook.com (2a01:111:e400:fc65::51) by MW2NAM12HT154.eop-nam12.prod.protection.outlook.com (2a01:111:e400:fc65::463) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3174.9; Mon, 6 Jul 2020 16:24:11 +0000 Received: from SJ0PR03MB5581.namprd03.prod.outlook.com (2a01:111:e400:fc65::4d) by MW2NAM12FT059.mail.protection.outlook.com (2a01:111:e400:fc65::165) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3174.9 via Frontend Transport; Mon, 6 Jul 2020 16:24:11 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:0770C9D3E9C9464C945FBA9D8098BCF2D065172D27C79AB7A7B62C07634E7C10;UpperCasedChecksum:16E2CACFBFE97CC0108D3E5A866C532E3BAF6822A523E0EBAA1D0F07EB838E0D;SizeAsReceived:7409;Count:45 Received: from SJ0PR03MB5581.namprd03.prod.outlook.com ([fe80::61c9:c99c:bd8f:cbd6]) by SJ0PR03MB5581.namprd03.prod.outlook.com ([fe80::61c9:c99c:bd8f:cbd6%8]) with mapi id 15.20.3153.029; Mon, 6 Jul 2020 16:24:10 +0000 From: Cole Helbling To: Alyssa Ross , devel@spectrum-os.org Subject: Re: [PATCH crosvm 2/2] sys_util: expand on UnixSeqpacket documentation In-Reply-To: <20200706155913.18065-2-hi@alyssa.is> References: <20200706155913.18065-1-hi@alyssa.is> <20200706155913.18065-2-hi@alyssa.is> Date: Mon, 06 Jul 2020 09:24:09 -0700 Message-ID: Content-Type: text/plain X-ClientProxiedBy: BY3PR10CA0012.namprd10.prod.outlook.com (2603:10b6:a03:255::17) To SJ0PR03MB5581.namprd03.prod.outlook.com (2603:10b6:a03:27b::20) X-Microsoft-Original-Message-ID: <87lfjwipcm.fsf@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost (67.187.170.40) by BY3PR10CA0012.namprd10.prod.outlook.com (2603:10b6:a03:255::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.21 via Frontend Transport; Mon, 6 Jul 2020 16:24:10 +0000 X-Microsoft-Original-Message-ID: <87lfjwipcm.fsf@outlook.com> X-TMN: [AU/ZrEp9wq/3AAtgPaIP9m07T3N3OLqq] X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 45 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: ff665d9b-aaf8-4fe4-36f7-08d821c903b0 X-MS-TrafficTypeDiagnostic: MW2NAM12HT154: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: rzxuHBmgPpwhKvVLKeBIXy9z6XeCWV2wqoX8fv81g0d1gbf3/RwKpVTC5jc8YU2BKbZUsPgGDvRPvxzUxv6nVIgLkz3ZJFv04Im5CVxBdS5rmGdkoJh0lPcF6dbDI+bMWmrOpLyF3WaxjSGqNIvc7hMLd9nl4t1uXqOeTd6vJgaceAFtsKT0BIc/LgTya5GbUeETbqvJH/PWH9ttHCQDJw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:0;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR03MB5581.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:;DIR:OUT;SFP:1901; X-MS-Exchange-AntiSpam-MessageData: pEDDdwaZT/oDjYxFpUL63XcujE0qhYt4dv9lqceOFqpxMrlK2KfvZLVjexo9F868201NTGVwS9SGYi5aC81YKXz4MRUWQng5mDtMfUjWOhRXZ8FGV2RmpnwNsLXh1KSMBgBbsNfZ5DJ7mCgEv/s3FA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ff665d9b-aaf8-4fe4-36f7-08d821c903b0 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jul 2020 16:24:10.8790 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: MW2NAM12FT059.eop-nam12.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW2NAM12HT154 Message-ID-Hash: GQEZ66H2BMVFZKLCPD3UHWQAMA3P27ON X-Message-ID-Hash: GQEZ66H2BMVFZKLCPD3UHWQAMA3P27ON X-MailFrom: cole.e.helbling@outlook.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header X-Mailman-Version: 3.3.1 Precedence: list List-Id: Patches and low-level development discussion Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: Alyssa Ross writes: > --- > sys_util/src/net.rs | 28 +++++++++++++++++++++++++++- > 1 file changed, 27 insertions(+), 1 deletion(-) > > diff --git a/sys_util/src/net.rs b/sys_util/src/net.rs > index 82b4f5bb0..0e1cf6e55 100644 > --- a/sys_util/src/net.rs > +++ b/sys_util/src/net.rs > @@ -197,7 +197,9 @@ impl UnixSeqpacket { > } > } > > - /// Receive data from the socket fd to a given buffer. > + /// Receive a message from the socket fd to a given buffer. The message will then > + /// be removed from the socket, whether `buf` was large enough to hold all of it or "whether or not `buf` was large enough..." sounds better, IMO. > + /// not. > /// > /// # Arguments > /// * `buf` - A mut reference to the data buffer. > @@ -205,6 +207,30 @@ impl UnixSeqpacket { > /// # Returns > /// * `usize` - The size of bytes read to the buffer. > /// > + /// # Examples > + /// > + /// ``` > + /// # fn main() -> Result<(), sys_util::Error> { > + /// # use sys_util::net::UnixSeqpacket; > + /// let (s1, s2) = UnixSeqpacket::pair()?; > + /// s1.send(b"First message")?; > + /// s1.send(b"Second message")?; > + /// s1.send(b"Third message")?; > + /// > + /// let mut buf = [0; 13]; > + /// assert_eq!(s2.recv(&mut buf)?, 13); > + /// assert_eq!(&buf, b"First message"); > + /// > + /// // Even reading into a buffer zero bytes long will consume a message. > + /// assert_eq!(s2.recv(&mut [])?, 0); > + /// > + /// let mut buf = [0; 5]; > + /// assert_eq!(s2.recv(&mut buf)?, 5); > + /// assert_eq!(&buf, b"Third"); > + /// # Ok(()) > + /// # } > + /// ``` > + /// > /// # Errors > /// Returns error when `libc::recv` failed. Returns *an* error. > pub fn recv(&self, buf: &mut [u8]) -> io::Result { > -- > 2.26.2 I love seeing docs expanded :^) Cole