From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on atuin.qyliss.net X-Spam-Level: X-Spam-Status: No, score=-4.5 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL,SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=3.4.4 Received: by atuin.qyliss.net (Postfix, from userid 496) id CB06D82EE; Fri, 19 Mar 2021 02:58:51 +0000 (UTC) Received: from [127.0.0.1] (localhost [IPv6:::1]) by atuin.qyliss.net (Postfix) with ESMTP id 598E1833E; Fri, 19 Mar 2021 02:58:42 +0000 (UTC) Received: by atuin.qyliss.net (Postfix, from userid 496) id A5E9E832F; Fri, 19 Mar 2021 02:58:40 +0000 (UTC) Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) by atuin.qyliss.net (Postfix) with ESMTPS id 5F998832E for ; Fri, 19 Mar 2021 02:58:38 +0000 (UTC) Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 8734E5C0116 for ; Thu, 18 Mar 2021 22:58:37 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Thu, 18 Mar 2021 22:58:37 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alyssa.is; h= from:to:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=fm2; bh=rxZNVtP4CgAkU PoXNYFIJYnRUcf0CmCmTS6gY07zjIM=; b=rkqE6aSUu4g9o/cp6TzVjBPeENNVp gMq2n97LIivD23sOYkUr/tiiG42PHvMg8iqsasDpAWVXfSbBCVVQZ0+X32J/EBkb P21krI/aFZ9fqPnAO3iTJLD6r3c7jI6fWxQ5BS/9JdYaaoEvp5PIgO1x0jvDujSX VighiWF9YKpE7oILBVMfDXxpFZZRbr943QR95EZhWrGTax2/uPDg3DCI021atEOL iRq9qFPQOSVjG9YL4XX1BQR97fHGmfL3RE+m0oqk4NH/7sX/YdMZ3d6QrNaSyRaq mfgYysExSFxNbh5pwEGv39NlwnSr+TAXNavj85X+jaImqMV21z6wXeMOA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=rxZNVtP4CgAkUPoXNYFIJYnRUcf0CmCmTS6gY07zjIM=; b=sM7i/x2V UrFUaWQb12MVeEByVRjcVHckBUpI00BaOD1aNjehlpC8gbm36LVLwAi7CDVeo7u1 rGOrf4zTyneraZPWpZcPBUTzAcIdw7aXY1nrPCP1mxKI5RFUosXWW817woYFMe8b GZIS+BTpI7XmzVj2qiJyS1dzf1AlfTNpP/7XPgIFpXUkqMfCxiT2bpI6woa0Wj9U 4M5RU/Q3MQOLyFJUUVVhxclqteTzXq/h3GBygSufMNDKDj+L/+6/THh+h2lfLuhu u3grjudpUPhPkEIbKtL0SuSh3E9t0DFMEgTibIUyzTsPokdZdoQQqGncmgakeoZ0 wSiz9vZClBNvUQ== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudefjedghedvucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefhvffufffkofgjfhgggfestdekre dtredttdenucfhrhhomheptehlhihsshgrucftohhsshcuoehhihesrghlhihsshgrrdhi sheqnecuggftrfgrthhtvghrnhepgfefudekvdelieelledufeevheeglefggedvudejvd dtffeuueevffehleejkedvnecukfhppeekgedrudekgedrvdefvddrudektdenucevlhhu shhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehqhihlihhsshesgi dvvddtrdhqhihlihhsshdrnhgvth X-ME-Proxy: Received: from x220.qyliss.net (p54b8e8b4.dip0.t-ipconnect.de [84.184.232.180]) by mail.messagingengine.com (Postfix) with ESMTPA id 174171080057 for ; Thu, 18 Mar 2021 22:58:37 -0400 (EDT) Received: by x220.qyliss.net (Postfix, from userid 1000) id 9213A1F09; Fri, 19 Mar 2021 02:58:35 +0000 (UTC) From: Alyssa Ross To: devel@spectrum-os.org Subject: [PATCH ucspi-vsock 1/7] vsock: get cid and port instead of just cid Date: Fri, 19 Mar 2021 02:56:43 +0000 Message-Id: <20210319025648.17925-1-hi@alyssa.is> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20210319025349.8839-2-hi@alyssa.is> References: <20210319025349.8839-2-hi@alyssa.is> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Message-ID-Hash: WWJSZN43IL5KQXIDWQIDX7R5EDOA7EEX X-Message-ID-Hash: WWJSZN43IL5KQXIDWQIDX7R5EDOA7EEX X-MailFrom: qyliss@x220.qyliss.net 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: We can get both in the same system call, so we might as well, rather than having two different functions that make the system call twice. --- When we introduce vsockserverd, it will have to be able to figure out both of these values for the socket it is given to be able to set VSOCKLOCALCID and VSOCKLOCALPORT. vsock.c | 9 ++++++--- vsock.h | 5 +++-- vsockserver.c | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/vsock.c b/vsock.c index e6a173c..99945c3 100644 --- a/vsock.c +++ b/vsock.c @@ -1,5 +1,5 @@ // SPDX-License-Identifier: GPL-2.0-or-later -// SPDX-FileCopyrightText: 2020 Alyssa Ross +// SPDX-FileCopyrightText: 2020-2021 Alyssa Ross #define _GNU_SOURCE @@ -62,7 +62,7 @@ int vsock_open(uint32_t cid, uint32_t port) return fd; } -int vsock_get_port(int fd, uint32_t *port) +int vsock_get_cid_and_port(int fd, uint32_t *cid, uint32_t *port) { struct sockaddr_vm addr; socklen_t addrlen = sizeof addr; @@ -70,7 +70,10 @@ int vsock_get_port(int fd, uint32_t *port) if (getsockname(fd, (struct sockaddr *)&addr, &addrlen) == -1) return -1; - *port = addr.svm_port; + if (cid) + *cid = addr.svm_cid; + if (port) + *port = addr.svm_port; return 0; } diff --git a/vsock.h b/vsock.h index e7d66c9..e7ffd62 100644 --- a/vsock.h +++ b/vsock.h @@ -1,5 +1,5 @@ // SPDX-License-Identifier: GPL-2.0-or-later -// SPDX-FileCopyrightText: 2020 Alyssa Ross +// SPDX-FileCopyrightText: 2020-2021 Alyssa Ross #include @@ -9,4 +9,5 @@ int vsock_accept(int sockfd, uint32_t *cid, uint32_t *port); int vsock_connect(int fd, uint32_t cid, uint32_t port); int vsock_open(uint32_t cid, uint32_t port); -int vsock_get_port(int fd, uint32_t *port); +// `cid' and `port' can be null. +int vsock_get_cid_and_port(int fd, uint32_t *cid, uint32_t *port); diff --git a/vsockserver.c b/vsockserver.c index df9d334..58cd063 100644 --- a/vsockserver.c +++ b/vsockserver.c @@ -80,7 +80,7 @@ int main(int argc, char *argv[]) diee(EX_OSERR, "listen"); if (lport == VMADDR_PORT_ANY) - if (vsock_get_port(fd, &lport) == -1) + if (vsock_get_cid_and_port(fd, NULL, &lport) == -1) diee(EX_OSERR, "getsockname"); if (notify) { -- 2.30.0