From nobody Wed May 15 04:47:22 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1676929829; cv=none; d=zohomail.com; s=zohoarc; b=jRQorMcQTU079ujzRW8qzBJ4PvNJvjwADbOnG89oINkXgI2L7neKtvlqlL8zD6eq5Nw29/7IrgMReV0nAvDTpv/RaHujYZftzEPIPai+LjG6qw7BxuFRErS5ZDWLq+jF7YKdfIKh3zdCznFKA1U6F1fyBHUPrNuSK7w6nBPvr3w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676929829; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=tjjwd784Y94WrzQQX5HuuQunV9l5Ak3IUG0XDnxdkl4=; b=f5jPoDI7MRhFK7sYnBLkrwmpdXN/vc+SyTWt8XWw0zdxo60GDHelE78uUFcWjHtoNha/rOTxxIplapqSHjfQJEM40dDFF8Kqo6I16z0zV7mWkO7NI9SQVfqIdR4P9z7Aa+JOq5pxExj8RHogrfFsl1H9j7pG+35rCCKrvRF0m4o= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676929829563817.0039687830775; Mon, 20 Feb 2023 13:50:29 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUE28-0003ON-TM; Mon, 20 Feb 2023 16:49:17 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUE25-0003O5-8s for qemu-devel@nongnu.org; Mon, 20 Feb 2023 16:49:14 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUE22-0007vN-FZ for qemu-devel@nongnu.org; Mon, 20 Feb 2023 16:49:11 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-191-aV9EnTwiNJWc9AUkPnL0Fw-1; Mon, 20 Feb 2023 16:49:08 -0500 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 01AD3802D19; Mon, 20 Feb 2023 21:49:08 +0000 (UTC) Received: from localhost (unknown [10.39.208.3]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7C7D7492B04; Mon, 20 Feb 2023 21:49:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676929749; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=tjjwd784Y94WrzQQX5HuuQunV9l5Ak3IUG0XDnxdkl4=; b=LkNxWgReI1TnT+Rmhr3RHcQ/Q1OnURyE5qRMvv4I3AhcOh3iS/DBqH1DIDlsB86WQd5Ye3 ZSX6Rz6/mKHcJnzdv3URShr/sNs16O//67RzbrP/TXw3KWjj9ZWsvB5esIGuUQp1TI4PEj H7DUKiWkORSlaZ/C+m7ilSfh5Y3d/YA= X-MC-Unique: aV9EnTwiNJWc9AUkPnL0Fw-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Michael Roth , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Joel Stanley , Jason Wang , qemu-block@nongnu.org, Markus Armbruster , Thomas Huth , qemu-arm@nongnu.org, Stefan Berger , Laurent Vivier , Samuel Thibault , Stefan Weil , Fam Zheng , Paolo Bonzini , Kevin Wolf , Hanna Reitz , Stefan Hajnoczi , Peter Maydell , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v2 01/15] util: drop qemu_fork() Date: Tue, 21 Feb 2023 01:48:45 +0400 Message-Id: <20230220214859.3792171-2-marcandre.lureau@redhat.com> In-Reply-To: <20230220214859.3792171-1-marcandre.lureau@redhat.com> References: <20230220214859.3792171-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.9 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=marcandre.lureau@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1676929832145100003 From: Marc-Andr=C3=A9 Lureau Fortunately, qemu_fork() is no longer used since commit a95570e3e4d6 ("io/command: use glib GSpawn, instead of open-coding fork/exec"). (GSpawn uses posix_spawn() whenever possible instead) Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Daniel P. Berrang=C3=A9 --- include/qemu/osdep.h | 14 --------- util/oslib-posix.c | 70 -------------------------------------------- util/oslib-win32.c | 9 ------ 3 files changed, 93 deletions(-) diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h index 88c9facbf2..f68b5d8708 100644 --- a/include/qemu/osdep.h +++ b/include/qemu/osdep.h @@ -665,20 +665,6 @@ void qemu_prealloc_mem(int fd, char *area, size_t sz, = int max_threads, */ char *qemu_get_pid_name(pid_t pid); =20 -/** - * qemu_fork: - * - * A version of fork that avoids signal handler race - * conditions that can lead to child process getting - * signals that are otherwise only expected by the - * parent. It also resets all signal handlers to the - * default settings. - * - * Returns 0 to child process, pid number to parent - * or -1 on failure. - */ -pid_t qemu_fork(Error **errp); - /* Using intptr_t ensures that qemu_*_page_mask is sign-extended even * when intptr_t is 32-bit and we are aligning a long long. */ diff --git a/util/oslib-posix.c b/util/oslib-posix.c index 77d882e681..760390b31e 100644 --- a/util/oslib-posix.c +++ b/util/oslib-posix.c @@ -583,76 +583,6 @@ char *qemu_get_pid_name(pid_t pid) } =20 =20 -pid_t qemu_fork(Error **errp) -{ - sigset_t oldmask, newmask; - struct sigaction sig_action; - int saved_errno; - pid_t pid; - - /* - * Need to block signals now, so that child process can safely - * kill off caller's signal handlers without a race. - */ - sigfillset(&newmask); - if (pthread_sigmask(SIG_SETMASK, &newmask, &oldmask) !=3D 0) { - error_setg_errno(errp, errno, - "cannot block signals"); - return -1; - } - - pid =3D fork(); - saved_errno =3D errno; - - if (pid < 0) { - /* attempt to restore signal mask, but ignore failure, to - * avoid obscuring the fork failure */ - (void)pthread_sigmask(SIG_SETMASK, &oldmask, NULL); - error_setg_errno(errp, saved_errno, - "cannot fork child process"); - errno =3D saved_errno; - return -1; - } else if (pid) { - /* parent process */ - - /* Restore our original signal mask now that the child is - * safely running. Only documented failures are EFAULT (not - * possible, since we are using just-grabbed mask) or EINVAL - * (not possible, since we are using correct arguments). */ - (void)pthread_sigmask(SIG_SETMASK, &oldmask, NULL); - } else { - /* child process */ - size_t i; - - /* Clear out all signal handlers from parent so nothing - * unexpected can happen in our child once we unblock - * signals */ - sig_action.sa_handler =3D SIG_DFL; - sig_action.sa_flags =3D 0; - sigemptyset(&sig_action.sa_mask); - - for (i =3D 1; i < NSIG; i++) { - /* Only possible errors are EFAULT or EINVAL The former - * won't happen, the latter we expect, so no need to check - * return value */ - (void)sigaction(i, &sig_action, NULL); - } - - /* Unmask all signals in child, since we've no idea what the - * caller's done with their signal mask and don't want to - * propagate that to children */ - sigemptyset(&newmask); - if (pthread_sigmask(SIG_SETMASK, &newmask, NULL) !=3D 0) { - Error *local_err =3D NULL; - error_setg_errno(&local_err, errno, - "cannot unblock signals"); - error_report_err(local_err); - _exit(1); - } - } - return pid; -} - void *qemu_alloc_stack(size_t *sz) { void *ptr, *guardpage; diff --git a/util/oslib-win32.c b/util/oslib-win32.c index 07ade41800..528c9ee156 100644 --- a/util/oslib-win32.c +++ b/util/oslib-win32.c @@ -283,15 +283,6 @@ char *qemu_get_pid_name(pid_t pid) } =20 =20 -pid_t qemu_fork(Error **errp) -{ - errno =3D ENOSYS; - error_setg_errno(errp, errno, - "cannot fork child process"); - return -1; -} - - #undef connect int qemu_connect_wrap(int sockfd, const struct sockaddr *addr, socklen_t addrlen) --=20 2.39.1 From nobody Wed May 15 04:47:22 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1676929957; cv=none; d=zohomail.com; s=zohoarc; b=eU7d1mDY4GUlnC9Iz6ZX0Pd1cR7gOojPucK+jbFxJRGNPi7GfBuXoneNg2QKsCdojOLghAyQ6qLYsSV5wb97G2dcgK0CpGv5+kBSkpdxcks+vyq0X0JBIt1SIVdVsZ6Nw3JqQbHFL8B5NgDkpPr8VqdNytrrWe+OJw4m3tqToDg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676929957; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=EQ8M4aX+QWWlZXZZbJUi30Zbn7lBVH74znn3hPM3Y5U=; b=bXFdxhA6Oue/hKSKQVSZv1SiAeu/304K42+8ZCjNl1mOcDd+0Ig0YmanGFIm5DLuvCUI0j8yrjkioccq0pgNkU4k675dx5UMMssxDFFqzC4Eg90G1uRq44hxOf1Gvv+VNsRR4OZJEqcIZnNPDl304uVQ3PF8qh7P9K1LsxKQBFY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 16769299573261007.2414371079303; Mon, 20 Feb 2023 13:52:37 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUE2E-0003Qi-FQ; Mon, 20 Feb 2023 16:49:23 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUE2D-0003Pp-3a for qemu-devel@nongnu.org; Mon, 20 Feb 2023 16:49:21 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUE2A-0007wW-KA for qemu-devel@nongnu.org; Mon, 20 Feb 2023 16:49:19 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-591-GBy8pHzSNH-6LjAgvtk2jg-1; Mon, 20 Feb 2023 16:49:12 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 04D0085A588; Mon, 20 Feb 2023 21:49:12 +0000 (UTC) Received: from localhost (unknown [10.39.208.3]) by smtp.corp.redhat.com (Postfix) with ESMTP id 43D542166B26; Mon, 20 Feb 2023 21:49:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676929758; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=EQ8M4aX+QWWlZXZZbJUi30Zbn7lBVH74znn3hPM3Y5U=; b=Wd+GSy+zHtLcORs2X5k4u/nkTnhUSU/pKUriur2AHdmCE6ZdZ36ba+tmjMkIwslhH/Cxj+ 71NMLp2oqaqR+V6OtLqM78jEumPjTyzRdYLdxaoEl18eulSEtGZobeBC7Oki6ToZ9lLH+N 7O/QXo490iGQRikEhdpBwmzF7Tjey64= X-MC-Unique: GBy8pHzSNH-6LjAgvtk2jg-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Michael Roth , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Joel Stanley , Jason Wang , qemu-block@nongnu.org, Markus Armbruster , Thomas Huth , qemu-arm@nongnu.org, Stefan Berger , Laurent Vivier , Samuel Thibault , Stefan Weil , Fam Zheng , Paolo Bonzini , Kevin Wolf , Hanna Reitz , Stefan Hajnoczi , Peter Maydell , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v2 02/15] tests: use closesocket() Date: Tue, 21 Feb 2023 01:48:46 +0400 Message-Id: <20230220214859.3792171-3-marcandre.lureau@redhat.com> In-Reply-To: <20230220214859.3792171-1-marcandre.lureau@redhat.com> References: <20230220214859.3792171-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.6 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=marcandre.lureau@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1676929959238100002 From: Marc-Andr=C3=A9 Lureau Because they are actually sockets... Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Thomas Huth --- tests/unit/socket-helpers.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/unit/socket-helpers.c b/tests/unit/socket-helpers.c index eecadf3a3c..914b3aa0cf 100644 --- a/tests/unit/socket-helpers.c +++ b/tests/unit/socket-helpers.c @@ -117,13 +117,13 @@ static int socket_can_bind_connect(const char *hostna= me, int family) =20 cleanup: if (afd !=3D -1) { - close(afd); + closesocket(afd); } if (cfd !=3D -1) { - close(cfd); + closesocket(cfd); } if (lfd !=3D -1) { - close(lfd); + closesocket(lfd); } if (res) { freeaddrinfo(res); --=20 2.39.1 From nobody Wed May 15 04:47:22 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1676929953; cv=none; d=zohomail.com; s=zohoarc; b=jHjqhogSRnjvq6py+mC8bkR/UVWAtghupPGdvgQCW5hyAvddHSEu8ZBHxwNKowVwr4KTMgagPfbAtKs3K7wZ23YRV5EjLQatEOceHS3PC4lx5EOhUkkzUlA+/kWvZDGw+osNg9QzS+DHAf3kjRYwjILwE6BtksldgOngvclas00= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676929953; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=sQpc/AwdzzUqn9KA1j7gnwkqyBYn3B6yRkfn/+glDQE=; b=kBue8ea9GNgQ4Bvk4ZcxuCPWLgupa2aKivsbnEY7+Uls6g52nBugsMCunc7aU1FyjQQVOiMv6HfNT5ZAKrKyp+IbwtOwgI6e0mMhbQG7GPp+ESfz8tnPeNc3ySHbXnkgt+rgiHDNNWwSp/dd2KWekBISoZ7Dy7fDS/Lv2D9f+XE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676929953290173.18289999531066; Mon, 20 Feb 2023 13:52:33 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUE2K-0003SY-9y; Mon, 20 Feb 2023 16:49:28 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUE2I-0003Rv-Ax for qemu-devel@nongnu.org; Mon, 20 Feb 2023 16:49:26 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUE2F-0007xA-11 for qemu-devel@nongnu.org; Mon, 20 Feb 2023 16:49:25 -0500 Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-48-7SI_3q2DNTCnTr1WjUiPDg-1; Mon, 20 Feb 2023 16:49:16 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id EE8472A59568; Mon, 20 Feb 2023 21:49:15 +0000 (UTC) Received: from localhost (unknown [10.39.208.3]) by smtp.corp.redhat.com (Postfix) with ESMTP id E6EF3140EBF6; Mon, 20 Feb 2023 21:49:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676929762; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=sQpc/AwdzzUqn9KA1j7gnwkqyBYn3B6yRkfn/+glDQE=; b=gBLcpxaf0AoWNn9pjPSzYwBUWUydPjUWGpq9DwHxNk7rUdEp3Bn75dn/lb63TTr8c+rXe6 5LOGi1eB29ZiBiN+KKf1uySuSiL2isF01dy9gsD9chQGgQ0rKZ2faBcWdq6isFE9NfhjNy i3PNOyUW5VF0JvuJL8LRqu97wvcRL/g= X-MC-Unique: 7SI_3q2DNTCnTr1WjUiPDg-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Michael Roth , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Joel Stanley , Jason Wang , qemu-block@nongnu.org, Markus Armbruster , Thomas Huth , qemu-arm@nongnu.org, Stefan Berger , Laurent Vivier , Samuel Thibault , Stefan Weil , Fam Zheng , Paolo Bonzini , Kevin Wolf , Hanna Reitz , Stefan Hajnoczi , Peter Maydell , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v2 03/15] io: use closesocket() Date: Tue, 21 Feb 2023 01:48:47 +0400 Message-Id: <20230220214859.3792171-4-marcandre.lureau@redhat.com> In-Reply-To: <20230220214859.3792171-1-marcandre.lureau@redhat.com> References: <20230220214859.3792171-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.7 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=marcandre.lureau@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1676929955208100003 From: Marc-Andr=C3=A9 Lureau Because they are actually sockets... Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Thomas Huth --- io/channel-socket.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/io/channel-socket.c b/io/channel-socket.c index 7aca84f61a..2040297d2b 100644 --- a/io/channel-socket.c +++ b/io/channel-socket.c @@ -159,7 +159,7 @@ int qio_channel_socket_connect_sync(QIOChannelSocket *i= oc, =20 trace_qio_channel_socket_connect_complete(ioc, fd); if (qio_channel_socket_set_fd(ioc, fd, errp) < 0) { - close(fd); + closesocket(fd); return -1; } =20 @@ -233,7 +233,7 @@ int qio_channel_socket_listen_sync(QIOChannelSocket *io= c, =20 trace_qio_channel_socket_listen_complete(ioc, fd); if (qio_channel_socket_set_fd(ioc, fd, errp) < 0) { - close(fd); + closesocket(fd); return -1; } qio_channel_set_feature(QIO_CHANNEL(ioc), QIO_CHANNEL_FEATURE_LISTEN); @@ -310,7 +310,7 @@ int qio_channel_socket_dgram_sync(QIOChannelSocket *ioc, =20 trace_qio_channel_socket_dgram_complete(ioc, fd); if (qio_channel_socket_set_fd(ioc, fd, errp) < 0) { - close(fd); + closesocket(fd); return -1; } =20 --=20 2.39.1 From nobody Wed May 15 04:47:22 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1676929844; cv=none; d=zohomail.com; s=zohoarc; b=PxXjmDr9MSssngU1VYdLZ3p63e20/fmjfxRhzdaSvvD7bcz/wLDEs831M2OMlBnFVMcAbqeELLcBt+248Nq+Kac+y6VvzgQXsj1iL1tsd1B1FI3V/fJf2n14S0M2LgArQl8xAPgSt76uw1NIs6ZVs2q2ZazSxbJ6C4ms0T1orec= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676929844; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=b8yt1tqQzF0RvXWdasWDYs/fQOMU7NMD/kLfPkGlP1U=; b=bZwtH03tdtXHf/5T1dX0ynHTViJ6APKI6AvVboZ2v+HQGS7sc4BFG9vgu4DlEB1nCrXajeX91yTV/56b+2j+7EBrXfFVl6Pkcn8WugNsYQqNPiESorr/7V0Uw47pQlRdB2L5LysC6oryxau3ZT/OMPPKroxR84EH7z831bUEQKI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676929844398243.73523319876722; Mon, 20 Feb 2023 13:50:44 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUE2L-0003UJ-K7; Mon, 20 Feb 2023 16:49:29 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUE2K-0003SW-5A for qemu-devel@nongnu.org; Mon, 20 Feb 2023 16:49:28 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUE2G-0007xO-FP for qemu-devel@nongnu.org; Mon, 20 Feb 2023 16:49:27 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-39-YJgg-RKvPYuLUBcnxDIxfQ-1; Mon, 20 Feb 2023 16:49:20 -0500 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 03D6418F0242; Mon, 20 Feb 2023 21:49:20 +0000 (UTC) Received: from localhost (unknown [10.39.208.3]) by smtp.corp.redhat.com (Postfix) with ESMTP id 400E2404CD84; Mon, 20 Feb 2023 21:49:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676929763; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=b8yt1tqQzF0RvXWdasWDYs/fQOMU7NMD/kLfPkGlP1U=; b=aN8HWrDX49JXo/ekez9mVinVzZCXzAZjc721cveiTrumxaCGv6KlRz//i9Zo1p3sxgTXyO OMTONb6A4JGHy0FZK746HqQKsMlc06OQ5oIGjGF/TsAVseOwOy66v5+f9MYbceyyODwQMe 7N0dBc/o+B5Exc5S6EHvEPG8Z1WgGzg= X-MC-Unique: YJgg-RKvPYuLUBcnxDIxfQ-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Michael Roth , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Joel Stanley , Jason Wang , qemu-block@nongnu.org, Markus Armbruster , Thomas Huth , qemu-arm@nongnu.org, Stefan Berger , Laurent Vivier , Samuel Thibault , Stefan Weil , Fam Zheng , Paolo Bonzini , Kevin Wolf , Hanna Reitz , Stefan Hajnoczi , Peter Maydell , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v2 04/15] error: add global &error_warn destination Date: Tue, 21 Feb 2023 01:48:48 +0400 Message-Id: <20230220214859.3792171-5-marcandre.lureau@redhat.com> In-Reply-To: <20230220214859.3792171-1-marcandre.lureau@redhat.com> References: <20230220214859.3792171-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.2 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=marcandre.lureau@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1676929844761100001 From: Marc-Andr=C3=A9 Lureau This can help debugging issues or develop, when error handling is introduced. Signed-off-by: Marc-Andr=C3=A9 Lureau --- include/qapi/error.h | 6 ++++++ util/error.c | 10 +++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/include/qapi/error.h b/include/qapi/error.h index d798faeec3..f21a231bb1 100644 --- a/include/qapi/error.h +++ b/include/qapi/error.h @@ -519,6 +519,12 @@ static inline void error_propagator_cleanup(ErrorPropa= gator *prop) =20 G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(ErrorPropagator, error_propagator_cleanup= ); =20 +/* + * Special error destination to warn on error. + * See error_setg() and error_propagate() for details. + */ +extern Error *error_warn; + /* * Special error destination to abort on error. * See error_setg() and error_propagate() for details. diff --git a/util/error.c b/util/error.c index 1e7af665b8..5537245da6 100644 --- a/util/error.c +++ b/util/error.c @@ -27,8 +27,9 @@ struct Error =20 Error *error_abort; Error *error_fatal; +Error *error_warn; =20 -static void error_handle_fatal(Error **errp, Error *err) +static void error_handle(Error **errp, Error *err) { if (errp =3D=3D &error_abort) { fprintf(stderr, "Unexpected error in %s() at %s:%d:\n", @@ -43,6 +44,9 @@ static void error_handle_fatal(Error **errp, Error *err) error_report_err(err); exit(1); } + if (errp =3D=3D &error_warn) { + warn_report_err(err); + } } =20 G_GNUC_PRINTF(6, 0) @@ -71,7 +75,7 @@ static void error_setv(Error **errp, err->line =3D line; err->func =3D func; =20 - error_handle_fatal(errp, err); + error_handle(errp, err); *errp =3D err; =20 errno =3D saved_errno; @@ -284,7 +288,7 @@ void error_propagate(Error **dst_errp, Error *local_err) if (!local_err) { return; } - error_handle_fatal(dst_errp, local_err); + error_handle(dst_errp, local_err); if (dst_errp && !*dst_errp) { *dst_errp =3D local_err; } else { --=20 2.39.1 From nobody Wed May 15 04:47:22 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1676929977; cv=none; d=zohomail.com; s=zohoarc; b=P4d7voIMqZNZFhzzG6/cPc1lOiu0MIXkCOJwpLrgMpN4LyUDnUxT8OMcO4N7IIstC/Ef+lwpF/a0sQSpR0QQ+jfC6XQhumS/xF44DwbLty0jDy9NVF6fZd2oi932ZqElg3TieSZGssduXfIA4Y875n2YwEWy96JhLRoFM0cZpTk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676929977; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ByXpJfj4Mf0HELban587NU1aljZ6ECTLm575DZB8NRw=; b=De2p2Xi9GSS/qHZcZ6kmo4qECjLj4aECvjttVWoNOL4ftUS3PWuPOLJL+RGX74Ym7GYqzeOzKzgKrKWeBYYayYc8fnZ9iZRsh2Hl444U1QMIAOdlLEyvHopIjKFUlTKyd2KMy1pGjMY2n0hRWsCdLlT8Pr3H5MWQQN5uAL+GRVU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676929977411232.1379908250558; Mon, 20 Feb 2023 13:52:57 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUE4Q-0006pQ-Cr; Mon, 20 Feb 2023 16:51:38 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUE3u-0005Ar-0U for qemu-devel@nongnu.org; Mon, 20 Feb 2023 16:51:09 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUE3q-0008Rw-S3 for qemu-devel@nongnu.org; Mon, 20 Feb 2023 16:51:05 -0500 Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-650-OTqOFaU5O3CYIUFJWbDfaw-1; Mon, 20 Feb 2023 16:49:25 -0500 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id A00953C0E44D; Mon, 20 Feb 2023 21:49:24 +0000 (UTC) Received: from localhost (unknown [10.39.208.3]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4F10B404CD84; Mon, 20 Feb 2023 21:49:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676929861; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ByXpJfj4Mf0HELban587NU1aljZ6ECTLm575DZB8NRw=; b=OHRaJ9Z2O5I1lBRLnqqBp7wrWPbXa7rEuTjwD/x4a6GJ+qzgXaGTpqvP76G+d4E9kkZmUm KonimTuW6Wo9aMqNXrtW5cu3ZAg5eg+yinFWF02ws4TFFZeUqDWrXwvadCvlRt42+qLi2g UTdxMCVOz5zg1t1g+qFAWx5iakPR7Hk= X-MC-Unique: OTqOFaU5O3CYIUFJWbDfaw-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Michael Roth , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Joel Stanley , Jason Wang , qemu-block@nongnu.org, Markus Armbruster , Thomas Huth , qemu-arm@nongnu.org, Stefan Berger , Laurent Vivier , Samuel Thibault , Stefan Weil , Fam Zheng , Paolo Bonzini , Kevin Wolf , Hanna Reitz , Stefan Hajnoczi , Peter Maydell , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v2 05/15] win32/socket: introduce qemu_socket_select() helper Date: Tue, 21 Feb 2023 01:48:49 +0400 Message-Id: <20230220214859.3792171-6-marcandre.lureau@redhat.com> In-Reply-To: <20230220214859.3792171-1-marcandre.lureau@redhat.com> References: <20230220214859.3792171-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.2 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=marcandre.lureau@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1676929979327100001 From: Marc-Andr=C3=A9 Lureau This is a wrapper for WSAEventSelect, with Error handling. By default, it will produce a warning, so callers don't have to be modified now, and yet we can spot potential mis-use. Signed-off-by: Marc-Andr=C3=A9 Lureau --- include/sysemu/os-win32.h | 5 +++++ io/channel-socket.c | 4 ++-- io/channel-watch.c | 6 +++--- util/aio-win32.c | 2 +- util/main-loop.c | 6 +++--- util/oslib-win32.c | 17 ++++++++++++++++- 6 files changed, 30 insertions(+), 10 deletions(-) diff --git a/include/sysemu/os-win32.h b/include/sysemu/os-win32.h index 5b38c7bd04..0afb79cc2e 100644 --- a/include/sysemu/os-win32.h +++ b/include/sysemu/os-win32.h @@ -29,6 +29,7 @@ #include #include #include +#include "qemu/typedefs.h" =20 #ifdef HAVE_AFUNIX_H #include @@ -144,6 +145,10 @@ static inline void qemu_funlockfile(FILE *f) #endif } =20 +/* Helper for WSAEventSelect, to report errors */ +bool qemu_socket_select(SOCKET s, WSAEVENT hEventObject, + long lNetworkEvents, Error **errp); + /* We wrap all the sockets functions so that we can * set errno based on WSAGetLastError() */ diff --git a/io/channel-socket.c b/io/channel-socket.c index 2040297d2b..0bc29c4808 100644 --- a/io/channel-socket.c +++ b/io/channel-socket.c @@ -442,7 +442,7 @@ static void qio_channel_socket_finalize(Object *obj) } } #ifdef WIN32 - WSAEventSelect(ioc->fd, NULL, 0); + qemu_socket_select(ioc->fd, NULL, 0, NULL); #endif closesocket(ioc->fd); ioc->fd =3D -1; @@ -846,7 +846,7 @@ qio_channel_socket_close(QIOChannel *ioc, =20 if (sioc->fd !=3D -1) { #ifdef WIN32 - WSAEventSelect(sioc->fd, NULL, 0); + qemu_socket_select(sioc->fd, NULL, 0, NULL); #endif if (qio_channel_has_feature(ioc, QIO_CHANNEL_FEATURE_LISTEN)) { socket_listen_cleanup(sioc->fd, errp); diff --git a/io/channel-watch.c b/io/channel-watch.c index ad7c568a84..6ac41009fa 100644 --- a/io/channel-watch.c +++ b/io/channel-watch.c @@ -281,9 +281,9 @@ GSource *qio_channel_create_socket_watch(QIOChannel *io= c, GSource *source; QIOChannelSocketSource *ssource; =20 - WSAEventSelect(socket, ioc->event, - FD_READ | FD_ACCEPT | FD_CLOSE | - FD_CONNECT | FD_WRITE | FD_OOB); + qemu_socket_select(socket, ioc->event, + FD_READ | FD_ACCEPT | FD_CLOSE | + FD_CONNECT | FD_WRITE | FD_OOB, NULL); =20 source =3D g_source_new(&qio_channel_socket_source_funcs, sizeof(QIOChannelSocketSource)); diff --git a/util/aio-win32.c b/util/aio-win32.c index 80cfe012ad..be5136e486 100644 --- a/util/aio-win32.c +++ b/util/aio-win32.c @@ -115,7 +115,7 @@ void aio_set_fd_handler(AioContext *ctx, =20 QLIST_INSERT_HEAD_RCU(&ctx->aio_handlers, node, node); event =3D event_notifier_get_handle(&ctx->notifier); - WSAEventSelect(node->pfd.fd, event, bitmask); + qemu_socket_select(node->pfd.fd, event, bitmask, NULL); } if (old_node) { aio_remove_fd_handler(ctx, old_node); diff --git a/util/main-loop.c b/util/main-loop.c index 3c0f525192..16e837fb12 100644 --- a/util/main-loop.c +++ b/util/main-loop.c @@ -416,9 +416,9 @@ void qemu_del_wait_object(HANDLE handle, WaitObjectFunc= *func, void *opaque) =20 void qemu_fd_register(int fd) { - WSAEventSelect(fd, event_notifier_get_handle(&qemu_aio_context->notifi= er), - FD_READ | FD_ACCEPT | FD_CLOSE | - FD_CONNECT | FD_WRITE | FD_OOB); + qemu_socket_select(fd, event_notifier_get_handle(&qemu_aio_context->no= tifier), + FD_READ | FD_ACCEPT | FD_CLOSE | + FD_CONNECT | FD_WRITE | FD_OOB, NULL); } =20 static int pollfds_fill(GArray *pollfds, fd_set *rfds, fd_set *wfds, diff --git a/util/oslib-win32.c b/util/oslib-win32.c index 528c9ee156..df752fc762 100644 --- a/util/oslib-win32.c +++ b/util/oslib-win32.c @@ -180,7 +180,7 @@ static int socket_error(void) void qemu_socket_set_block(int fd) { unsigned long opt =3D 0; - WSAEventSelect(fd, NULL, 0); + qemu_socket_select(fd, NULL, 0, NULL); ioctlsocket(fd, FIONBIO, &opt); } =20 @@ -283,6 +283,21 @@ char *qemu_get_pid_name(pid_t pid) } =20 =20 +bool qemu_socket_select(SOCKET s, WSAEVENT hEventObject, + long lNetworkEvents, Error **errp) +{ + if (errp =3D=3D NULL) { + errp =3D &error_warn; + } + + if (WSAEventSelect(s, hEventObject, lNetworkEvents) !=3D 0) { + error_setg_win32(errp, WSAGetLastError(), "failed to WSAEventSelec= t()"); + return false; + } + + return true; +} + #undef connect int qemu_connect_wrap(int sockfd, const struct sockaddr *addr, socklen_t addrlen) --=20 2.39.1 From nobody Wed May 15 04:47:22 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1676929958; cv=none; d=zohomail.com; s=zohoarc; b=EP4L7sH/eNRj9O/qN3R3bDC3FRgRo+mCb8+NfyskSsr9V4zvBl5RdFnrtOfcu+aiz+T/jyRsTKIdEO0ULXAuGxc8xcxUA0il1n2ytxIvbhcQvcYE8ZQ0Kd1CrIeMut7ETTFYf9SRPeMe0vPYe8wSxaKFM+9KfnYWrhZ0MTNEjgM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676929958; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=DteEtAyuZo7EqIynkgAk3kNQb5SP+KyPGXV+raM58DM=; b=D0J/11SNxBxhIcL0O6NpJ1O+jm8Bd8C9ElJvh5mYpQKIUG29ECwRQgAdpjZVRymVCBOoyjsfyBH4/l23KWGRIQDgvFCU69PUC/EhdGuPLY+FHsfeQvrr2u0fC70XE0EKAS6QlYLDQRThR0oT5iO9GH2bP8M4uTY6UWeRbVjQR/E= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 167692995881585.1911584327662; Mon, 20 Feb 2023 13:52:38 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUE4R-00070f-D2; Mon, 20 Feb 2023 16:51:39 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUE3u-0005Ak-4F for qemu-devel@nongnu.org; Mon, 20 Feb 2023 16:51:09 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUE3q-0008Rq-Ng for qemu-devel@nongnu.org; Mon, 20 Feb 2023 16:51:05 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-142-vDnWbV83O_i_iIyPS8DCLQ-1; Mon, 20 Feb 2023 16:49:29 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id CBB29185A794; Mon, 20 Feb 2023 21:49:28 +0000 (UTC) Received: from localhost (unknown [10.39.208.3]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1705CC15BA0; Mon, 20 Feb 2023 21:49:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676929860; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=DteEtAyuZo7EqIynkgAk3kNQb5SP+KyPGXV+raM58DM=; b=WGtWNywwTHD6NhBYD4fSX4K6m89PG8lEka+0lSjLOYbjqd5kgxRhHIC4lDGZ9+PIzNv154 zrtQ1VuaUHkBIJPDm6Q03gwItLBgzmcd7gVx1PxzP181x57XDgW55ep04sK3XSD9m2MxJ/ QmopE3aiGFymQ5eNKhFbL7sZTpUeZh4= X-MC-Unique: vDnWbV83O_i_iIyPS8DCLQ-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Michael Roth , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Joel Stanley , Jason Wang , qemu-block@nongnu.org, Markus Armbruster , Thomas Huth , qemu-arm@nongnu.org, Stefan Berger , Laurent Vivier , Samuel Thibault , Stefan Weil , Fam Zheng , Paolo Bonzini , Kevin Wolf , Hanna Reitz , Stefan Hajnoczi , Peter Maydell , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v2 06/15] win32/socket: introduce qemu_socket_unselect() helper Date: Tue, 21 Feb 2023 01:48:50 +0400 Message-Id: <20230220214859.3792171-7-marcandre.lureau@redhat.com> In-Reply-To: <20230220214859.3792171-1-marcandre.lureau@redhat.com> References: <20230220214859.3792171-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.8 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=marcandre.lureau@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1676929959248100003 From: Marc-Andr=C3=A9 Lureau A more explicit version of qemu_socket_select() with no events. Signed-off-by: Marc-Andr=C3=A9 Lureau --- include/sysemu/os-win32.h | 2 ++ io/channel-socket.c | 4 ++-- util/oslib-win32.c | 7 ++++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/include/sysemu/os-win32.h b/include/sysemu/os-win32.h index 0afb79cc2e..ae0c9a3659 100644 --- a/include/sysemu/os-win32.h +++ b/include/sysemu/os-win32.h @@ -149,6 +149,8 @@ static inline void qemu_funlockfile(FILE *f) bool qemu_socket_select(SOCKET s, WSAEVENT hEventObject, long lNetworkEvents, Error **errp); =20 +bool qemu_socket_unselect(SOCKET s, Error **errp); + /* We wrap all the sockets functions so that we can * set errno based on WSAGetLastError() */ diff --git a/io/channel-socket.c b/io/channel-socket.c index 0bc29c4808..03757c7a7e 100644 --- a/io/channel-socket.c +++ b/io/channel-socket.c @@ -442,7 +442,7 @@ static void qio_channel_socket_finalize(Object *obj) } } #ifdef WIN32 - qemu_socket_select(ioc->fd, NULL, 0, NULL); + qemu_socket_unselect(ioc->fd, NULL); #endif closesocket(ioc->fd); ioc->fd =3D -1; @@ -846,7 +846,7 @@ qio_channel_socket_close(QIOChannel *ioc, =20 if (sioc->fd !=3D -1) { #ifdef WIN32 - qemu_socket_select(sioc->fd, NULL, 0, NULL); + qemu_socket_unselect(sioc->fd, NULL); #endif if (qio_channel_has_feature(ioc, QIO_CHANNEL_FEATURE_LISTEN)) { socket_listen_cleanup(sioc->fd, errp); diff --git a/util/oslib-win32.c b/util/oslib-win32.c index df752fc762..dbd32acc98 100644 --- a/util/oslib-win32.c +++ b/util/oslib-win32.c @@ -180,7 +180,7 @@ static int socket_error(void) void qemu_socket_set_block(int fd) { unsigned long opt =3D 0; - qemu_socket_select(fd, NULL, 0, NULL); + qemu_socket_unselect(fd, NULL); ioctlsocket(fd, FIONBIO, &opt); } =20 @@ -298,6 +298,11 @@ bool qemu_socket_select(SOCKET s, WSAEVENT hEventObjec= t, return true; } =20 +bool qemu_socket_unselect(SOCKET s, Error **errp) +{ + return qemu_socket_select(s, NULL, 0, errp); +} + #undef connect int qemu_connect_wrap(int sockfd, const struct sockaddr *addr, socklen_t addrlen) --=20 2.39.1 From nobody Wed May 15 04:47:22 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1676929903; cv=none; d=zohomail.com; s=zohoarc; b=MfzGmxgOMZmYZvXs1FpLRvXkWwipIm1wWbDKmI/hVuF9eedAN9dJsXQ2ZmFweiloWHuRgsL3d98Lqd3C+zslznSXsSa4cv8eBeCz4BtnL2pbRFkkNw+I5kT2Sb8bdqIsZ0jWwcb7DomYSG4noqxnFAHXkE7SykYa3jlquGULcoQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676929903; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=31gihj7l1EooZlr2HPmQTeZif0MfFmViDpJvmbS/8zc=; b=QGIRQrxfrQf9VJFFJYJ93YykZmdJ/bKcXJTOO6HfRExbMD/aiqlyVQl5l07W+n4RJk+tsxqCGjtIABP/w8VtcAyXKeG/QG7k8JWt02TVVf19oLLyrA5PRzRsalUWFvdLcYd50r7yDDElBtqgqH5mvNxd2lWLJRW5KF3tQmmIycw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676929903009736.6992473198659; Mon, 20 Feb 2023 13:51:43 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUE2k-0003Wk-CM; Mon, 20 Feb 2023 16:49:54 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUE2i-0003W7-5K for qemu-devel@nongnu.org; Mon, 20 Feb 2023 16:49:52 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUE2Z-0007ze-WC for qemu-devel@nongnu.org; Mon, 20 Feb 2023 16:49:51 -0500 Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-671-s8q3oTueMJyWdGI4BacEuw-1; Mon, 20 Feb 2023 16:49:33 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 6F72D2A59568; Mon, 20 Feb 2023 21:49:32 +0000 (UTC) Received: from localhost (unknown [10.39.208.3]) by smtp.corp.redhat.com (Postfix) with ESMTP id A5728C15BA0; Mon, 20 Feb 2023 21:49:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676929778; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=31gihj7l1EooZlr2HPmQTeZif0MfFmViDpJvmbS/8zc=; b=Dtme+aqt3rOeNBDBSnhf4ZfQMoMr/ETR2+0df8cuSuCmR+z8L2z2C77RBhwXv6qRAZKouF FHkrgkHa9muDdlUqrGfOsRJzEmZnKeNt9HUTI7UanO+Ve9WiQYKKh+1YjxUwh17unqYzod WMX1dE39pSWuoEtLXiHYarjyu9Yucl8= X-MC-Unique: s8q3oTueMJyWdGI4BacEuw-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Michael Roth , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Joel Stanley , Jason Wang , qemu-block@nongnu.org, Markus Armbruster , Thomas Huth , qemu-arm@nongnu.org, Stefan Berger , Laurent Vivier , Samuel Thibault , Stefan Weil , Fam Zheng , Paolo Bonzini , Kevin Wolf , Hanna Reitz , Stefan Hajnoczi , Peter Maydell , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v2 07/15] aio: make aio_set_fd_poll() static to aio-posix.c Date: Tue, 21 Feb 2023 01:48:51 +0400 Message-Id: <20230220214859.3792171-8-marcandre.lureau@redhat.com> In-Reply-To: <20230220214859.3792171-1-marcandre.lureau@redhat.com> References: <20230220214859.3792171-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.8 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=marcandre.lureau@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1676929904996100011 From: Marc-Andr=C3=A9 Lureau Signed-off-by: Marc-Andr=C3=A9 Lureau --- include/block/aio.h | 8 -------- util/aio-posix.c | 6 +++--- util/aio-win32.c | 7 ------- 3 files changed, 3 insertions(+), 18 deletions(-) diff --git a/include/block/aio.h b/include/block/aio.h index 8fba6a3584..543717f294 100644 --- a/include/block/aio.h +++ b/include/block/aio.h @@ -482,14 +482,6 @@ void aio_set_fd_handler(AioContext *ctx, IOHandler *io_poll_ready, void *opaque); =20 -/* Set polling begin/end callbacks for a file descriptor that has already = been - * registered with aio_set_fd_handler. Do nothing if the file descriptor = is - * not registered. - */ -void aio_set_fd_poll(AioContext *ctx, int fd, - IOHandler *io_poll_begin, - IOHandler *io_poll_end); - /* Register an event notifier and associated callbacks. Behaves very simi= larly * to event_notifier_set_handler. Unlike event_notifier_set_handler, thes= e callbacks * will be invoked when using aio_poll(). diff --git a/util/aio-posix.c b/util/aio-posix.c index 6cc6256d53..a8be940f76 100644 --- a/util/aio-posix.c +++ b/util/aio-posix.c @@ -180,9 +180,9 @@ void aio_set_fd_handler(AioContext *ctx, } } =20 -void aio_set_fd_poll(AioContext *ctx, int fd, - IOHandler *io_poll_begin, - IOHandler *io_poll_end) +static void aio_set_fd_poll(AioContext *ctx, int fd, + IOHandler *io_poll_begin, + IOHandler *io_poll_end) { AioHandler *node =3D find_aio_handler(ctx, fd); =20 diff --git a/util/aio-win32.c b/util/aio-win32.c index be5136e486..74d63fa21e 100644 --- a/util/aio-win32.c +++ b/util/aio-win32.c @@ -125,13 +125,6 @@ void aio_set_fd_handler(AioContext *ctx, aio_notify(ctx); } =20 -void aio_set_fd_poll(AioContext *ctx, int fd, - IOHandler *io_poll_begin, - IOHandler *io_poll_end) -{ - /* Not implemented */ -} - void aio_set_event_notifier(AioContext *ctx, EventNotifier *e, bool is_external, --=20 2.39.1 From nobody Wed May 15 04:47:22 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1676929958; cv=none; d=zohomail.com; s=zohoarc; b=bEiB+POfRninzIiJvX0Z8a7Tp5lwbw7DxDxET+zGNDv0qCbkmJNUs1VdYbM1I0PL+PS5XYpkIbEUpsUhNeY3Qi0v5/r64RxEdTgjMZ5MGfSuGW2+bHyAmvgAs7d+X7MTgMSlSbA7TSluducKJNbYgWfxl6ig0VRI/AlGHI1fW/A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676929958; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=EYUJ+dSm1+Qpjq7FR2xXuL1pVn+UustNl9pTfsiPi9E=; b=nDtIBFkt7B2q2ugE1RHWQW/zg9soB7LoVZBrpmXwwYa9ZCskrCacfV/ERcC8mmd0270DnIyNUBkUCg7ccXsvJ3DH4ptjsaMOuBnHFPR93th53Ugy9sT5i61WjLlYOw2sikMb4xMBGiBKVjL26JMmvEV04z9R4A2jcG97GV7Hj20= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676929958309613.2173614630934; Mon, 20 Feb 2023 13:52:38 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUE2t-0003aS-7s; Mon, 20 Feb 2023 16:50:03 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUE2q-0003Yv-OE for qemu-devel@nongnu.org; Mon, 20 Feb 2023 16:50:00 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUE2h-00080E-5T for qemu-devel@nongnu.org; Mon, 20 Feb 2023 16:50:00 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-175-TOFD5QvdO3CBk01bRVI7Zg-1; Mon, 20 Feb 2023 16:49:37 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 4193F101163D; Mon, 20 Feb 2023 21:49:36 +0000 (UTC) Received: from localhost (unknown [10.39.208.3]) by smtp.corp.redhat.com (Postfix) with ESMTP id 80C62400EA89; Mon, 20 Feb 2023 21:49:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676929781; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=EYUJ+dSm1+Qpjq7FR2xXuL1pVn+UustNl9pTfsiPi9E=; b=El8/rTl+/TdW+T/OOIghmH7Doh3PXhqedacmFb0rLr7NQ22Ub3lKzQtOBeL3iBqcttmrfG kGtWYGe8nZIncKuITX2cusxot3i5j1zi5SKx8BXvE7uWnK3SI6bbgkKEW700qJ9ziUQrkf 3L14mR+h6kK/qIbL2pCk1aBdVNWNwrM= X-MC-Unique: TOFD5QvdO3CBk01bRVI7Zg-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Michael Roth , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Joel Stanley , Jason Wang , qemu-block@nongnu.org, Markus Armbruster , Thomas Huth , qemu-arm@nongnu.org, Stefan Berger , Laurent Vivier , Samuel Thibault , Stefan Weil , Fam Zheng , Paolo Bonzini , Kevin Wolf , Hanna Reitz , Stefan Hajnoczi , Peter Maydell , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v2 08/15] aio/win32: aio_set_fd_handler() only supports SOCKET Date: Tue, 21 Feb 2023 01:48:52 +0400 Message-Id: <20230220214859.3792171-9-marcandre.lureau@redhat.com> In-Reply-To: <20230220214859.3792171-1-marcandre.lureau@redhat.com> References: <20230220214859.3792171-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.1 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=marcandre.lureau@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1676929959237100001 From: Marc-Andr=C3=A9 Lureau Let's check if the argument is actually a SOCKET, else report an error and return. Signed-off-by: Marc-Andr=C3=A9 Lureau --- util/aio-win32.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/util/aio-win32.c b/util/aio-win32.c index 74d63fa21e..08e8f5615d 100644 --- a/util/aio-win32.c +++ b/util/aio-win32.c @@ -22,6 +22,7 @@ #include "qemu/sockets.h" #include "qapi/error.h" #include "qemu/rcu_queue.h" +#include "qemu/error-report.h" =20 struct AioHandler { EventNotifier *e; @@ -70,10 +71,14 @@ void aio_set_fd_handler(AioContext *ctx, IOHandler *io_poll_ready, void *opaque) { - /* fd is a SOCKET in our case */ AioHandler *old_node; AioHandler *node =3D NULL; =20 + if (!fd_is_socket(fd)) { + error_report("fd=3D%d is not a socket, AIO implementation is missi= ng", fd); + return; + } + qemu_lockcnt_lock(&ctx->list_lock); QLIST_FOREACH(old_node, &ctx->aio_handlers, node) { if (old_node->pfd.fd =3D=3D fd && !old_node->deleted) { --=20 2.39.1 From nobody Wed May 15 04:47:22 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1676929864; cv=none; d=zohomail.com; s=zohoarc; b=FiCbTMHNqrZVzzUIUmNe9lUOI+hmO4+3cF7VooCDgbdHyt08q5p5716m7+ZS8LTPlWttXzauYfLj1SICSQJRzw/fvszY0dDUeWBq9wd+oL+MgK4pyv6FHdOL7uEESDY4yO3T30fiq423ySDNYjKAs7mGxuCCoaOPajMn4w3fH4U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676929864; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=JvEMO5c2JkOF6By7T+YUpSgoqGP8ZOOLt3YLiVCdBC0=; b=SpQoFwAqnZSm+JenRGsSrJzgVoY8vEdgNhJgyEJHZoTJ/HflVceBTw26sBGU/6471KvyFQf0Ev8VfHDsnvXRFscOlsFW5zmXXQ7VBa1ij63o2XiM6mzS6Z9JlbQvm6vt4V7lrTWhkZeeXFDVwkPKcHbrs0BTZrkUj09fQWI9QFY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676929864375221.1815535990752; Mon, 20 Feb 2023 13:51:04 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUE30-0003sc-Gc; Mon, 20 Feb 2023 16:50:10 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUE2u-0003bZ-3t for qemu-devel@nongnu.org; Mon, 20 Feb 2023 16:50:04 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUE2k-000809-VJ for qemu-devel@nongnu.org; Mon, 20 Feb 2023 16:50:03 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-147-Pf7xcpurPHOvAJCBfd8WZQ-1; Mon, 20 Feb 2023 16:49:41 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 5627C185A794; Mon, 20 Feb 2023 21:49:40 +0000 (UTC) Received: from localhost (unknown [10.39.208.3]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4C9F4140EBF6; Mon, 20 Feb 2023 21:49:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676929787; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=JvEMO5c2JkOF6By7T+YUpSgoqGP8ZOOLt3YLiVCdBC0=; b=EfX5bbaO/tok1YG+6gd07sE5Q0+i39xVkt64G2NsbT8PZ6RbUCS70sFE2QZr1URO5HUPhp pq7RrG7TxpD+ISbyTX51JMHBVCQtAJgqMCNHcDvuUcQApUw39rsr5SOgRoVE4VrZ7ABCuA BuxDuTFwfVjO8Er3f1mDuf3vDrF7CvM= X-MC-Unique: Pf7xcpurPHOvAJCBfd8WZQ-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Michael Roth , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Joel Stanley , Jason Wang , qemu-block@nongnu.org, Markus Armbruster , Thomas Huth , qemu-arm@nongnu.org, Stefan Berger , Laurent Vivier , Samuel Thibault , Stefan Weil , Fam Zheng , Paolo Bonzini , Kevin Wolf , Hanna Reitz , Stefan Hajnoczi , Peter Maydell , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v2 09/15] RFC: build-sys: add slirp.wrap Date: Tue, 21 Feb 2023 01:48:53 +0400 Message-Id: <20230220214859.3792171-10-marcandre.lureau@redhat.com> In-Reply-To: <20230220214859.3792171-1-marcandre.lureau@redhat.com> References: <20230220214859.3792171-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.7 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=marcandre.lureau@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1676929864855100001 From: Marc-Andr=C3=A9 Lureau This allows to build with --enable-slirp / -D slirp=3Denabled, even when libslirp is not installed on the system. Meson will pull it from git in that case. RFC because this is very convenient, for a developper targetting different environments, but might not be considered appropriate, as it is "a kind of" git submodule (without git submodule integration issues though, afaik, experience should tell). Signed-off-by: Marc-Andr=C3=A9 Lureau --- .gitignore | 2 ++ subprojects/slirp.wrap | 6 ++++++ 2 files changed, 8 insertions(+) create mode 100644 subprojects/slirp.wrap diff --git a/.gitignore b/.gitignore index 61fa39967b..1ea59f4819 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,5 @@ GTAGS *.swp *.patch *.gcov + +/subprojects/slirp diff --git a/subprojects/slirp.wrap b/subprojects/slirp.wrap new file mode 100644 index 0000000000..87cdd8dcd8 --- /dev/null +++ b/subprojects/slirp.wrap @@ -0,0 +1,6 @@ +[wrap-git] +url =3D https://gitlab.freedesktop.org/slirp/libslirp +revision =3D 15c52d69 + +[provide] +slirp =3D libslirp_dep --=20 2.39.1 From nobody Wed May 15 04:47:22 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1676929904; cv=none; d=zohomail.com; s=zohoarc; b=MHAOrkfxC6Mla5Vy2QceogQwBVMKjyF68G7N/T1odtqo9GA8MeWRGiKWJYzNB5IBwiMP9Qvau6TVoQifUEmbtFLnhzRPWypW6tLHWS+FTS1YUzY1ugvifgsjYRRILviNXQjGcJA/9bJveoxkub8l8Pr9S62bF2qVJNLamRU1xNk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676929904; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=VvPQls8lh2Ir7JFuQlhgZHz/Vk17Fh1ykB4lWZuy1RE=; b=OthDRht/QYAMYyU4M4pzpouzDb0jSMLPpiBNJX1mzDLkjOmq3iDKrDqPKKBMrG/5/omWwRZziT94WFrdklcIBIxsV8nHtbbmCmMvE+w8+SWFjmXNIvOqLLNDxUKkYOkvFQ46s145pqqffR4Qj7v/By8cvE1CIPL/MS9LFDbzK5s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676929904550498.8312165070647; Mon, 20 Feb 2023 13:51:44 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUE2z-0003me-F8; Mon, 20 Feb 2023 16:50:09 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUE2u-0003bE-0p for qemu-devel@nongnu.org; Mon, 20 Feb 2023 16:50:04 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUE2m-00080d-4H for qemu-devel@nongnu.org; Mon, 20 Feb 2023 16:50:03 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-389-J4-AUmOIOmy42W_Ac1Dcng-1; Mon, 20 Feb 2023 16:49:45 -0500 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 55B93101A521; Mon, 20 Feb 2023 21:49:44 +0000 (UTC) Received: from localhost (unknown [10.39.208.3]) by smtp.corp.redhat.com (Postfix) with ESMTP id 92AED492B04; Mon, 20 Feb 2023 21:49:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676929787; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=VvPQls8lh2Ir7JFuQlhgZHz/Vk17Fh1ykB4lWZuy1RE=; b=Po09H/PUuvHKnoP+MXOZF8/dVrxnDkXGswiU4RGGqvfKi6/kH+jIZfxQjXM2DfJnjf+ewW +wBNYsD8rY4zTW626vDmXi/Vh95xzqCoBjSG4R5uty3f3w36fo86lqds6vomKW+XXpIXOS yBZ0UXdSighXj2YyD3uYqG+TvQi8kF0= X-MC-Unique: J4-AUmOIOmy42W_Ac1Dcng-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Michael Roth , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Joel Stanley , Jason Wang , qemu-block@nongnu.org, Markus Armbruster , Thomas Huth , qemu-arm@nongnu.org, Stefan Berger , Laurent Vivier , Samuel Thibault , Stefan Weil , Fam Zheng , Paolo Bonzini , Kevin Wolf , Hanna Reitz , Stefan Hajnoczi , Peter Maydell , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v2 10/15] main-loop: remove qemu_fd_register(), win32/slirp/socket specific Date: Tue, 21 Feb 2023 01:48:54 +0400 Message-Id: <20230220214859.3792171-11-marcandre.lureau@redhat.com> In-Reply-To: <20230220214859.3792171-1-marcandre.lureau@redhat.com> References: <20230220214859.3792171-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.9 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=marcandre.lureau@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1676929905007100012 From: Marc-Andr=C3=A9 Lureau Open-code the socket registration where it's needed, to avoid artificially used or unclear generic interface. Furthermore, the following patches are going to make socket handling use FD-only inside QEMU, but we need to handle win32 SOCKET from libslirp. Signed-off-by: Marc-Andr=C3=A9 Lureau --- include/qemu/main-loop.h | 2 -- net/slirp.c | 8 +++++++- util/main-loop.c | 11 ----------- 3 files changed, 7 insertions(+), 14 deletions(-) diff --git a/include/qemu/main-loop.h b/include/qemu/main-loop.h index c25f390696..b3e54e00bc 100644 --- a/include/qemu/main-loop.h +++ b/include/qemu/main-loop.h @@ -387,8 +387,6 @@ void qemu_cond_timedwait_iothread(QemuCond *cond, int m= s); =20 /* internal interfaces */ =20 -void qemu_fd_register(int fd); - #define qemu_bh_new(cb, opaque) \ qemu_bh_new_full((cb), (opaque), (stringify(cb))) QEMUBH *qemu_bh_new_full(QEMUBHFunc *cb, void *opaque, const char *name); diff --git a/net/slirp.c b/net/slirp.c index 2ee3f1a0d7..0730a935ba 100644 --- a/net/slirp.c +++ b/net/slirp.c @@ -248,7 +248,13 @@ static void net_slirp_timer_mod(void *timer, int64_t e= xpire_timer, =20 static void net_slirp_register_poll_fd(int fd, void *opaque) { - qemu_fd_register(fd); +#ifdef WIN32 + AioContext *ctxt =3D qemu_get_aio_context(); + + qemu_socket_select(fd, event_notifier_get_handle(&ctxt->notifier), + FD_READ | FD_ACCEPT | FD_CLOSE | + FD_CONNECT | FD_WRITE | FD_OOB, NULL); +#endif } =20 static void net_slirp_unregister_poll_fd(int fd, void *opaque) diff --git a/util/main-loop.c b/util/main-loop.c index 16e837fb12..e180c85145 100644 --- a/util/main-loop.c +++ b/util/main-loop.c @@ -252,10 +252,6 @@ static int max_priority; static int glib_pollfds_idx; static int glib_n_poll_fds; =20 -void qemu_fd_register(int fd) -{ -} - static void glib_pollfds_fill(int64_t *cur_timeout) { GMainContext *context =3D g_main_context_default(); @@ -414,13 +410,6 @@ void qemu_del_wait_object(HANDLE handle, WaitObjectFun= c *func, void *opaque) } } =20 -void qemu_fd_register(int fd) -{ - qemu_socket_select(fd, event_notifier_get_handle(&qemu_aio_context->no= tifier), - FD_READ | FD_ACCEPT | FD_CLOSE | - FD_CONNECT | FD_WRITE | FD_OOB, NULL); -} - static int pollfds_fill(GArray *pollfds, fd_set *rfds, fd_set *wfds, fd_set *xfds) { --=20 2.39.1 From nobody Wed May 15 04:47:22 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1676929900; cv=none; d=zohomail.com; s=zohoarc; b=EDlu7NlS2M+2cuioXf6JXU4BwkO8SsPF1Njyrivqt4VbfJs04U83oexMd9cjdSTzfdgwiz6aDkFDcAvPdT4CXpkXbw2sk+FJSYrNzqkYZ4bd9OccEXew1zEXNQqFPhAwVXJrVCBxM6T9/YDe447JwNXsSLt/7+gLflSji43M5Ds= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676929900; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=AQFh/dB87jnAfGQ+7wT6qykz452ycaENXOMVp0qcrHM=; b=meYYQ0BQ+gF4TogQ674oyyjGCxiLnJEAAuwaFdzNO1scZ52VcVe1X5y63wGBEzh/EFd7JFN5BDbVx6UNS9jk4jJevLwG3zvNP2SA6KIialD1JJMJZX2+ajiSGNeu7zt/tsp8sbyIMLitAVSHBsxsYuKVvO6mvx0gAc5xcutQoWE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676929900981357.529591299441; Mon, 20 Feb 2023 13:51:40 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUE4J-0005h3-BO; Mon, 20 Feb 2023 16:51:31 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUE2w-0003e9-W0 for qemu-devel@nongnu.org; Mon, 20 Feb 2023 16:50:07 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUE2s-00081M-F0 for qemu-devel@nongnu.org; Mon, 20 Feb 2023 16:50:06 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-613-TEQnCKD7MiaK0RyWkNlUgg-1; Mon, 20 Feb 2023 16:49:49 -0500 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id E870880D0E9; Mon, 20 Feb 2023 21:49:47 +0000 (UTC) Received: from localhost (unknown [10.39.208.3]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1FC672026D2A; Mon, 20 Feb 2023 21:49:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676929800; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=AQFh/dB87jnAfGQ+7wT6qykz452ycaENXOMVp0qcrHM=; b=NJm4kJytNpXl0jiaBjHor/VRw1g/U0nt6f1D0VvB0+6ojbw2K1WOdQlUcAM8LRf3J9pUx4 brR4Yi9WLvfMTScMnPCiN9zIKXLi+mdyGbQBGpmj1GjmP5t5h58DnksnK9v7MEUODT/WaR 7OWKk7SgN0WP64Ey+/SR0ga9MXwmHZI= X-MC-Unique: TEQnCKD7MiaK0RyWkNlUgg-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Michael Roth , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Joel Stanley , Jason Wang , qemu-block@nongnu.org, Markus Armbruster , Thomas Huth , qemu-arm@nongnu.org, Stefan Berger , Laurent Vivier , Samuel Thibault , Stefan Weil , Fam Zheng , Paolo Bonzini , Kevin Wolf , Hanna Reitz , Stefan Hajnoczi , Peter Maydell , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v2 11/15] slirp: unregister the win32 SOCKET Date: Tue, 21 Feb 2023 01:48:55 +0400 Message-Id: <20230220214859.3792171-12-marcandre.lureau@redhat.com> In-Reply-To: <20230220214859.3792171-1-marcandre.lureau@redhat.com> References: <20230220214859.3792171-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.4 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=marcandre.lureau@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1676929903010100007 From: Marc-Andr=C3=A9 Lureau Presumably, this is what should happen when the SOCKET is to be removed. (it probably worked until now because closesocket() does it implicitly, but we never now how the slirp library could use the SOCKET later) Signed-off-by: Marc-Andr=C3=A9 Lureau --- net/slirp.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/net/slirp.c b/net/slirp.c index 0730a935ba..a7c35778a6 100644 --- a/net/slirp.c +++ b/net/slirp.c @@ -259,7 +259,9 @@ static void net_slirp_register_poll_fd(int fd, void *op= aque) =20 static void net_slirp_unregister_poll_fd(int fd, void *opaque) { - /* no qemu_fd_unregister */ +#ifdef WIN32 + qemu_socket_unselect(fd, NULL); +#endif } =20 static void net_slirp_notify(void *opaque) --=20 2.39.1 From nobody Wed May 15 04:47:22 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1676929929; cv=none; d=zohomail.com; s=zohoarc; b=CxWcEciQLOMmx8i4jVGqDSGPu8ePcr8iITGKu4dxh6xXB5DRBswDilSeozuPTo0u3cGMKnXxN9+6HmxIKxVIlwtNMwMAJxwo29tV1YMq0DNCmfHFbLtBDIFtu/F6UKJ4Br/gLhGJvpK92CF3GKcboAgWyL59Bo1SqFoWaHPxe9c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676929929; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=yhViJ0OHr5jGtHO67wWfbPRObY3fGOXAVcHvOoIgnys=; b=IUsXSM5+ThzxNPtJJuY2FgfTKOAAcmUHlf5rFSXoJ4RIUY3ssmmcclMsNwS7an0OYvk2Tft/BLjruncNeiRUViEEm1L8x3+HVu0E4T3+SbGa1hcSrDaiL6IavlMph/7Q91TQbG+pmTdTnjO3D1/R8++rMA6ETZQbWteXymeA6fI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676929929531757.0657043583694; Mon, 20 Feb 2023 13:52:09 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUE2v-0003cv-OE; Mon, 20 Feb 2023 16:50:05 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUE2u-0003bd-8c for qemu-devel@nongnu.org; Mon, 20 Feb 2023 16:50:04 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUE2o-00080w-DG for qemu-devel@nongnu.org; Mon, 20 Feb 2023 16:50:03 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-372-pvWp0RBOPAi-_9TAwxzb5A-1; Mon, 20 Feb 2023 16:49:52 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 518A5101A521; Mon, 20 Feb 2023 21:49:52 +0000 (UTC) Received: from localhost (unknown [10.39.208.3]) by smtp.corp.redhat.com (Postfix) with ESMTP id 492B718EC6; Mon, 20 Feb 2023 21:49:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676929797; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=yhViJ0OHr5jGtHO67wWfbPRObY3fGOXAVcHvOoIgnys=; b=GIHezvC765rDMzIUY9lXAcvvKbKtpk74Itp+TO5697HCBMb+CzhA5ns0xYcYqcpoFkBOdC 1ArQWgY5bU5Yx2yyLN0W4mThfig73dZrLathBzFN+aUgwbmM8zIwLesOzSQylKR97JvR+5 ZHP2sN8W3enWKxMEEMPmNHIgxZtVbME= X-MC-Unique: pvWp0RBOPAi-_9TAwxzb5A-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Michael Roth , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Joel Stanley , Jason Wang , qemu-block@nongnu.org, Markus Armbruster , Thomas Huth , qemu-arm@nongnu.org, Stefan Berger , Laurent Vivier , Samuel Thibault , Stefan Weil , Fam Zheng , Paolo Bonzini , Kevin Wolf , Hanna Reitz , Stefan Hajnoczi , Peter Maydell , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v2 12/15] slirp: open-code qemu_socket_(un)select() Date: Tue, 21 Feb 2023 01:48:56 +0400 Message-Id: <20230220214859.3792171-13-marcandre.lureau@redhat.com> In-Reply-To: <20230220214859.3792171-1-marcandre.lureau@redhat.com> References: <20230220214859.3792171-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.5 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=marcandre.lureau@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1676929931123100001 From: Marc-Andr=C3=A9 Lureau We are about to make the QEMU socket API use file-descriptor space only, but libslirp gives us SOCKET as fd, still. Signed-off-by: Marc-Andr=C3=A9 Lureau --- net/slirp.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/net/slirp.c b/net/slirp.c index a7c35778a6..c33b3e02e7 100644 --- a/net/slirp.c +++ b/net/slirp.c @@ -251,16 +251,20 @@ static void net_slirp_register_poll_fd(int fd, void *= opaque) #ifdef WIN32 AioContext *ctxt =3D qemu_get_aio_context(); =20 - qemu_socket_select(fd, event_notifier_get_handle(&ctxt->notifier), + if (WSAEventSelect(fd, event_notifier_get_handle(&ctxt->notifier), FD_READ | FD_ACCEPT | FD_CLOSE | - FD_CONNECT | FD_WRITE | FD_OOB, NULL); + FD_CONNECT | FD_WRITE | FD_OOB) !=3D 0) { + error_setg_win32(&error_warn, WSAGetLastError(), "failed to WSAEve= ntSelect()"); + } #endif } =20 static void net_slirp_unregister_poll_fd(int fd, void *opaque) { #ifdef WIN32 - qemu_socket_unselect(fd, NULL); + if (WSAEventSelect(fd, NULL, 0) !=3D 0) { + error_setg_win32(&error_warn, WSAGetLastError(), "failed to WSAEve= ntSelect()"); + } #endif } =20 --=20 2.39.1 From nobody Wed May 15 04:47:22 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1676929882; cv=none; d=zohomail.com; s=zohoarc; b=EBDnG1ABiM4dcoBw7nFVJxSto5FFQ26ZbxDdMys4W//bZzzqjKv2u3UyPjMU2U5CCBvJ7dI64/JwVoI2tN3PkWyN9GyhsgfVtB0MkkA/zFk4TLiHVxrMtvdch2Jc37yfqlcRAZHEOahgwXGc6KIqzEZHhwQ7eZj8XdHZq3nif5c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676929882; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=6t78gip3pYgzakIX8ENotQcatY8fq+DphycSZqeNo6Q=; b=MnRLaZp3GdvV+V1U3G4u9UeCvFmlx30+g29fFVOooEC5yIMQu9vt9eAf22Nw6ETOpEMnxIiB86M5/aJner88gv4t7lbQOYbE+tsp+72A8zSyrncPxIm+NVuWXfm2nBtr7fbKp7gE5UeB5iqjkn8ruDDGuv4C5N7hLsbkYh3bc80= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676929882782668.3952799740924; Mon, 20 Feb 2023 13:51:22 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUE3x-00054A-CN; Mon, 20 Feb 2023 16:51:09 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUE2w-0003dd-Ja for qemu-devel@nongnu.org; Mon, 20 Feb 2023 16:50:06 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUE2r-00081a-HM for qemu-devel@nongnu.org; Mon, 20 Feb 2023 16:50:06 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-636-VX3hvrABM0qtrXGjWf95Og-1; Mon, 20 Feb 2023 16:49:57 -0500 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id C258E101A52E; Mon, 20 Feb 2023 21:49:56 +0000 (UTC) Received: from localhost (unknown [10.39.208.3]) by smtp.corp.redhat.com (Postfix) with ESMTP id 35FC61121314; Mon, 20 Feb 2023 21:49:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676929800; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=6t78gip3pYgzakIX8ENotQcatY8fq+DphycSZqeNo6Q=; b=bnW6vYr1f74KpXf5hMO9EvBpSgMAJC1GCoX2Fo1gPO8Wr0amo7u7URnLb7YWcJ6hoT/els n9B8tpURoBkLOy6gz3EK05GXEsiBruaIgFj5FnsevuLRoOV1PPfa8a/Oq/UaLZxLDBee5E JxmVPWcSLZFiio+DcDyZfoFBdDEcjlQ= X-MC-Unique: VX3hvrABM0qtrXGjWf95Og-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Michael Roth , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Joel Stanley , Jason Wang , qemu-block@nongnu.org, Markus Armbruster , Thomas Huth , qemu-arm@nongnu.org, Stefan Berger , Laurent Vivier , Samuel Thibault , Stefan Weil , Fam Zheng , Paolo Bonzini , Kevin Wolf , Hanna Reitz , Stefan Hajnoczi , Peter Maydell , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v2 13/15] win32: avoid mixing SOCKET and file descriptor space Date: Tue, 21 Feb 2023 01:48:57 +0400 Message-Id: <20230220214859.3792171-14-marcandre.lureau@redhat.com> In-Reply-To: <20230220214859.3792171-1-marcandre.lureau@redhat.com> References: <20230220214859.3792171-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.3 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=marcandre.lureau@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1676929884951100001 From: Marc-Andr=C3=A9 Lureau Until now, a win32 SOCKET handle is often cast to an int file descriptor, as this is what other OS use for sockets. When necessary, QEMU eventually queries whether it's a socket with the help of fd_is_socket(). However, there is no guarantee of conflict between the fd and SOCKET space. Such conflict would have surprising consequences, we shouldn't mix them. Also, it is often forgotten that SOCKET must be closed with closesocket(), and not close(). Instead, let's make the win32 socket wrapper functions return and take a file descriptor, and let util/ wrappers do the fd/SOCKET conversion as necessary. A bit of adaptation is necessary in io/ as well. Unfortunately, we can't drop closesocket() usage, despite _open_osfhandle() documentation claiming transfer of ownership, testing shows bad behaviour if you forget to call closesocket(). Signed-off-by: Marc-Andr=C3=A9 Lureau --- include/sysemu/os-win32.h | 4 +- io/channel-watch.c | 6 +- util/aio-win32.c | 9 +- util/oslib-win32.c | 178 ++++++++++++++++++++++++++++++++------ 4 files changed, 164 insertions(+), 33 deletions(-) diff --git a/include/sysemu/os-win32.h b/include/sysemu/os-win32.h index ae0c9a3659..d440f4e03e 100644 --- a/include/sysemu/os-win32.h +++ b/include/sysemu/os-win32.h @@ -146,10 +146,10 @@ static inline void qemu_funlockfile(FILE *f) } =20 /* Helper for WSAEventSelect, to report errors */ -bool qemu_socket_select(SOCKET s, WSAEVENT hEventObject, +bool qemu_socket_select(int sockfd, WSAEVENT hEventObject, long lNetworkEvents, Error **errp); =20 -bool qemu_socket_unselect(SOCKET s, Error **errp); +bool qemu_socket_unselect(int sockfd, Error **errp); =20 /* We wrap all the sockets functions so that we can * set errno based on WSAGetLastError() diff --git a/io/channel-watch.c b/io/channel-watch.c index 6ac41009fa..64b486e378 100644 --- a/io/channel-watch.c +++ b/io/channel-watch.c @@ -275,13 +275,13 @@ GSource *qio_channel_create_fd_watch(QIOChannel *ioc, =20 #ifdef CONFIG_WIN32 GSource *qio_channel_create_socket_watch(QIOChannel *ioc, - int socket, + int sockfd, GIOCondition condition) { GSource *source; QIOChannelSocketSource *ssource; =20 - qemu_socket_select(socket, ioc->event, + qemu_socket_select(sockfd, ioc->event, FD_READ | FD_ACCEPT | FD_CLOSE | FD_CONNECT | FD_WRITE | FD_OOB, NULL); =20 @@ -293,7 +293,7 @@ GSource *qio_channel_create_socket_watch(QIOChannel *io= c, object_ref(OBJECT(ioc)); =20 ssource->condition =3D condition; - ssource->socket =3D socket; + ssource->socket =3D _get_osfhandle(sockfd); ssource->revents =3D 0; =20 ssource->fd.fd =3D (gintptr)ioc->event; diff --git a/util/aio-win32.c b/util/aio-win32.c index 08e8f5615d..6bded009a4 100644 --- a/util/aio-win32.c +++ b/util/aio-win32.c @@ -73,15 +73,18 @@ void aio_set_fd_handler(AioContext *ctx, { AioHandler *old_node; AioHandler *node =3D NULL; + SOCKET s; =20 if (!fd_is_socket(fd)) { error_report("fd=3D%d is not a socket, AIO implementation is missi= ng", fd); return; } =20 + s =3D _get_osfhandle(fd); + qemu_lockcnt_lock(&ctx->list_lock); QLIST_FOREACH(old_node, &ctx->aio_handlers, node) { - if (old_node->pfd.fd =3D=3D fd && !old_node->deleted) { + if (old_node->pfd.fd =3D=3D s && !old_node->deleted) { break; } } @@ -92,7 +95,7 @@ void aio_set_fd_handler(AioContext *ctx, =20 /* Alloc and insert if it's not already there */ node =3D g_new0(AioHandler, 1); - node->pfd.fd =3D fd; + node->pfd.fd =3D s; =20 node->pfd.events =3D 0; if (node->io_read) { @@ -120,7 +123,7 @@ void aio_set_fd_handler(AioContext *ctx, =20 QLIST_INSERT_HEAD_RCU(&ctx->aio_handlers, node, node); event =3D event_notifier_get_handle(&ctx->notifier); - qemu_socket_select(node->pfd.fd, event, bitmask, NULL); + qemu_socket_select(fd, event, bitmask, NULL); } if (old_node) { aio_remove_fd_handler(ctx, old_node); diff --git a/util/oslib-win32.c b/util/oslib-win32.c index dbd32acc98..1efeb2d262 100644 --- a/util/oslib-win32.c +++ b/util/oslib-win32.c @@ -283,13 +283,20 @@ char *qemu_get_pid_name(pid_t pid) } =20 =20 -bool qemu_socket_select(SOCKET s, WSAEVENT hEventObject, +bool qemu_socket_select(int sockfd, WSAEVENT hEventObject, long lNetworkEvents, Error **errp) { + SOCKET s =3D _get_osfhandle(sockfd); + if (errp =3D=3D NULL) { errp =3D &error_warn; } =20 + if (s =3D=3D INVALID_SOCKET) { + error_setg(errp, "invalid socket fd=3D%d", sockfd); + return false; + } + if (WSAEventSelect(s, hEventObject, lNetworkEvents) !=3D 0) { error_setg_win32(errp, WSAGetLastError(), "failed to WSAEventSelec= t()"); return false; @@ -298,9 +305,9 @@ bool qemu_socket_select(SOCKET s, WSAEVENT hEventObject, return true; } =20 -bool qemu_socket_unselect(SOCKET s, Error **errp) +bool qemu_socket_unselect(int sockfd, Error **errp) { - return qemu_socket_select(s, NULL, 0, errp); + return qemu_socket_select(sockfd, NULL, 0, errp); } =20 #undef connect @@ -308,7 +315,13 @@ int qemu_connect_wrap(int sockfd, const struct sockadd= r *addr, socklen_t addrlen) { int ret; - ret =3D connect(sockfd, addr, addrlen); + SOCKET s =3D _get_osfhandle(sockfd); + + if (s =3D=3D INVALID_SOCKET) { + return -1; + } + + ret =3D connect(s, addr, addrlen); if (ret < 0) { if (WSAGetLastError() =3D=3D WSAEWOULDBLOCK) { errno =3D EINPROGRESS; @@ -324,7 +337,13 @@ int qemu_connect_wrap(int sockfd, const struct sockadd= r *addr, int qemu_listen_wrap(int sockfd, int backlog) { int ret; - ret =3D listen(sockfd, backlog); + SOCKET s =3D _get_osfhandle(sockfd); + + if (s =3D=3D INVALID_SOCKET) { + return -1; + } + + ret =3D listen(s, backlog); if (ret < 0) { errno =3D socket_error(); } @@ -337,7 +356,13 @@ int qemu_bind_wrap(int sockfd, const struct sockaddr *= addr, socklen_t addrlen) { int ret; - ret =3D bind(sockfd, addr, addrlen); + SOCKET s =3D _get_osfhandle(sockfd); + + if (s =3D=3D INVALID_SOCKET) { + return -1; + } + + ret =3D bind(s, addr, addrlen); if (ret < 0) { errno =3D socket_error(); } @@ -348,12 +373,23 @@ int qemu_bind_wrap(int sockfd, const struct sockaddr = *addr, #undef socket int qemu_socket_wrap(int domain, int type, int protocol) { - int ret; - ret =3D socket(domain, type, protocol); - if (ret < 0) { + SOCKET s; + int fd; + + s =3D socket(domain, type, protocol); + if (s =3D=3D -1) { errno =3D socket_error(); + return -1; } - return ret; + + fd =3D _open_osfhandle(s, _O_BINARY); + if (fd < 0) { + closesocket(s); + /* _open_osfhandle may not set errno, and closesocket() may overri= de it */ + errno =3D ENOMEM; + } + + return fd; } =20 =20 @@ -361,12 +397,27 @@ int qemu_socket_wrap(int domain, int type, int protoc= ol) int qemu_accept_wrap(int sockfd, struct sockaddr *addr, socklen_t *addrlen) { - int ret; - ret =3D accept(sockfd, addr, addrlen); - if (ret < 0) { + int fd; + SOCKET s =3D _get_osfhandle(sockfd); + + if (s =3D=3D INVALID_SOCKET) { + return -1; + } + + s =3D accept(s, addr, addrlen); + if (s =3D=3D -1) { errno =3D socket_error(); + return -1; } - return ret; + + fd =3D _open_osfhandle(s, _O_BINARY); + if (fd < 0) { + closesocket(s); + /* _open_osfhandle may not set errno, and closesocket() may overri= de it */ + errno =3D ENOMEM; + } + + return fd; } =20 =20 @@ -374,7 +425,13 @@ int qemu_accept_wrap(int sockfd, struct sockaddr *addr, int qemu_shutdown_wrap(int sockfd, int how) { int ret; - ret =3D shutdown(sockfd, how); + SOCKET s =3D _get_osfhandle(sockfd); + + if (s =3D=3D INVALID_SOCKET) { + return -1; + } + + ret =3D shutdown(s, how); if (ret < 0) { errno =3D socket_error(); } @@ -386,7 +443,13 @@ int qemu_shutdown_wrap(int sockfd, int how) int qemu_ioctlsocket_wrap(int fd, int req, void *val) { int ret; - ret =3D ioctlsocket(fd, req, val); + SOCKET s =3D _get_osfhandle(fd); + + if (s =3D=3D INVALID_SOCKET) { + return -1; + } + + ret =3D ioctlsocket(s, req, val); if (ret < 0) { errno =3D socket_error(); } @@ -398,10 +461,27 @@ int qemu_ioctlsocket_wrap(int fd, int req, void *val) int qemu_closesocket_wrap(int fd) { int ret; - ret =3D closesocket(fd); + SOCKET s =3D _get_osfhandle(fd); + + if (s =3D=3D INVALID_SOCKET) { + return -1; + } + + /* + * close() must be called before closesocket(), otherwise close() retu= rns an + * error and sets EBADF. + */ + ret =3D close(fd); + if (ret < 0) { + return ret; + } + + /* closesocket() is required, even after close()! */ + ret =3D closesocket(s); if (ret < 0) { errno =3D socket_error(); } + return ret; } =20 @@ -411,7 +491,13 @@ int qemu_getsockopt_wrap(int sockfd, int level, int op= tname, void *optval, socklen_t *optlen) { int ret; - ret =3D getsockopt(sockfd, level, optname, optval, optlen); + SOCKET s =3D _get_osfhandle(sockfd); + + if (s =3D=3D INVALID_SOCKET) { + return -1; + } + + ret =3D getsockopt(s, level, optname, optval, optlen); if (ret < 0) { errno =3D socket_error(); } @@ -424,7 +510,13 @@ int qemu_setsockopt_wrap(int sockfd, int level, int op= tname, const void *optval, socklen_t optlen) { int ret; - ret =3D setsockopt(sockfd, level, optname, optval, optlen); + SOCKET s =3D _get_osfhandle(sockfd); + + if (s =3D=3D INVALID_SOCKET) { + return -1; + } + + ret =3D setsockopt(s, level, optname, optval, optlen); if (ret < 0) { errno =3D socket_error(); } @@ -437,7 +529,13 @@ int qemu_getpeername_wrap(int sockfd, struct sockaddr = *addr, socklen_t *addrlen) { int ret; - ret =3D getpeername(sockfd, addr, addrlen); + SOCKET s =3D _get_osfhandle(sockfd); + + if (s =3D=3D INVALID_SOCKET) { + return -1; + } + + ret =3D getpeername(s, addr, addrlen); if (ret < 0) { errno =3D socket_error(); } @@ -450,7 +548,13 @@ int qemu_getsockname_wrap(int sockfd, struct sockaddr = *addr, socklen_t *addrlen) { int ret; - ret =3D getsockname(sockfd, addr, addrlen); + SOCKET s =3D _get_osfhandle(sockfd); + + if (s =3D=3D INVALID_SOCKET) { + return -1; + } + + ret =3D getsockname(s, addr, addrlen); if (ret < 0) { errno =3D socket_error(); } @@ -462,7 +566,13 @@ int qemu_getsockname_wrap(int sockfd, struct sockaddr = *addr, ssize_t qemu_send_wrap(int sockfd, const void *buf, size_t len, int flags) { int ret; - ret =3D send(sockfd, buf, len, flags); + SOCKET s =3D _get_osfhandle(sockfd); + + if (s =3D=3D INVALID_SOCKET) { + return -1; + } + + ret =3D send(s, buf, len, flags); if (ret < 0) { errno =3D socket_error(); } @@ -475,7 +585,13 @@ ssize_t qemu_sendto_wrap(int sockfd, const void *buf, = size_t len, int flags, const struct sockaddr *addr, socklen_t addrlen) { int ret; - ret =3D sendto(sockfd, buf, len, flags, addr, addrlen); + SOCKET s =3D _get_osfhandle(sockfd); + + if (s =3D=3D INVALID_SOCKET) { + return -1; + } + + ret =3D sendto(s, buf, len, flags, addr, addrlen); if (ret < 0) { errno =3D socket_error(); } @@ -487,7 +603,13 @@ ssize_t qemu_sendto_wrap(int sockfd, const void *buf, = size_t len, int flags, ssize_t qemu_recv_wrap(int sockfd, void *buf, size_t len, int flags) { int ret; - ret =3D recv(sockfd, buf, len, flags); + SOCKET s =3D _get_osfhandle(sockfd); + + if (s =3D=3D INVALID_SOCKET) { + return -1; + } + + ret =3D recv(s, buf, len, flags); if (ret < 0) { errno =3D socket_error(); } @@ -500,7 +622,13 @@ ssize_t qemu_recvfrom_wrap(int sockfd, void *buf, size= _t len, int flags, struct sockaddr *addr, socklen_t *addrlen) { int ret; - ret =3D recvfrom(sockfd, buf, len, flags, addr, addrlen); + SOCKET s =3D _get_osfhandle(sockfd); + + if (s =3D=3D INVALID_SOCKET) { + return -1; + } + + ret =3D recvfrom(s, buf, len, flags, addr, addrlen); if (ret < 0) { errno =3D socket_error(); } --=20 2.39.1 From nobody Wed May 15 04:47:22 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1676929979; cv=none; d=zohomail.com; s=zohoarc; b=JmuuVHchXPkNctLSBjuQpgicXZKKcN1imbN+lKDNfRmoreWCnoa1m7nnCmG8+e6/k2zkE2W/OlbDpEQpNEDfmQOQrc+o9pGkyQ2ZIpsYPBd+3FS8FBN1Fv1K9s5cI34WxdbOWhNP/dMThyvkUxlm+GiRD0HekwX9zjz4uWmcAXM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676929979; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=1G1S/PVHl5irg4XwiYXHVjXzxapom3TbmLZaO3CHDHE=; b=Ry7nSN6HGoREAd+hgcsqWSObRPbc0BZSBNmUZbIBYUyL9Ia2T14aEW68SyxvpNcFOEoyg0OQP9o8YWTgDXYYs8s1DtEFSSL1r7LsY5JGk5BqMq1Ii6eDh0475rhpIZKJlr20caSqtmUe95ezdLvHKum4t/XnyEXI/RzF1wcy/v0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676929979507182.43859934569298; Mon, 20 Feb 2023 13:52:59 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUE4M-0006Ba-4l; Mon, 20 Feb 2023 16:51:34 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUE2z-0003pd-Re for qemu-devel@nongnu.org; Mon, 20 Feb 2023 16:50:09 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUE2y-0008F3-9P for qemu-devel@nongnu.org; Mon, 20 Feb 2023 16:50:09 -0500 Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-387-jee_rDl4PEq_oIc6oyJfzw-1; Mon, 20 Feb 2023 16:50:02 -0500 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id A76793810B09; Mon, 20 Feb 2023 21:50:01 +0000 (UTC) Received: from localhost (unknown [10.39.208.3]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2301B492B04; Mon, 20 Feb 2023 21:49:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676929807; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=1G1S/PVHl5irg4XwiYXHVjXzxapom3TbmLZaO3CHDHE=; b=dHRLV6n4o7kepEqHBwtxE0rY64x2/ey2uNiRKUjcXzgpAQzv6IXXRnMXxftndxx3SOKdhm BvYK4HyWOsTjvXfckmf3sXH0dCD6aaMc5bczwjelDwqdhrftNjew1KmxinYL0M5Mgn+A2p 1kQ/dzebqjEqtKZ5jpXbOKz2umIRqO8= X-MC-Unique: jee_rDl4PEq_oIc6oyJfzw-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Michael Roth , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Joel Stanley , Jason Wang , qemu-block@nongnu.org, Markus Armbruster , Thomas Huth , qemu-arm@nongnu.org, Stefan Berger , Laurent Vivier , Samuel Thibault , Stefan Weil , Fam Zheng , Paolo Bonzini , Kevin Wolf , Hanna Reitz , Stefan Hajnoczi , Peter Maydell , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v2 14/15] os-posix: remove useless ioctlsocket() define Date: Tue, 21 Feb 2023 01:48:58 +0400 Message-Id: <20230220214859.3792171-15-marcandre.lureau@redhat.com> In-Reply-To: <20230220214859.3792171-1-marcandre.lureau@redhat.com> References: <20230220214859.3792171-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.9 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=marcandre.lureau@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1676929981359100007 From: Marc-Andr=C3=A9 Lureau The API is specific to win32. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Daniel P. Berrang=C3=A9 --- include/sysemu/os-posix.h | 1 - 1 file changed, 1 deletion(-) diff --git a/include/sysemu/os-posix.h b/include/sysemu/os-posix.h index 58de7c994d..378213fc86 100644 --- a/include/sysemu/os-posix.h +++ b/include/sysemu/os-posix.h @@ -52,7 +52,6 @@ void os_setup_post(void); int os_mlock(void); =20 #define closesocket(s) close(s) -#define ioctlsocket(s, r, v) ioctl(s, r, v) =20 int os_set_daemonize(bool d); bool is_daemonized(void); --=20 2.39.1 From nobody Wed May 15 04:47:22 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1676929961; cv=none; d=zohomail.com; s=zohoarc; b=GvLPWzJeMyXXUUIa4C5UebkmOQY37FMN8k+LIFZ8coGu386kwFv9di2pFxdqklG9OjHPNLNqVoZbbE9yb/fT8RYAYRpNlGKJfAXgfqzmiTEvFZV/oroDo36iQjUgwa+9jG3hZAQ3UNqsDXMt1xZlhCptpAbiIscqoRzMqPjScW4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676929961; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=bFh4zbH63W7dVwqfPMudp53HSWUhyBLZxkdDaHKss5c=; b=UIdMm+VYt/91Zrj4cmbJWVl0EhXVQEoVIbVA8gi261vvwdfbsJiIyAnNcVQ3N6kx4r3HvFQ2aleuuAV07YrRPx7eZ12FZi7dx7HaLt3VnLpT+Nt+3hI+X4a/Zn9LBlTFVRuYDEklZnIhoaGhWZqTvd/gEMXv8coZLt6a/USVex4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676929960999748.9788725389321; Mon, 20 Feb 2023 13:52:40 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUE4N-0006S4-OT; Mon, 20 Feb 2023 16:51:35 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUE34-0003x0-2k for qemu-devel@nongnu.org; Mon, 20 Feb 2023 16:50:14 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUE31-0008G0-He for qemu-devel@nongnu.org; Mon, 20 Feb 2023 16:50:13 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-300-lXDtmEOoPw-Cdcz6f-mfZw-1; Mon, 20 Feb 2023 16:50:07 -0500 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 1CACD101A52E; Mon, 20 Feb 2023 21:50:07 +0000 (UTC) Received: from localhost (unknown [10.39.208.3]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8DFAD492B00; Mon, 20 Feb 2023 21:50:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676929810; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=bFh4zbH63W7dVwqfPMudp53HSWUhyBLZxkdDaHKss5c=; b=gn9RDQvCp5GvhMXycvNvqcgwI0768Q+aZjK59E+KpaNQThdAfUTPD3n5rTh/LujGLuPno6 mLIpLI6f5OgywDye3DRHA8+P/3a5AHjQmbdth2MEuFu7LcracvUHHYz4EftPxBuQjLqz4R BBgel5cXc57eF75Qg5+ybRa7ebzEYFU= X-MC-Unique: lXDtmEOoPw-Cdcz6f-mfZw-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Michael Roth , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Joel Stanley , Jason Wang , qemu-block@nongnu.org, Markus Armbruster , Thomas Huth , qemu-arm@nongnu.org, Stefan Berger , Laurent Vivier , Samuel Thibault , Stefan Weil , Fam Zheng , Paolo Bonzini , Kevin Wolf , Hanna Reitz , Stefan Hajnoczi , Peter Maydell , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v2 15/15] win32: replace closesocket() with close() wrapper Date: Tue, 21 Feb 2023 01:48:59 +0400 Message-Id: <20230220214859.3792171-16-marcandre.lureau@redhat.com> In-Reply-To: <20230220214859.3792171-1-marcandre.lureau@redhat.com> References: <20230220214859.3792171-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.10 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=marcandre.lureau@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1676929961271100013 From: Marc-Andr=C3=A9 Lureau Use a close() wrapper instead, so that we don't need to worry about closesocket() vs close() anymore, let's hope. Signed-off-by: Marc-Andr=C3=A9 Lureau --- include/sysemu/os-posix.h | 2 -- include/sysemu/os-win32.h | 8 ++++---- backends/tpm/tpm_emulator.c | 6 +++--- crypto/afalg.c | 6 +++--- hw/hyperv/syndbg.c | 4 ++-- io/channel-socket.c | 10 +++++----- net/dgram.c | 14 +++++++------- net/socket.c | 22 +++++++++++----------- tests/qtest/libqtest.c | 8 ++++---- tests/qtest/microbit-test.c | 2 +- tests/qtest/netdev-socket.c | 10 +++++----- tests/unit/socket-helpers.c | 8 ++++---- util/oslib-win32.c | 21 +++++++++++---------- util/qemu-sockets.c | 22 +++++++++++----------- 14 files changed, 71 insertions(+), 72 deletions(-) diff --git a/include/sysemu/os-posix.h b/include/sysemu/os-posix.h index 378213fc86..1030d39904 100644 --- a/include/sysemu/os-posix.h +++ b/include/sysemu/os-posix.h @@ -51,8 +51,6 @@ void os_daemonize(void); void os_setup_post(void); int os_mlock(void); =20 -#define closesocket(s) close(s) - int os_set_daemonize(bool d); bool is_daemonized(void); =20 diff --git a/include/sysemu/os-win32.h b/include/sysemu/os-win32.h index d440f4e03e..f9a6f71b5a 100644 --- a/include/sysemu/os-win32.h +++ b/include/sysemu/os-win32.h @@ -155,6 +155,10 @@ bool qemu_socket_unselect(int sockfd, Error **errp); * set errno based on WSAGetLastError() */ =20 +#undef close +#define close qemu_close_wrap +int qemu_close_wrap(int fd); + #undef connect #define connect qemu_connect_wrap int qemu_connect_wrap(int sockfd, const struct sockaddr *addr, @@ -186,10 +190,6 @@ int qemu_shutdown_wrap(int sockfd, int how); #define ioctlsocket qemu_ioctlsocket_wrap int qemu_ioctlsocket_wrap(int fd, int req, void *val); =20 -#undef closesocket -#define closesocket qemu_closesocket_wrap -int qemu_closesocket_wrap(int fd); - #undef getsockopt #define getsockopt qemu_getsockopt_wrap int qemu_getsockopt_wrap(int sockfd, int level, int optname, diff --git a/backends/tpm/tpm_emulator.c b/backends/tpm/tpm_emulator.c index d18144b92e..402a2d6312 100644 --- a/backends/tpm/tpm_emulator.c +++ b/backends/tpm/tpm_emulator.c @@ -573,13 +573,13 @@ static int tpm_emulator_prepare_data_fd(TPMEmulator *= tpm_emu) goto err_exit; } =20 - closesocket(fds[1]); + close(fds[1]); =20 return 0; =20 err_exit: - closesocket(fds[0]); - closesocket(fds[1]); + close(fds[0]); + close(fds[1]); return -1; } =20 diff --git a/crypto/afalg.c b/crypto/afalg.c index 10046bb0ae..348301e703 100644 --- a/crypto/afalg.c +++ b/crypto/afalg.c @@ -59,7 +59,7 @@ qcrypto_afalg_socket_bind(const char *type, const char *n= ame, =20 if (bind(sbind, (const struct sockaddr *)&salg, sizeof(salg)) !=3D 0) { error_setg_errno(errp, errno, "Failed to bind socket"); - closesocket(sbind); + close(sbind); return -1; } =20 @@ -105,11 +105,11 @@ void qcrypto_afalg_comm_free(QCryptoAFAlg *afalg) } =20 if (afalg->tfmfd !=3D -1) { - closesocket(afalg->tfmfd); + close(afalg->tfmfd); } =20 if (afalg->opfd !=3D -1) { - closesocket(afalg->opfd); + close(afalg->opfd); } =20 g_free(afalg); diff --git a/hw/hyperv/syndbg.c b/hw/hyperv/syndbg.c index 94fe1b534b..065e12fb1e 100644 --- a/hw/hyperv/syndbg.c +++ b/hw/hyperv/syndbg.c @@ -340,7 +340,7 @@ static void hv_syndbg_realize(DeviceState *dev, Error *= *errp) syndbg->servaddr.sin_family =3D AF_INET; if (connect(syndbg->socket, (struct sockaddr *)&syndbg->servaddr, sizeof(syndbg->servaddr)) < 0) { - closesocket(syndbg->socket); + close(syndbg->socket); error_setg(errp, "%s failed to connect to socket", TYPE_HV_SYNDBG); return; } @@ -357,7 +357,7 @@ static void hv_syndbg_unrealize(DeviceState *dev) =20 if (syndbg->socket > 0) { qemu_set_fd_handler(syndbg->socket, NULL, NULL, NULL); - closesocket(syndbg->socket); + close(syndbg->socket); } } =20 diff --git a/io/channel-socket.c b/io/channel-socket.c index 03757c7a7e..b0ea7d48b3 100644 --- a/io/channel-socket.c +++ b/io/channel-socket.c @@ -159,7 +159,7 @@ int qio_channel_socket_connect_sync(QIOChannelSocket *i= oc, =20 trace_qio_channel_socket_connect_complete(ioc, fd); if (qio_channel_socket_set_fd(ioc, fd, errp) < 0) { - closesocket(fd); + close(fd); return -1; } =20 @@ -233,7 +233,7 @@ int qio_channel_socket_listen_sync(QIOChannelSocket *io= c, =20 trace_qio_channel_socket_listen_complete(ioc, fd); if (qio_channel_socket_set_fd(ioc, fd, errp) < 0) { - closesocket(fd); + close(fd); return -1; } qio_channel_set_feature(QIO_CHANNEL(ioc), QIO_CHANNEL_FEATURE_LISTEN); @@ -310,7 +310,7 @@ int qio_channel_socket_dgram_sync(QIOChannelSocket *ioc, =20 trace_qio_channel_socket_dgram_complete(ioc, fd); if (qio_channel_socket_set_fd(ioc, fd, errp) < 0) { - closesocket(fd); + close(fd); return -1; } =20 @@ -444,7 +444,7 @@ static void qio_channel_socket_finalize(Object *obj) #ifdef WIN32 qemu_socket_unselect(ioc->fd, NULL); #endif - closesocket(ioc->fd); + close(ioc->fd); ioc->fd =3D -1; } } @@ -852,7 +852,7 @@ qio_channel_socket_close(QIOChannel *ioc, socket_listen_cleanup(sioc->fd, errp); } =20 - if (closesocket(sioc->fd) < 0) { + if (close(sioc->fd) < 0) { sioc->fd =3D -1; error_setg_errno(&err, errno, "Unable to close socket"); error_propagate(errp, err); diff --git a/net/dgram.c b/net/dgram.c index 9f7bf38376..48f653bceb 100644 --- a/net/dgram.c +++ b/net/dgram.c @@ -230,7 +230,7 @@ static int net_dgram_mcast_create(struct sockaddr_in *m= castaddr, return fd; fail: if (fd >=3D 0) { - closesocket(fd); + close(fd); } return -1; } @@ -352,7 +352,7 @@ static int net_dgram_mcast_init(NetClientState *peer, if (convert_host_port(saddr, local->u.inet.host, local->u.inet= .port, errp) < 0) { g_free(saddr); - closesocket(fd); + close(fd); return -1; } =20 @@ -360,14 +360,14 @@ static int net_dgram_mcast_init(NetClientState *peer, if (saddr->sin_addr.s_addr =3D=3D 0) { error_setg(errp, "can't setup multicast destination addres= s"); g_free(saddr); - closesocket(fd); + close(fd); return -1; } /* clone dgram socket */ newfd =3D net_dgram_mcast_create(saddr, NULL, errp); if (newfd < 0) { g_free(saddr); - closesocket(fd); + close(fd); return -1; } /* clone newfd to fd, close newfd */ @@ -494,14 +494,14 @@ int net_init_dgram(const Netdev *netdev, const char *= name, if (ret < 0) { error_setg_errno(errp, errno, "can't set socket option SO_REUSEADDR"); - closesocket(fd); + close(fd); return -1; } ret =3D bind(fd, (struct sockaddr *)&laddr_in, sizeof(laddr_in)); if (ret < 0) { error_setg_errno(errp, errno, "can't bind ip=3D%s to socket", inet_ntoa(laddr_in.sin_addr)); - closesocket(fd); + close(fd); return -1; } qemu_socket_set_nonblock(fd); @@ -548,7 +548,7 @@ int net_init_dgram(const Netdev *netdev, const char *na= me, if (ret < 0) { error_setg_errno(errp, errno, "can't bind unix=3D%s to socket", laddr_un.sun_path); - closesocket(fd); + close(fd); return -1; } qemu_socket_set_nonblock(fd); diff --git a/net/socket.c b/net/socket.c index 2fc5696755..ba6e5b0b00 100644 --- a/net/socket.c +++ b/net/socket.c @@ -172,7 +172,7 @@ static void net_socket_send(void *opaque) if (s->listen_fd !=3D -1) { qemu_set_fd_handler(s->listen_fd, net_socket_accept, NULL, s); } - closesocket(s->fd); + close(s->fd); =20 s->fd =3D -1; net_socket_rs_init(&s->rs, net_socket_rs_finalize, false); @@ -299,7 +299,7 @@ static int net_socket_mcast_create(struct sockaddr_in *= mcastaddr, return fd; fail: if (fd >=3D 0) - closesocket(fd); + close(fd); return -1; } =20 @@ -314,7 +314,7 @@ static void net_socket_cleanup(NetClientState *nc) } if (s->listen_fd !=3D -1) { qemu_set_fd_handler(s->listen_fd, NULL, NULL, NULL); - closesocket(s->listen_fd); + close(s->listen_fd); s->listen_fd =3D -1; } } @@ -399,7 +399,7 @@ static NetSocketState *net_socket_fd_init_dgram(NetClie= ntState *peer, return s; =20 err: - closesocket(fd); + close(fd); return NULL; } =20 @@ -456,7 +456,7 @@ static NetSocketState *net_socket_fd_init(NetClientStat= e *peer, if(getsockopt(fd, SOL_SOCKET, SO_TYPE, (char *)&so_type, (socklen_t *)&optlen)< 0) { error_setg(errp, "can't get socket option SO_TYPE"); - closesocket(fd); + close(fd); return NULL; } switch(so_type) { @@ -468,7 +468,7 @@ static NetSocketState *net_socket_fd_init(NetClientStat= e *peer, default: error_setg(errp, "socket type=3D%d for fd=3D%d must be either" " SOCK_DGRAM or SOCK_STREAM", so_type, fd); - closesocket(fd); + close(fd); } return NULL; } @@ -526,13 +526,13 @@ static int net_socket_listen_init(NetClientState *pee= r, if (ret < 0) { error_setg_errno(errp, errno, "can't bind ip=3D%s to socket", inet_ntoa(saddr.sin_addr)); - closesocket(fd); + close(fd); return -1; } ret =3D listen(fd, 0); if (ret < 0) { error_setg_errno(errp, errno, "can't listen on socket"); - closesocket(fd); + close(fd); return -1; } =20 @@ -579,7 +579,7 @@ static int net_socket_connect_init(NetClientState *peer, break; } else { error_setg_errno(errp, errno, "can't connect socket"); - closesocket(fd); + close(fd); return -1; } } else { @@ -671,14 +671,14 @@ static int net_socket_udp_init(NetClientState *peer, if (ret < 0) { error_setg_errno(errp, errno, "can't set socket option SO_REUSEADDR"); - closesocket(fd); + close(fd); return -1; } ret =3D bind(fd, (struct sockaddr *)&laddr, sizeof(laddr)); if (ret < 0) { error_setg_errno(errp, errno, "can't bind ip=3D%s to socket", inet_ntoa(laddr.sin_addr)); - closesocket(fd); + close(fd); return -1; } qemu_socket_set_nonblock(fd); diff --git a/tests/qtest/libqtest.c b/tests/qtest/libqtest.c index 2bfd460531..dee2032331 100644 --- a/tests/qtest/libqtest.c +++ b/tests/qtest/libqtest.c @@ -124,7 +124,7 @@ static int socket_accept(int sock) (void *)&timeout, sizeof(timeout))) { fprintf(stderr, "%s failed to set SO_RCVTIMEO: %s\n", __func__, strerror(errno)); - closesocket(sock); + close(sock); return -1; } =20 @@ -135,7 +135,7 @@ static int socket_accept(int sock) if (ret =3D=3D -1) { fprintf(stderr, "%s failed: %s\n", __func__, strerror(errno)); } - closesocket(sock); + close(sock); =20 return ret; } @@ -564,8 +564,8 @@ void qtest_quit(QTestState *s) qtest_remove_abrt_handler(s); =20 qtest_kill_qemu(s); - closesocket(s->fd); - closesocket(s->qmp_fd); + close(s->fd); + close(s->qmp_fd); g_string_free(s->rx, true); =20 for (GList *it =3D s->pending_events; it !=3D NULL; it =3D it->next) { diff --git a/tests/qtest/microbit-test.c b/tests/qtest/microbit-test.c index 4bc267020b..6022a92b6a 100644 --- a/tests/qtest/microbit-test.c +++ b/tests/qtest/microbit-test.c @@ -107,7 +107,7 @@ static void test_nrf51_uart(void) g_assert_true(recv(sock_fd, s, 10, 0) =3D=3D 5); g_assert_true(memcmp(s, "world", 5) =3D=3D 0); =20 - closesocket(sock_fd); + close(sock_fd); =20 qtest_quit(qts); } diff --git a/tests/qtest/netdev-socket.c b/tests/qtest/netdev-socket.c index 1d98dca821..614b9bce28 100644 --- a/tests/qtest/netdev-socket.c +++ b/tests/qtest/netdev-socket.c @@ -95,7 +95,7 @@ static int inet_get_free_port_multiple(int nb, int *port,= bool ipv6) =20 nb =3D i; for (i =3D 0; i < nb; i++) { - closesocket(sock[i]); + close(sock[i]); } =20 return nb; @@ -262,8 +262,8 @@ static void test_stream_fd(void) qtest_quit(qts1); qtest_quit(qts0); =20 - closesocket(sock[0]); - closesocket(sock[1]); + close(sock[0]); + close(sock[1]); } #endif =20 @@ -388,8 +388,8 @@ static void test_dgram_fd(void) qtest_quit(qts1); qtest_quit(qts0); =20 - closesocket(sv[0]); - closesocket(sv[1]); + close(sv[0]); + close(sv[1]); } #endif =20 diff --git a/tests/unit/socket-helpers.c b/tests/unit/socket-helpers.c index 914b3aa0cf..6de27baee2 100644 --- a/tests/unit/socket-helpers.c +++ b/tests/unit/socket-helpers.c @@ -117,13 +117,13 @@ static int socket_can_bind_connect(const char *hostna= me, int family) =20 cleanup: if (afd !=3D -1) { - closesocket(afd); + close(afd); } if (cfd !=3D -1) { - closesocket(cfd); + close(cfd); } if (lfd !=3D -1) { - closesocket(lfd); + close(lfd); } if (res) { freeaddrinfo(res); @@ -160,7 +160,7 @@ void socket_check_afunix_support(bool *has_afunix) int fd; =20 fd =3D socket(PF_UNIX, SOCK_STREAM, 0); - closesocket(fd); + close(fd); =20 #ifdef _WIN32 *has_afunix =3D (fd !=3D (int)INVALID_SOCKET); diff --git a/util/oslib-win32.c b/util/oslib-win32.c index 1efeb2d262..d1f65fa7bf 100644 --- a/util/oslib-win32.c +++ b/util/oslib-win32.c @@ -457,16 +457,15 @@ int qemu_ioctlsocket_wrap(int fd, int req, void *val) } =20 =20 -#undef closesocket -int qemu_closesocket_wrap(int fd) +#undef close +int qemu_close_wrap(int fd) { + SOCKET s =3D INVALID_SOCKET; int ret; - SOCKET s =3D _get_osfhandle(fd); =20 - if (s =3D=3D INVALID_SOCKET) { - return -1; + if (fd_is_socket(fd)) { + s =3D _get_osfhandle(fd); } - /* * close() must be called before closesocket(), otherwise close() retu= rns an * error and sets EBADF. @@ -476,10 +475,12 @@ int qemu_closesocket_wrap(int fd) return ret; } =20 - /* closesocket() is required, even after close()! */ - ret =3D closesocket(s); - if (ret < 0) { - errno =3D socket_error(); + if (s !=3D INVALID_SOCKET) { + /* closesocket() is required, even after close()! */ + ret =3D closesocket(s); + if (ret < 0) { + errno =3D socket_error(); + } } =20 return ret; diff --git a/util/qemu-sockets.c b/util/qemu-sockets.c index 6538859b87..c06a4dce77 100644 --- a/util/qemu-sockets.c +++ b/util/qemu-sockets.c @@ -326,7 +326,7 @@ static int inet_listen_saddr(InetSocketAddress *saddr, * recover from this situation, so we need to recreate the * socket to allow bind attempts for subsequent ports: */ - closesocket(slisten); + close(slisten); slisten =3D -1; } } @@ -337,7 +337,7 @@ static int inet_listen_saddr(InetSocketAddress *saddr, listen_failed: saved_errno =3D errno; if (slisten >=3D 0) { - closesocket(slisten); + close(slisten); } freeaddrinfo(res); errno =3D saved_errno; @@ -380,7 +380,7 @@ static int inet_connect_addr(const InetSocketAddress *s= addr, if (rc < 0) { error_setg_errno(errp, errno, "Failed to connect to '%s:%s'", saddr->host, saddr->port); - closesocket(sock); + close(sock); return -1; } =20 @@ -483,7 +483,7 @@ int inet_connect_saddr(InetSocketAddress *saddr, Error = **errp) =20 if (ret < 0) { error_setg_errno(errp, errno, "Unable to set KEEPALIVE"); - closesocket(sock); + close(sock); return -1; } } @@ -580,7 +580,7 @@ static int inet_dgram_saddr(InetSocketAddress *sraddr, =20 err: if (sock !=3D -1) { - closesocket(sock); + close(sock); } if (local) { freeaddrinfo(local); @@ -777,7 +777,7 @@ static int vsock_connect_addr(const VsockSocketAddress = *vaddr, if (rc < 0) { error_setg_errno(errp, errno, "Failed to connect to '%s:%s'", vaddr->cid, vaddr->port); - closesocket(sock); + close(sock); return -1; } =20 @@ -814,13 +814,13 @@ static int vsock_listen_saddr(VsockSocketAddress *vad= dr, =20 if (bind(slisten, (const struct sockaddr *)&svm, sizeof(svm)) !=3D 0) { error_setg_errno(errp, errno, "Failed to bind socket"); - closesocket(slisten); + close(slisten); return -1; } =20 if (listen(slisten, num) !=3D 0) { error_setg_errno(errp, errno, "Failed to listen on socket"); - closesocket(slisten); + close(slisten); return -1; } return slisten; @@ -978,7 +978,7 @@ static int unix_listen_saddr(UnixSocketAddress *saddr, =20 err: g_free(pathbuf); - closesocket(sock); + close(sock); return -1; } =20 @@ -1041,7 +1041,7 @@ static int unix_connect_saddr(UnixSocketAddress *sadd= r, Error **errp) return sock; =20 err: - closesocket(sock); + close(sock); return -1; } =20 @@ -1238,7 +1238,7 @@ int socket_listen(SocketAddress *addr, int num, Error= **errp) */ if (listen(fd, num) !=3D 0) { error_setg_errno(errp, errno, "Failed to listen on fd socket"); - closesocket(fd); + close(fd); return -1; } break; --=20 2.39.1