From nobody Wed May 15 07:19:08 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=1676983734; cv=none; d=zohomail.com; s=zohoarc; b=A9aJqTM23ewPfrTYGqFWqBIUPuCiMAuEyyK0SMDNGB9YAeilxF8azT2kioiuOF2bXYtYHd7yIIAR80Bdj9Y2+Ai8lcVo+fay/coKfLBIuMzlNjRwtYenaRqymedA0lhZ52luIpi0HHiIYuoFNrnsaIknH562Bu4kkJQab0ghENU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676983734; 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=FdBPB+RDG5OUe3X5u5+AagfzlDwHupOC+vr+B897S4c=; b=GV+NLOT+l81xtzMcc8o9FRhP17wzIWRthWxAEMXaOsrAFUkM+5VHZ64KzQK0SH/Y6diuk7FU10SZJJw8YpruSixKUvT+Hhs78oMqK2x33uosrder6qzQ3WvZdMM0mIAOGRs5B1nafinA+AA1Sur8jS0HurR8Fccdxwh9AkN2Pr0= 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 1676983734806395.31553179931143; Tue, 21 Feb 2023 04:48:54 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUS4C-0004w5-7z; Tue, 21 Feb 2023 07:48:20 -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 1pUS49-0004tk-GF for qemu-devel@nongnu.org; Tue, 21 Feb 2023 07:48:18 -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 1pUS47-0007oI-Nv for qemu-devel@nongnu.org; Tue, 21 Feb 2023 07:48:17 -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-192-eXnikXA5Nwe8faLO4HubBg-1; Tue, 21 Feb 2023 07:48:11 -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 C653585A588; Tue, 21 Feb 2023 12:48:10 +0000 (UTC) Received: from localhost (unknown [10.39.208.31]) by smtp.corp.redhat.com (Postfix) with ESMTP id 98C082026D4B; Tue, 21 Feb 2023 12:48:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676983695; 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=FdBPB+RDG5OUe3X5u5+AagfzlDwHupOC+vr+B897S4c=; b=JIUGAQHRFAzwVmqW5yu1KCBTwwCPYtp47WOu5UFf9dHD9pIhb8tpBSZ5z0RsPYvdeoioNq AEdpysKyUUp6x7n470h1tvFcv45j++JgrgqUPuRvpc3D2fQnhqnrrNYqMlEP5fB/ys7SGu QKe77UiGlP+3ZJmEd1225eAajr/HgGA= X-MC-Unique: eXnikXA5Nwe8faLO4HubBg-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Samuel Thibault , Jason Wang , Paolo Bonzini , Michael Roth , qemu-arm@nongnu.org, Laurent Vivier , Thomas Huth , Kevin Wolf , qemu-block@nongnu.org, armbru@redhat.com, Peter Maydell , Stefan Hajnoczi , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Stefan Weil , Fam Zheng , Stefan Berger , Joel Stanley , Hanna Reitz , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v3 01/16] util: drop qemu_fork() Date: Tue, 21 Feb 2023 16:47:46 +0400 Message-Id: <20230221124802.4103554-2-marcandre.lureau@redhat.com> In-Reply-To: <20230221124802.4103554-1-marcandre.lureau@redhat.com> References: <20230221124802.4103554-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.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: 1676983735431100006 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.2 From nobody Wed May 15 07:19:08 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=1676983740; cv=none; d=zohomail.com; s=zohoarc; b=cS1YJ3gtNfyIn9vPdzvavu9zBCRLbr2om91RetFnPPKghoUjdtpFHEN1Tjeeo/M7Pah5FIVDf+avxiTjiT2yFPs3VL11nMJo74vG4YWMJGHWts674FbwdK+4XXrjGwTU7eGf2DQvsUdpYKxa7q23g/wvQpU1Z7RdE8M7Dj0qOnM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676983740; 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=YjEQm1F5xM6Ei/i3uH49XnaqSU42QquOa8Xq7bTbqW4=; b=Yr6t8zkQziK040f1OtPAIY17FnsiMo1dm6wWYyabUoSXAuFj1bJkRcYMAPBA7HuaBkRmJsvoK6g6FZF0ASzASnAaifVCh+vVkRUA63X/w+RoUrd4xaK3Z6jjM7wfyPwfrtzXZ5c0FL4DLZF19R7XEMrjJGu824l335EtFulFrSg= 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 1676983740875851.1678911877574; Tue, 21 Feb 2023 04:49:00 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUS4D-0004yk-T7; Tue, 21 Feb 2023 07:48:22 -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 1pUS4B-0004vY-Ik for qemu-devel@nongnu.org; Tue, 21 Feb 2023 07:48:19 -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 1pUS49-0007oT-OQ for qemu-devel@nongnu.org; Tue, 21 Feb 2023 07:48:19 -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-582-sNMVaeEQPXu184XsydlM0w-1; Tue, 21 Feb 2023 07:48:15 -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 BE80F3C025BD; Tue, 21 Feb 2023 12:48:14 +0000 (UTC) Received: from localhost (unknown [10.39.208.31]) by smtp.corp.redhat.com (Postfix) with ESMTP id 059034014CF3; Tue, 21 Feb 2023 12:48:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676983696; 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=YjEQm1F5xM6Ei/i3uH49XnaqSU42QquOa8Xq7bTbqW4=; b=fUHAfn79kcVV8mpIc4wRPVPBbkdRjdRsK/vFph9++anb85G+uDSLvJM64+LFfaQIhQUYRB 5TfQe0MGzT0ONLxRVucM1AJEwBI1n2TkGm7fUxEQE5tHP5GX19ulNqNn2wbhSGA2AWoY7z FkOjL5ivcu98DkBfvjXM37QnJ9meRqc= X-MC-Unique: sNMVaeEQPXu184XsydlM0w-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Samuel Thibault , Jason Wang , Paolo Bonzini , Michael Roth , qemu-arm@nongnu.org, Laurent Vivier , Thomas Huth , Kevin Wolf , qemu-block@nongnu.org, armbru@redhat.com, Peter Maydell , Stefan Hajnoczi , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Stefan Weil , Fam Zheng , Stefan Berger , Joel Stanley , Hanna Reitz , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v3 02/16] tests: use closesocket() Date: Tue, 21 Feb 2023 16:47:47 +0400 Message-Id: <20230221124802.4103554-3-marcandre.lureau@redhat.com> In-Reply-To: <20230221124802.4103554-1-marcandre.lureau@redhat.com> References: <20230221124802.4103554-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=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: 1676983741551100001 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.2 From nobody Wed May 15 07:19:08 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=1676983932; cv=none; d=zohomail.com; s=zohoarc; b=c/SARYZos/ARXCgl/scHPHzWfTozJP6LjhUgSNViZg2Kerot3R0/Yr1FUUVg0xlLixLLQy98sO54M7LXnpOgQrouQceIjuwa810bKXeNW3CGHHmR2g/9vGIUmyOLngfLDgWsfr6VSF/ZvkEER1NT9JyVqP68AbDF4PKfOofbc5I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676983932; 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=NyPsBp7a1Zd/f/PnlYKoqadMjaVEQg/Z5bS9x1n8BZQ=; b=MS1gDXYlCtmerWCOtgxQJN5e63gzLXVhfQx9HgQ0kneppfL/GYtfwMzYKLZcdV/NRYgPBHkpDSpoidMF7zwUDQ4erhGnhBtwc3UuZJp8klPh+U0BGm4h+TQEMHFdkLdnpPyMxaUOWQF1NbIOtv2X5s7MP2agnZMBmkwxrkYnwh4= 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 1676983932740114.44850768819629; Tue, 21 Feb 2023 04:52:12 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUS4L-00057r-Oc; Tue, 21 Feb 2023 07:48: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 1pUS4J-00052Z-6q for qemu-devel@nongnu.org; Tue, 21 Feb 2023 07:48:27 -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 1pUS4H-0007pZ-FE for qemu-devel@nongnu.org; Tue, 21 Feb 2023 07:48:26 -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-191-ZlPq1Zj1Pr6YlTGZVfZigQ-1; Tue, 21 Feb 2023 07:48:21 -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 D0BA32A59541; Tue, 21 Feb 2023 12:48:18 +0000 (UTC) Received: from localhost (unknown [10.39.208.31]) by smtp.corp.redhat.com (Postfix) with ESMTP id 957784014CF3; Tue, 21 Feb 2023 12:48:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676983704; 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=NyPsBp7a1Zd/f/PnlYKoqadMjaVEQg/Z5bS9x1n8BZQ=; b=OeAwMmvDQrIwoMi8xEgDhjYC475CsVYMintx58tRJu48jqmAumy6Qov7hP3/8S6tV1opQ2 LlI1FxTbapTVb7Jbeb1M/w+WeELUHil+PXtkom7crPVJyjMuJ/z1BF9jNdHbL7i+Ug9ZZv mpqJZhuapWa5vWn6nKfj0GXRCTh3Ps0= X-MC-Unique: ZlPq1Zj1Pr6YlTGZVfZigQ-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Samuel Thibault , Jason Wang , Paolo Bonzini , Michael Roth , qemu-arm@nongnu.org, Laurent Vivier , Thomas Huth , Kevin Wolf , qemu-block@nongnu.org, armbru@redhat.com, Peter Maydell , Stefan Hajnoczi , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Stefan Weil , Fam Zheng , Stefan Berger , Joel Stanley , Hanna Reitz , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v3 03/16] io: use closesocket() Date: Tue, 21 Feb 2023 16:47:48 +0400 Message-Id: <20230221124802.4103554-4-marcandre.lureau@redhat.com> In-Reply-To: <20230221124802.4103554-1-marcandre.lureau@redhat.com> References: <20230221124802.4103554-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: 1676983934336100003 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.2 From nobody Wed May 15 07:19:08 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=1676983764; cv=none; d=zohomail.com; s=zohoarc; b=MJVAdnJ3YE43e7Dn2BJaQyukYVOGnzo9dUNGS5Yy25nRHlcuEpkA+YJdcpynmLNwZ0nNYtoEaXpMFW7bjuLVbzUkyKCNJCATqrXAvrZ+Awl/+PoTpE4+GNayDL/Rut9eeiqAvX+EVRX3C5FkjaejGSSyTac0WWl7ns+uzlbHtwA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676983764; 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=nl9rYr1LeoSXQmWX/qOPZeg0gY/F/3CSnvmyxLivaDA=; b=Oi6e4e3uCzAWxVpeApJ4mmqTnvvfXNgyggOl4WdC6xrMTViZFaTjlGkltsbxAqdoLahLzIVFd70dOo8DxGioBS8vY7IWtuonM6MOukzFZRSg4xNYykLmMvfssIIft9nHdc8yC+5zalhAqHLooUTktaqpbE71xfiQcQznbXYZiGo= 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 1676983764043977.1031253052286; Tue, 21 Feb 2023 04:49:24 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUS4P-0005Bo-TG; Tue, 21 Feb 2023 07:48:33 -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 1pUS4N-0005Al-NW for qemu-devel@nongnu.org; Tue, 21 Feb 2023 07:48:31 -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 1pUS4M-0007qw-33 for qemu-devel@nongnu.org; Tue, 21 Feb 2023 07:48:31 -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-26-Eb3fgGvAOHmrmYe7D8semA-1; Tue, 21 Feb 2023 07:48:24 -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 BC1C785A588; Tue, 21 Feb 2023 12:48:23 +0000 (UTC) Received: from localhost (unknown [10.39.208.31]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8E40B2026D4B; Tue, 21 Feb 2023 12:48:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676983709; 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=nl9rYr1LeoSXQmWX/qOPZeg0gY/F/3CSnvmyxLivaDA=; b=bl0Azdqcii4tGoL/UidQIXLX0XSUY0nbuBeLT/9FE6kCVmb8CY+pLk4Ggcf0nK0PfRR4+0 s2sn4r3pXHnq8MhTXQX4eVcbF6ffJ6vGte3jkL2foH2T8MBOHeB64AD3KSXL4HsSLaQXGp 0vHfRfANRi9wrT+NyuWz8npzGvHq6kg= X-MC-Unique: Eb3fgGvAOHmrmYe7D8semA-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Samuel Thibault , Jason Wang , Paolo Bonzini , Michael Roth , qemu-arm@nongnu.org, Laurent Vivier , Thomas Huth , Kevin Wolf , qemu-block@nongnu.org, armbru@redhat.com, Peter Maydell , Stefan Hajnoczi , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Stefan Weil , Fam Zheng , Stefan Berger , Joel Stanley , Hanna Reitz , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v3 04/16] tests: add test-error-report Date: Tue, 21 Feb 2023 16:47:49 +0400 Message-Id: <20230221124802.4103554-5-marcandre.lureau@redhat.com> In-Reply-To: <20230221124802.4103554-1-marcandre.lureau@redhat.com> References: <20230221124802.4103554-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.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: 1676983765417100003 From: Marc-Andr=C3=A9 Lureau Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Stefan Berger --- tests/unit/test-error-report.c | 121 +++++++++++++++++++++++++++++++++ tests/unit/meson.build | 1 + 2 files changed, 122 insertions(+) create mode 100644 tests/unit/test-error-report.c diff --git a/tests/unit/test-error-report.c b/tests/unit/test-error-report.c new file mode 100644 index 0000000000..b09650687b --- /dev/null +++ b/tests/unit/test-error-report.c @@ -0,0 +1,121 @@ +/* + * Error reporting test + * + * Copyright (C) 2022 Red Hat Inc. + * + * This work is licensed under the terms of the GNU GPL, version 2 or late= r. + * See the COPYING file in the top-level directory. + */ + +#include "qemu/osdep.h" +#include "glib-compat.h" +#include + +#include "qemu/error-report.h" + +static void +test_error_report_simple(void) +{ + if (g_test_subprocess()) { + error_report("%s", "test error"); + warn_report("%s", "test warn"); + info_report("%s", "test info"); + return; + } + + g_test_trap_subprocess(NULL, 0, 0); + g_test_trap_assert_passed(); + g_test_trap_assert_stderr("\ +test-error-report: test error*\ +test-error-report: warning: test warn*\ +test-error-report: info: test info*\ +"); +} + +static void +test_error_report_loc(void) +{ + if (g_test_subprocess()) { + loc_set_file("some-file.c", 7717); + error_report("%s", "test error1"); + loc_set_none(); + error_report("%s", "test error2"); + return; + } + + g_test_trap_subprocess(NULL, 0, 0); + g_test_trap_assert_passed(); + g_test_trap_assert_stderr("\ +test-error-report:some-file.c:7717: test error1*\ +test-error-report: test error2*\ +"); +} + +static void +test_error_report_glog(void) +{ + if (g_test_subprocess()) { + g_message("gmessage"); + return; + } + + g_test_trap_subprocess(NULL, 0, 0); + g_test_trap_assert_passed(); + g_test_trap_assert_stderr("test-error-report: info: gmessage*"); +} + +static void +test_error_report_once(void) +{ + int i; + + if (g_test_subprocess()) { + for (i =3D 0; i < 3; i++) { + warn_report_once("warn"); + error_report_once("err"); + } + return; + } + + g_test_trap_subprocess(NULL, 0, 0); + g_test_trap_assert_passed(); + g_test_trap_assert_stderr("\ +test-error-report: warning: warn*\ +test-error-report: err*\ +"); +} + +static void +test_error_report_timestamp(void) +{ + if (g_test_subprocess()) { + message_with_timestamp =3D true; + warn_report("warn"); + error_report("err"); + return; + } + + g_test_trap_subprocess(NULL, 0, 0); + g_test_trap_assert_passed(); + g_test_trap_assert_stderr("\ +*-*-*:*:* test-error-report: warning: warn*\ +*-*-*:*:* test-error-report: err*\ +"); +} + +int +main(int argc, char *argv[]) +{ + setlocale(LC_ALL, ""); + + g_test_init(&argc, &argv, NULL); + error_init("test-error-report"); + + g_test_add_func("/error-report/simple", test_error_report_simple); + g_test_add_func("/error-report/loc", test_error_report_loc); + g_test_add_func("/error-report/glog", test_error_report_glog); + g_test_add_func("/error-report/once", test_error_report_once); + g_test_add_func("/error-report/timestamp", test_error_report_timestamp= ); + + return g_test_run(); +} diff --git a/tests/unit/meson.build b/tests/unit/meson.build index ffa444f432..015e8131df 100644 --- a/tests/unit/meson.build +++ b/tests/unit/meson.build @@ -11,6 +11,7 @@ tests =3D { 'check-qobject': [], 'check-qjson': [], 'check-qlit': [], + 'test-error-report': [], 'test-qobject-output-visitor': [testqapi], 'test-clone-visitor': [testqapi], 'test-qobject-input-visitor': [testqapi], --=20 2.39.2 From nobody Wed May 15 07:19:08 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=1676983772; cv=none; d=zohomail.com; s=zohoarc; b=dJ2mhvhQz5arYZvj4j6sPaDJDk242SmwV7ssd4ArZ9sm/MUOr4vScO+9cmHEypah2u5dzfNN85T3EAmzYzaIpGUxx2iPmQGXGj4IqF191aQRO+InA3qmJNEkebq2mu+UgoPD6QP/PDZKbcUKGzhsb7vzhmNr81fzC6c4Ltd8DCc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676983772; 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=S2PvE1cjZP1ZciStLs3CYU472dk0qnAXOur+kOuxm+U=; b=ZiWSLE25DJJYUZIhw0NVNJBQ2INJ/CdcS3j2l0NQhiEXSdLl/n0ZN+KZnxD24o/h0XXxg2ireZXvrQloA0t+nnZmjF4HdO7SgI8Fx0S4rShisTSVgRs/DsTwR7siqDqEI+PuvWXWTIHjK7Uzzxeq/qTkF6Ilp0azQvpeiontZ0I= 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 1676983772131548.1990097562883; Tue, 21 Feb 2023 04:49:32 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUS4S-0005DO-OE; Tue, 21 Feb 2023 07:48:36 -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 1pUS4Q-0005By-Hv for qemu-devel@nongnu.org; Tue, 21 Feb 2023 07:48:34 -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 1pUS4O-0007rR-UF for qemu-devel@nongnu.org; Tue, 21 Feb 2023 07:48:34 -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-503-DB-jNlbINqCWod17fAEcuw-1; Tue, 21 Feb 2023 07:48:28 -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 D3040381458C; Tue, 21 Feb 2023 12:48:27 +0000 (UTC) Received: from localhost (unknown [10.39.208.31]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1C84D140EBF6; Tue, 21 Feb 2023 12:48:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676983712; 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=S2PvE1cjZP1ZciStLs3CYU472dk0qnAXOur+kOuxm+U=; b=ThbZJRlZsHYYfUWv/BECSUKoeN7x5tUGclOugWD06dxJsCxuPpkyPEcs3Y2/mYzSxkmueI RU4G+/2AqdlU5zLvx1AZaq7KhO57CcWeWlDl/Y2MHh9KCJDNJ0LUNd3oq7QaOP4zxKEB4c bVhy7cXyPDiDv6iStiY+Mx0NTKs+rO4= X-MC-Unique: DB-jNlbINqCWod17fAEcuw-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Samuel Thibault , Jason Wang , Paolo Bonzini , Michael Roth , qemu-arm@nongnu.org, Laurent Vivier , Thomas Huth , Kevin Wolf , qemu-block@nongnu.org, armbru@redhat.com, Peter Maydell , Stefan Hajnoczi , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Stefan Weil , Fam Zheng , Stefan Berger , Joel Stanley , Hanna Reitz , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v3 05/16] error: add global &error_warn destination Date: Tue, 21 Feb 2023 16:47:50 +0400 Message-Id: <20230221124802.4103554-6-marcandre.lureau@redhat.com> In-Reply-To: <20230221124802.4103554-1-marcandre.lureau@redhat.com> References: <20230221124802.4103554-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=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: 1676983773429100005 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 Reviewed-by: Stefan Berger --- include/qapi/error.h | 6 ++++++ tests/unit/test-error-report.c | 18 ++++++++++++++++++ util/error.c | 10 +++++++--- 3 files changed, 31 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/tests/unit/test-error-report.c b/tests/unit/test-error-report.c index b09650687b..54319c86c9 100644 --- a/tests/unit/test-error-report.c +++ b/tests/unit/test-error-report.c @@ -12,6 +12,7 @@ #include =20 #include "qemu/error-report.h" +#include "qapi/error.h" =20 static void test_error_report_simple(void) @@ -103,6 +104,22 @@ test_error_report_timestamp(void) "); } =20 +static void +test_error_warn(void) +{ + if (g_test_subprocess()) { + error_setg(&error_warn, "Testing &error_warn"); + return; + } + + g_test_trap_subprocess(NULL, 0, 0); + g_test_trap_assert_passed(); + g_test_trap_assert_stderr("\ +test-error-report: warning: Testing &error_warn*\ +"); +} + + int main(int argc, char *argv[]) { @@ -116,6 +133,7 @@ main(int argc, char *argv[]) g_test_add_func("/error-report/glog", test_error_report_glog); g_test_add_func("/error-report/once", test_error_report_once); g_test_add_func("/error-report/timestamp", test_error_report_timestamp= ); + g_test_add_func("/error-report/warn", test_error_warn); =20 return g_test_run(); } 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.2 From nobody Wed May 15 07:19:08 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=1676983772; cv=none; d=zohomail.com; s=zohoarc; b=KuA7pyIv3WDjMIK4OypcHiig+nx+3dxOIbL1NPqqEJherhMYnoBP2LVUraDwaMlJdIb/3VlCmMemMpW37cgKXn3bOSPwoD4NVo6oeMtLHdA3VgYGJlm1HFzIYEqZPg/yKrTQAPUi564vHAoMzDT02S5BaiRUYsXQEQ6QaznJ0HQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676983772; 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=1d28WD5B2VuUNOZgIqgkuR3MPEwDDxxWoGsHxpPb3I0=; b=Ovc15eYz5wLjmiKJSLXjbJBYZ5SCV7b9Wacs2emzroVmfgRtmbj527t2VJ8XMWCLPobGT7SVSAuB8DDcIumSQy2H8dUj27Gie+Wek9OjtOh8W0CMM8uAQwaiTZkSiRUPI0/UQUeUNjPx/aoOvZk2if9ExxOtwUjv9X5/9/X5JPM= 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 1676983772248642.7293251191313; Tue, 21 Feb 2023 04:49:32 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUS4Y-0005GK-JI; Tue, 21 Feb 2023 07:48:42 -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 1pUS4V-0005Ft-9o for qemu-devel@nongnu.org; Tue, 21 Feb 2023 07:48:39 -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 1pUS4T-0007sD-C0 for qemu-devel@nongnu.org; Tue, 21 Feb 2023 07:48:38 -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-279-hm6GjQg8MkqaAz7NeFTiaQ-1; Tue, 21 Feb 2023 07:48:33 -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 D684E381458C; Tue, 21 Feb 2023 12:48:32 +0000 (UTC) Received: from localhost (unknown [10.39.208.31]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7BCD2140EBF4; Tue, 21 Feb 2023 12:48:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676983716; 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=1d28WD5B2VuUNOZgIqgkuR3MPEwDDxxWoGsHxpPb3I0=; b=A4A0+hY5R1uDfb3ZBUNV2cmkrlKrMD7ZSXWXwhCMMjmzAJzOoB4EvBAifQw2H0L6SdgJYG 6oGYHPF1gUccEB+gFt2s+wNUwPXscdLX2nz9YVUIcd4n1ZcoP/bGO5QReehsfFZcYMgcG+ NUnb0Kwx1sypVQ4o7FqhN5uQV4/5j+Y= X-MC-Unique: hm6GjQg8MkqaAz7NeFTiaQ-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Samuel Thibault , Jason Wang , Paolo Bonzini , Michael Roth , qemu-arm@nongnu.org, Laurent Vivier , Thomas Huth , Kevin Wolf , qemu-block@nongnu.org, armbru@redhat.com, Peter Maydell , Stefan Hajnoczi , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Stefan Weil , Fam Zheng , Stefan Berger , Joel Stanley , Hanna Reitz , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v3 06/16] win32/socket: introduce qemu_socket_select() helper Date: Tue, 21 Feb 2023 16:47:51 +0400 Message-Id: <20230221124802.4103554-7-marcandre.lureau@redhat.com> In-Reply-To: <20230221124802.4103554-1-marcandre.lureau@redhat.com> References: <20230221124802.4103554-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: 1676983773431100006 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 Reviewed-by: Stefan Berger --- 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.2 From nobody Wed May 15 07:19:08 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=1676983799; cv=none; d=zohomail.com; s=zohoarc; b=RfSKar5D9yRRr4ryaKGKbP5OIoCcYOmAcl4mpqb8OaiuHge8rNsUuW7oNb1HVH+dhMOP4DUDG0zHhLBMNcc5fdI6nSUc0fNuTcsAXB0Zidn0A1W99VziAoCYYPWuQ0+e0dnSjCICGCBliYxVlO1Wp9BEswPFm7fBC7Fsb1LZflk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676983799; 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=Q1VhuUIBLyJViYQfmtutUSPG/L6McyTaXl2hq9YQizo=; b=S4HjHLeleg4Rplf9JTIdxtW886h7CC1M1lxZfAYdOrOHo4MZ6z9vbVjfVvDmz7nLNdPYCNRue1B3KMJGIirxMDl+C3B12gevqigeWX0k3BSH5Lp9z6XaaMBLrehirsby6lmAF+aqmFuHuKR+b/Wtev4GH//+THgkpLTNpAx2tG0= 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 1676983799799276.22152311905427; Tue, 21 Feb 2023 04:49:59 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUS4f-0005Iz-2a; Tue, 21 Feb 2023 07:48:49 -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 1pUS4a-0005HL-KL for qemu-devel@nongnu.org; Tue, 21 Feb 2023 07:48:44 -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 1pUS4Y-0007uB-Fg for qemu-devel@nongnu.org; Tue, 21 Feb 2023 07:48:43 -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-402-oToJwZy1OKCsiapDZVAS2A-1; Tue, 21 Feb 2023 07:48:37 -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 D290B101A521; Tue, 21 Feb 2023 12:48:36 +0000 (UTC) Received: from localhost (unknown [10.39.208.31]) by smtp.corp.redhat.com (Postfix) with ESMTP id E26D6492B04; Tue, 21 Feb 2023 12:48:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676983720; 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=Q1VhuUIBLyJViYQfmtutUSPG/L6McyTaXl2hq9YQizo=; b=e4D2I0CVrLLVNHBLv+Ujb//EKJKOoJM3WZBQBFGDbtG0M9MRj7g6P6JnlxS0DBZ0schMCq vMGbd9sKTnEvwvUfuLeNdyYhtxoknPxBzLeefElXw1rARd87r0jRl0u3j5TYPICqdxmEUp ggxcIQipRjyINkh3MrfRtQ0SQGVH7NQ= X-MC-Unique: oToJwZy1OKCsiapDZVAS2A-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Samuel Thibault , Jason Wang , Paolo Bonzini , Michael Roth , qemu-arm@nongnu.org, Laurent Vivier , Thomas Huth , Kevin Wolf , qemu-block@nongnu.org, armbru@redhat.com, Peter Maydell , Stefan Hajnoczi , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Stefan Weil , Fam Zheng , Stefan Berger , Joel Stanley , Hanna Reitz , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v3 07/16] win32/socket: introduce qemu_socket_unselect() helper Date: Tue, 21 Feb 2023 16:47:52 +0400 Message-Id: <20230221124802.4103554-8-marcandre.lureau@redhat.com> In-Reply-To: <20230221124802.4103554-1-marcandre.lureau@redhat.com> References: <20230221124802.4103554-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.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: 1676983801591100003 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 Reviewed-by: Stefan Berger --- 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.2 From nobody Wed May 15 07:19:08 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=1676983897; cv=none; d=zohomail.com; s=zohoarc; b=Aq5vTVc5TmDv93nUfj53Y1x17g9zejuD6HYqRC+nYBgVr56xUSdOFGNIymV7AY1pPfq1tpj9PKgBLpANy6vYl0mBPZN7Bd8JNjdvLZMawBCzMleMT4TXO7os52bNfsEGMykZr7PthAC46eK8diqSAd7+PYG/iQOluI8iX20nOps= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676983897; 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=Yq3kv8hzjcp9gr0Ec7g4WVQw2n4/K/1xTE48tBGBpBQ=; b=Xo96t8CgLvUFKcU6y3UK+yHayJaTVdeZBU7UQvWXzmJ4miQxMUOmgOyofpubmLecHWquTUECmwFWRCPWeSWWYYEAK+nT1/H279jtHVHWQz4xLd8sVDzhxPNBiBZmjGIp8FiPWa9yJBNnrNJWIbLoEgVgE3rgQ0jv/L/GaayTD44= 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 167698389720468.00104420457524; Tue, 21 Feb 2023 04:51:37 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUS4t-0005cH-Ov; Tue, 21 Feb 2023 07:49:04 -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 1pUS4f-0005JI-CK for qemu-devel@nongnu.org; Tue, 21 Feb 2023 07:48:50 -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 1pUS4d-0007w0-QG for qemu-devel@nongnu.org; Tue, 21 Feb 2023 07:48:49 -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-369-0UWjF0yXPFGgl6JZDYnaSQ-1; Tue, 21 Feb 2023 07:48:41 -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 446022A5957F; Tue, 21 Feb 2023 12:48:41 +0000 (UTC) Received: from localhost (unknown [10.39.208.31]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2149E492B00; Tue, 21 Feb 2023 12:48:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676983727; 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=Yq3kv8hzjcp9gr0Ec7g4WVQw2n4/K/1xTE48tBGBpBQ=; b=AF1orNNfr6oyk8/nBschJS8ZBHLIwzHePGhsKtxuoQxrncs6y1HWsmqUQex4wkVcGu9QGf IbFVE5bBRVebXw42VREGePFy/1U5nIkIsSuihvTluYZN1EyJh+nUzEwd38sCe+FjSgfYKZ XMIskh+L3YQCyburX8iiKnhvV6z6azQ= X-MC-Unique: 0UWjF0yXPFGgl6JZDYnaSQ-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Samuel Thibault , Jason Wang , Paolo Bonzini , Michael Roth , qemu-arm@nongnu.org, Laurent Vivier , Thomas Huth , Kevin Wolf , qemu-block@nongnu.org, armbru@redhat.com, Peter Maydell , Stefan Hajnoczi , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Stefan Weil , Fam Zheng , Stefan Berger , Joel Stanley , Hanna Reitz , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v3 08/16] aio: make aio_set_fd_poll() static to aio-posix.c Date: Tue, 21 Feb 2023 16:47:53 +0400 Message-Id: <20230221124802.4103554-9-marcandre.lureau@redhat.com> In-Reply-To: <20230221124802.4103554-1-marcandre.lureau@redhat.com> References: <20230221124802.4103554-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.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: 1676983898394100003 From: Marc-Andr=C3=A9 Lureau Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Stefan Berger --- 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.2 From nobody Wed May 15 07:19:08 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=1676983832; cv=none; d=zohomail.com; s=zohoarc; b=P78aun0y6i1YDo6WOPYnyRjYbWQ0PwIi9uL98oSkGNiODd23fnbENvMjA8E87LufLTmMaNtxRIwFFDdLM/KJlzgLLS2sknMDrltbx+b4JQn428wnK5Y+yCgYZLq7aASGDDmA5xDbYJZEOp3j45KfZCVka6wSDph9a92WaeQhgUQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676983832; 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=mfeScznHotqd7QR6Mu/sr37TdIAE+QzDflLW+7MhA3U=; b=E60+H7cNgJg1NtSY0ig852Xrvk/MwfjYY28CMbstUoL2Nb3cWpLi3EP88PQBGMoyXHuIG4ddoIBwUbR9MzyPa9Jqqfis5jaT8iH5ckVTSj3bhjy3+rZIb4Q/Zf2k01EFFSbCd3zUpqZojvvmgIsxeEj+Qf73MYEvngLodQY2+BE= 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 1676983832863749.8893322116941; Tue, 21 Feb 2023 04:50:32 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUS54-0005tX-Tl; Tue, 21 Feb 2023 07:49:14 -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 1pUS4h-0005K9-1O for qemu-devel@nongnu.org; Tue, 21 Feb 2023 07:48:58 -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 1pUS4f-0007wR-G7 for qemu-devel@nongnu.org; Tue, 21 Feb 2023 07:48:50 -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-593-psYO9uhvP_iF7hf2FexAHQ-1; Tue, 21 Feb 2023 07:48:45 -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 F0AAF2A59541; Tue, 21 Feb 2023 12:48:44 +0000 (UTC) Received: from localhost (unknown [10.39.208.31]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2F24B2026D38; Tue, 21 Feb 2023 12:48:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676983728; 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=mfeScznHotqd7QR6Mu/sr37TdIAE+QzDflLW+7MhA3U=; b=ER/wfsFSUADzNRyHMdVRz9iQzOBd1eurSbODy9AFZfITCwP8vPh+NWUXRt6ejG3/QCJRTb G1pkBQOtsTZzC1S+eYXAjBg9NeQyn7qqDge1UZAFAn/5/DeCZ7NIwGw9wCnt/emoqSbgJv Haczxp90b6zlHqqN+VKlzFbpuGMMKqk= X-MC-Unique: psYO9uhvP_iF7hf2FexAHQ-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Samuel Thibault , Jason Wang , Paolo Bonzini , Michael Roth , qemu-arm@nongnu.org, Laurent Vivier , Thomas Huth , Kevin Wolf , qemu-block@nongnu.org, armbru@redhat.com, Peter Maydell , Stefan Hajnoczi , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Stefan Weil , Fam Zheng , Stefan Berger , Joel Stanley , Hanna Reitz , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v3 09/16] aio/win32: aio_set_fd_handler() only supports SOCKET Date: Tue, 21 Feb 2023 16:47:54 +0400 Message-Id: <20230221124802.4103554-10-marcandre.lureau@redhat.com> In-Reply-To: <20230221124802.4103554-1-marcandre.lureau@redhat.com> References: <20230221124802.4103554-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=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: 1676983833723100003 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 Reviewed-by: Stefan Berger --- 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.2 From nobody Wed May 15 07:19:08 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=1676983788; cv=none; d=zohomail.com; s=zohoarc; b=eiY4053ayFzLQNx4NUyQG+sz+r+3m0zg71z+i9khX62XcBpvFDoCMdRQ3cR0INFSlvgienn4kUQsGuS11sO/VpzRzNbdkQRGthr6YQ0xwVgiex7Ql0aZWr1/EJDlwHkibwyFaNDKKREe28cdm/+2UauDhIyQKQnyS7Gk30A4J1M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676983788; 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=00qk0KvUYcOoWfueLW6G26btNgeaeT8RbTKYC62Bk08=; b=Ho/krZornfBcCYF3PhElrZ3/WRGcUjz2RGipeRl9t99LJqFbMmoCMvZ40AVwIheJKD0581Ah1L4D1mHVhLVF8NLA5mwbv3ffkQx5a20crlHj9eYj17HIww3cGzY2ZAabFeOGAfs1khhyLr9xMA0DONBzFZLIC67lDz8WTrsQRAU= 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 1676983788724813.075774970094; Tue, 21 Feb 2023 04:49:48 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUS5B-0006IL-Iy; Tue, 21 Feb 2023 07:49:22 -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 1pUS4k-0005QK-Iv for qemu-devel@nongnu.org; Tue, 21 Feb 2023 07:48:58 -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 1pUS4i-0007xQ-Bs for qemu-devel@nongnu.org; Tue, 21 Feb 2023 07:48:53 -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-575-mBHhjaUcNWSdRaLM0djFbw-1; Tue, 21 Feb 2023 07:48:50 -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 2D1B32A5957E; Tue, 21 Feb 2023 12:48:49 +0000 (UTC) Received: from localhost (unknown [10.39.208.31]) by smtp.corp.redhat.com (Postfix) with ESMTP id 514FC2026D38; Tue, 21 Feb 2023 12:48:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676983731; 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=00qk0KvUYcOoWfueLW6G26btNgeaeT8RbTKYC62Bk08=; b=eHdHz2W7QUbQLnw+fo1Znpyc6o6Tq3JVt2q/ih7VnP7kZaLQ3pYWbc3I6JbJaDEXljPnxP MZUcH25QzIDRJCxHVfdPzI7x2TX3fTttqY+hvVIPJqTxS1alSZdLjnfr/ib3VbCur+MGxr PSe8HaPdbmAht4tsrfwyQk4xFOTISSw= X-MC-Unique: mBHhjaUcNWSdRaLM0djFbw-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Samuel Thibault , Jason Wang , Paolo Bonzini , Michael Roth , qemu-arm@nongnu.org, Laurent Vivier , Thomas Huth , Kevin Wolf , qemu-block@nongnu.org, armbru@redhat.com, Peter Maydell , Stefan Hajnoczi , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Stefan Weil , Fam Zheng , Stefan Berger , Joel Stanley , Hanna Reitz , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v3 10/16] RFC: build-sys: add slirp.wrap Date: Tue, 21 Feb 2023 16:47:55 +0400 Message-Id: <20230221124802.4103554-11-marcandre.lureau@redhat.com> In-Reply-To: <20230221124802.4103554-1-marcandre.lureau@redhat.com> References: <20230221124802.4103554-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=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: 1676983789537100007 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.2 From nobody Wed May 15 07:19:08 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=1676983784; cv=none; d=zohomail.com; s=zohoarc; b=h2y5ATtp/prCJtr3PYDXQzkeroX5CX6u2HZimwg+M9tSZF5kh0FExRkazCPfRiLZoJCBDzqJfx05hE9YveKnvOmiewi99nEOj3NkUn8/iRpsxtE/uL0MFd3nOUfTUvE3R/C1InBeGX28279zF3/reVM7r6LhpatTe2Rgkon1I2M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676983784; 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=RgHAk8J3WC5f5nCpV9Uu90B+hmnbTcUrHHE7USZDPG4=; b=JOIt7zQdIAcAKGLdki6n5pF6NsmjHgyvz/iWkmCC3IjJ/P6x7q6rhLko3ppBUUY2jBC8sQ6sVUDwyosiWJEDXGIYqPs6PkriTW7Y9rHS3TAWj8b3pczn53yYnnjqXoU+4oaqZ7SwNT26h1IH4bbNbofiLriyzKvTqkKnn1jn5Vk= 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 1676983784851164.02666507770903; Tue, 21 Feb 2023 04:49:44 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUS4x-0005gy-A6; Tue, 21 Feb 2023 07:49: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 1pUS4p-0005Y4-UM for qemu-devel@nongnu.org; Tue, 21 Feb 2023 07:49: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 1pUS4n-0007yt-IX for qemu-devel@nongnu.org; Tue, 21 Feb 2023 07:48:59 -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-329-BCpOJyhtO424FD3niYbKuQ-1; Tue, 21 Feb 2023 07:48:53 -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 3E1F21C04B64; Tue, 21 Feb 2023 12:48:53 +0000 (UTC) Received: from localhost (unknown [10.39.208.31]) by smtp.corp.redhat.com (Postfix) with ESMTP id 320EB1121314; Tue, 21 Feb 2023 12:48:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676983737; 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=RgHAk8J3WC5f5nCpV9Uu90B+hmnbTcUrHHE7USZDPG4=; b=PD2lejvAHd0VcLti3nB8AZDyerqiUqDh14oxri6lfIh5YUwayHwm+aSSVSAqonAv6Gnf2f +QG8c3xFp2LswXGWnCvZ/GS479q8Y1zm1Z3yRwvFM3UMN8NH121Bv5u6LpBYkYOTOSIwRx 64HWVa39liVhjF8+iD+EYhl0LyGEZCg= X-MC-Unique: BCpOJyhtO424FD3niYbKuQ-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Samuel Thibault , Jason Wang , Paolo Bonzini , Michael Roth , qemu-arm@nongnu.org, Laurent Vivier , Thomas Huth , Kevin Wolf , qemu-block@nongnu.org, armbru@redhat.com, Peter Maydell , Stefan Hajnoczi , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Stefan Weil , Fam Zheng , Stefan Berger , Joel Stanley , Hanna Reitz , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v3 11/16] main-loop: remove qemu_fd_register(), win32/slirp/socket specific Date: Tue, 21 Feb 2023 16:47:56 +0400 Message-Id: <20230221124802.4103554-12-marcandre.lureau@redhat.com> In-Reply-To: <20230221124802.4103554-1-marcandre.lureau@redhat.com> References: <20230221124802.4103554-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.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: 1676983785559100001 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 Reviewed-by: Stefan Berger --- 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.2 From nobody Wed May 15 07:19:08 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=1676983790; cv=none; d=zohomail.com; s=zohoarc; b=O/OXRjoXtcKFOLpLlYOnaaudQDHhVNDRo4vBrB8CH6kr9DmExM5rdBrcGIFKI85FVbybqEKoZUtDSe0m2EZYZycLgB5aVX5IoM0w12e5AXa8jXcTRnq14X8ihAk+l/x8e7lNdgsfHKLL4mEYA/GPplFKayDyZwBR1OrMpAdJ45g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676983790; 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=LHyf1PaVOZM4aRwRI6Entvo4n6I7MMNqFyWF6BLjCrw=; b=hMvmqphprE6K8SmNnP5s+n9w34F92iCsBTTRJo7H+wvXg+zj/km7IDRICtRc1hAo2YisYx3Y3UackQiZuqNy1qtbGfQW4D1urebOj8SjhZekJy8exLgw11F9kZMi9zL3qJ/qqPyLZBSQgnEJPp68Gge/FvigY63LmeiueVX5Veg= 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 1676983790972770.4043834904626; Tue, 21 Feb 2023 04:49:50 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUS5G-0006pL-KN; Tue, 21 Feb 2023 07:49:26 -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 1pUS4t-0005dG-4d for qemu-devel@nongnu.org; Tue, 21 Feb 2023 07:49:03 -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 1pUS4r-000802-Jx for qemu-devel@nongnu.org; Tue, 21 Feb 2023 07:49:02 -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-592-w9zAKEYuN_i6KQ8tYAqPWA-1; Tue, 21 Feb 2023 07:48:58 -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 52957381458C; Tue, 21 Feb 2023 12:48:57 +0000 (UTC) Received: from localhost (unknown [10.39.208.31]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4BC7C2026D4B; Tue, 21 Feb 2023 12:48:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676983741; 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=LHyf1PaVOZM4aRwRI6Entvo4n6I7MMNqFyWF6BLjCrw=; b=YIrWeyAxQydidduZ7jjIkAjmTFWlN4fQvuu74V9l6+KSAuxKlLEVkNNHrb3LwxKLqIIgEX S+M9cs5gDR+/Y5b724veZqd2n+RrmoJPOuHw8YRcHnOgCV+ge2aeBBAn//Xbj9elU5lW+N uj23FsxzxYdjOmVlbnxXPul7Snbc78M= X-MC-Unique: w9zAKEYuN_i6KQ8tYAqPWA-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Samuel Thibault , Jason Wang , Paolo Bonzini , Michael Roth , qemu-arm@nongnu.org, Laurent Vivier , Thomas Huth , Kevin Wolf , qemu-block@nongnu.org, armbru@redhat.com, Peter Maydell , Stefan Hajnoczi , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Stefan Weil , Fam Zheng , Stefan Berger , Joel Stanley , Hanna Reitz , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v3 12/16] slirp: unregister the win32 SOCKET Date: Tue, 21 Feb 2023 16:47:57 +0400 Message-Id: <20230221124802.4103554-13-marcandre.lureau@redhat.com> In-Reply-To: <20230221124802.4103554-1-marcandre.lureau@redhat.com> References: <20230221124802.4103554-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.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: 1676983791552100009 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 Reviewed-by: Stefan Berger --- 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.2 From nobody Wed May 15 07:19:08 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=1676983917; cv=none; d=zohomail.com; s=zohoarc; b=CE4hD/War7WsK/iZb+iUN2Edw5rZmuCoQrCYzQMlqcQa5p3HOFadUbPzIbidRpjJ4M1KzNElH4+rC9eGiyPyPvrX9flqEit9F0/bCZYNs2VoQzhs1KH27F1seWFVF6dIDFvPesbXAYb1m1svPXWX1cYPKPQB2F+C3vdUkY05W1o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676983917; 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=PfM6VBwPpGdm0L7blj2XxeHMZNs0mtTHXUe08a1eeC4=; b=axzWuLwURXJxiK00yEpgiaCOjwSlSB1zQRuCwOPTMSO765QfYGKace632rUt64Isf0yYjCq36WoyyEGLD/pAfHswQsk5ywjDA5EaWvzmE2nnz3qqkpN77/0dQUCxMk1lDy/pdfJ/SrqjQxUlvX1uNKHsG4bpfuvJfLlCBw0/KEo= 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 1676983917316126.05283137024003; Tue, 21 Feb 2023 04:51:57 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUS5C-0006R1-ND; Tue, 21 Feb 2023 07:49:22 -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 1pUS4y-0005j0-Lm for qemu-devel@nongnu.org; Tue, 21 Feb 2023 07:49:12 -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 1pUS4v-000818-U3 for qemu-devel@nongnu.org; Tue, 21 Feb 2023 07:49:08 -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-179-O68qsoJFP1S5f9kY4rQuqg-1; Tue, 21 Feb 2023 07:49:02 -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 8EB581818E6A; Tue, 21 Feb 2023 12:49:01 +0000 (UTC) Received: from localhost (unknown [10.39.208.31]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7DB8F2026D38; Tue, 21 Feb 2023 12:49:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676983745; 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=PfM6VBwPpGdm0L7blj2XxeHMZNs0mtTHXUe08a1eeC4=; b=A99WeOU25Mq58UoL35YwftmM4uuYIac1A4IWwfwOwGt+EBL6oidzrY2AV9L4mbJ22/1YFi I5QMiEgFtle8wC7mE3hnZPg6n0JDFBwM8frj6Roo5qK1+69BXSKR+9ItyS34TvGmgoHRG6 GnBKMIs0Dsb3KHdHa1fYd8KEW9Kt+kQ= X-MC-Unique: O68qsoJFP1S5f9kY4rQuqg-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Samuel Thibault , Jason Wang , Paolo Bonzini , Michael Roth , qemu-arm@nongnu.org, Laurent Vivier , Thomas Huth , Kevin Wolf , qemu-block@nongnu.org, armbru@redhat.com, Peter Maydell , Stefan Hajnoczi , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Stefan Weil , Fam Zheng , Stefan Berger , Joel Stanley , Hanna Reitz , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v3 13/16] slirp: open-code qemu_socket_(un)select() Date: Tue, 21 Feb 2023 16:47:58 +0400 Message-Id: <20230221124802.4103554-14-marcandre.lureau@redhat.com> In-Reply-To: <20230221124802.4103554-1-marcandre.lureau@redhat.com> References: <20230221124802.4103554-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: 1676983918267100005 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 Reviewed-by: Stefan Berger --- 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.2 From nobody Wed May 15 07:19:08 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=1676983917; cv=none; d=zohomail.com; s=zohoarc; b=iJIUT8gvTr8fcLqktRPJRCRWBNrOR7R6umEhXovNa/Ig7vBWHF99AnXCkfngn0Uw6zDHHqn5mKLBi0vfn5Apt574XhV3LdS2nJEgmOlQ3dPJVeHjGWFComhwTounEj7Qh0wLeayk35IhmxpHAb7B1rS+lbKMLhY5vauLr3m8OM8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676983917; 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=HDN4WqpZT6xfbNw5SH0JKgYtROQNew2cbeFNJcZp/U8=; b=BQONp9sI2cIbazSg/qpuQSnVyEn5p0EqazHnLNrW2Ci2jTvwpbuKJ/ighZLD7mg5xB3EM/FJvskqNu7xcgOZZe/n6nHtwVfbfyECoLSxFZXVaHkUZz1GwX1tOouHMFy01+yXpcBq8zerbiSNvW0TU38u+YbawJzd6+16VrG+ra4= 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 1676983917005939.8817751196624; Tue, 21 Feb 2023 04:51:57 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUS5K-0007JZ-5x; Tue, 21 Feb 2023 07:49:30 -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 1pUS54-0005qB-20 for qemu-devel@nongnu.org; Tue, 21 Feb 2023 07: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 1pUS51-000821-Iy for qemu-devel@nongnu.org; Tue, 21 Feb 2023 07:49: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-147-5MqjX937OkmKBac245ywSQ-1; Tue, 21 Feb 2023 07:49:07 -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 2B76B811E9C; Tue, 21 Feb 2023 12:49:07 +0000 (UTC) Received: from localhost (unknown [10.39.208.31]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3F5FEC15BA0; Tue, 21 Feb 2023 12:49:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676983750; 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=HDN4WqpZT6xfbNw5SH0JKgYtROQNew2cbeFNJcZp/U8=; b=CZADE0gC3DQrp74EaSOufEc5fZYFrjPF6jSNYmbWvEVU82BHhCY6WbbcMqJMrc5GKh/qiR 91qVLPo/jxROjeaTG09M+42HthaHSofx+6MotvC3QEMVLryOL8AT5/Ju6+p8uhQK3JfRk2 S4jZ2rdlkIbHZ0LVlbmgmju7Gwm6g8k= X-MC-Unique: 5MqjX937OkmKBac245ywSQ-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Samuel Thibault , Jason Wang , Paolo Bonzini , Michael Roth , qemu-arm@nongnu.org, Laurent Vivier , Thomas Huth , Kevin Wolf , qemu-block@nongnu.org, armbru@redhat.com, Peter Maydell , Stefan Hajnoczi , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Stefan Weil , Fam Zheng , Stefan Berger , Joel Stanley , Hanna Reitz , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v3 14/16] win32: avoid mixing SOCKET and file descriptor space Date: Tue, 21 Feb 2023 16:47:59 +0400 Message-Id: <20230221124802.4103554-15-marcandre.lureau@redhat.com> In-Reply-To: <20230221124802.4103554-1-marcandre.lureau@redhat.com> References: <20230221124802.4103554-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: 1676983918296100006 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 Reviewed-by: Stefan Berger --- include/sysemu/os-win32.h | 4 +- io/channel-watch.c | 6 +- util/aio-win32.c | 9 +- util/oslib-win32.c | 219 ++++++++++++++++++++++++++++++++------ 4 files changed, 197 insertions(+), 41 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..7836fb0be3 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(); } @@ -345,28 +370,108 @@ int qemu_bind_wrap(int sockfd, const struct sockaddr= *addr, } =20 =20 -#undef socket -int qemu_socket_wrap(int domain, int type, int protocol) +#undef closesocket +int qemu_closesocket_wrap(int fd) { int ret; - ret =3D socket(domain, type, protocol); + DWORD flags =3D 0; + SOCKET s =3D _get_osfhandle(fd); + + if (s =3D=3D INVALID_SOCKET) { + return -1; + } + + /* + * If we were to just call _close on the descriptor, it would close the + * HANDLE, but it wouldn't free any of the resources associated to the + * SOCKET, and we can't call _close after calling closesocket, because + * closesocket has already closed the HANDLE, and _close would attempt= to + * close the HANDLE again, resulting in a double free. We can however + * protect the HANDLE from actually being closed long enough to close = the + * file descriptor, then close the socket itself. + */ + if (!GetHandleInformation((HANDLE)s, &flags)) { + errno =3D EACCES; + return -1; + } + + if (!SetHandleInformation((HANDLE)s, HANDLE_FLAG_PROTECT_FROM_CLOSE, H= ANDLE_FLAG_PROTECT_FROM_CLOSE)) { + errno =3D EACCES; + return -1; + } + + ret =3D close(fd); + + if (!SetHandleInformation((HANDLE)s, flags, flags)) { + errno =3D EACCES; + return -1; + } + + /* + * close() returns EBADF since we PROTECT_FROM_CLOSE the underlying ha= ndle, + * but the FD is actually freed + */ + if (ret < 0 && errno !=3D EBADF) { + return ret; + } + + ret =3D closesocket(s); if (ret < 0) { errno =3D socket_error(); } + return ret; } =20 =20 +#undef socket +int qemu_socket_wrap(int domain, int type, int protocol) +{ + SOCKET s; + int fd; + + s =3D socket(domain, type, protocol); + if (s =3D=3D -1) { + errno =3D socket_error(); + return -1; + } + + 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; +} + + #undef accept 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 +479,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,19 +497,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); - if (ret < 0) { - errno =3D socket_error(); - } - return ret; -} + SOCKET s =3D _get_osfhandle(fd); =20 + if (s =3D=3D INVALID_SOCKET) { + return -1; + } =20 -#undef closesocket -int qemu_closesocket_wrap(int fd) -{ - int ret; - ret =3D closesocket(fd); + ret =3D ioctlsocket(s, req, val); if (ret < 0) { errno =3D socket_error(); } @@ -411,7 +516,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 +535,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 +554,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 +573,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 +591,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 +610,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 +628,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 +647,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.2 From nobody Wed May 15 07:19:08 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=1676983794; cv=none; d=zohomail.com; s=zohoarc; b=hwYKGMTV/iNnRWyPohuIdanhU5Trk3G4pU9Y9C550PkgYbisX7ts1JHm3DWlUx9zTrtFYeivnbccRzYR7qUVYQYZnA4mr1evP1oRgL31DAWc0KgEjkGyAsRYFeZw41mojqnTaRmoEnuraHJWhwUo0xqzCQ6CWsOFdXDGLorQrlk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676983794; 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=ZBzSWYI24EKAE1mLV6wrDdw/35SEPCMSXQIUJYzTtA0=; b=Ai0zs5tZr+KQLZs3WQZYE5Bo3euxSScIeBr7UC0hczWvjjaVk19+fZD3P1LOAi9b6+PchFzdf3iSlUSvPUrH2ZmhJGSjToGKvkTKTkeBcZTEXykH0E4ueopXMbRLr44Bml5liWtL5gJxrFDAbdCDe5Non2zbbgx0Om0+ewiZlZA= 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 1676983794886256.3501148620992; Tue, 21 Feb 2023 04:49:54 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUS5F-0006fT-Hs; Tue, 21 Feb 2023 07:49:25 -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 1pUS59-0006IH-1J for qemu-devel@nongnu.org; Tue, 21 Feb 2023 07:49:19 -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 1pUS57-00082r-Jo for qemu-devel@nongnu.org; Tue, 21 Feb 2023 07:49:18 -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-446-9kHZfYzDMvargMVJfSOMcA-1; Tue, 21 Feb 2023 07:49:12 -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 CFD16811E9C; Tue, 21 Feb 2023 12:49:11 +0000 (UTC) Received: from localhost (unknown [10.39.208.31]) by smtp.corp.redhat.com (Postfix) with ESMTP id 863E72026D4B; Tue, 21 Feb 2023 12:49:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676983756; 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=ZBzSWYI24EKAE1mLV6wrDdw/35SEPCMSXQIUJYzTtA0=; b=b+UB06KjagD0hd94GskMliufa++IAh/pIVee5kA5mA7VJBtA3qpMjk7AZ7OjTrNn7aSBlU cdH+bbA5+baC7eiQlH0WBgWuN6cdiL9Vh/lEMUdZYm87EVQZ9EMRG9yJyFGSZn/V2iI6Qu +teFl4fKCOcedA6XOK4WBBlETabnYfc= X-MC-Unique: 9kHZfYzDMvargMVJfSOMcA-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Samuel Thibault , Jason Wang , Paolo Bonzini , Michael Roth , qemu-arm@nongnu.org, Laurent Vivier , Thomas Huth , Kevin Wolf , qemu-block@nongnu.org, armbru@redhat.com, Peter Maydell , Stefan Hajnoczi , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Stefan Weil , Fam Zheng , Stefan Berger , Joel Stanley , Hanna Reitz , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v3 15/16] os-posix: remove useless ioctlsocket() define Date: Tue, 21 Feb 2023 16:48:00 +0400 Message-Id: <20230221124802.4103554-16-marcandre.lureau@redhat.com> In-Reply-To: <20230221124802.4103554-1-marcandre.lureau@redhat.com> References: <20230221124802.4103554-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.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: 1676983795555100015 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.2 From nobody Wed May 15 07:19:08 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=1676983837; cv=none; d=zohomail.com; s=zohoarc; b=hy2uKyXU2n+aehag4SUy2W3weSUwBsMxaFZlDDOuVvf20cviU5ucOAf8Y3l6LugNz+VeuujV8vLHGIFxxxGKcr6ftKEqpyxQyj9ORqNa/PYL7K8gHK7vUlYzYFEvVqgzb170zYUZpujsgYhHNaC/PDLJi8qlnr6GJNiMOmpU9DA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676983837; 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=sp6kwIhqtONjwt/LU+dqFKsYXP1fg0LOWKTZmEyCtZo=; b=JhYGclm8nSK49bJklqG2Csj94bXbv5lkqoo02jbTJOiJBXD0qdKofezbEUGZHSH1Wzhu63i0QLEybPtrSaSXJ+ZS1dIt7050kt1wrGRYmKV66ljppLOR2iDQAaG1q8avv8CdmZEwi4ONQlkUVSiwg7TzZXCibehliTGXAy73rSU= 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 1676983837594103.46053666875378; Tue, 21 Feb 2023 04:50:37 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUS5J-0007Ag-4s; Tue, 21 Feb 2023 07: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 1pUS5D-0006d4-U0 for qemu-devel@nongnu.org; Tue, 21 Feb 2023 07:49:24 -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 1pUS5B-00083S-0l for qemu-devel@nongnu.org; Tue, 21 Feb 2023 07:49:23 -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-562-8p4FBp1mNCas0etHElACdQ-1; Tue, 21 Feb 2023 07:49:17 -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 0466A381458C; Tue, 21 Feb 2023 12:49:17 +0000 (UTC) Received: from localhost (unknown [10.39.208.31]) by smtp.corp.redhat.com (Postfix) with ESMTP id 09F66492B00; Tue, 21 Feb 2023 12:49:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676983760; 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=sp6kwIhqtONjwt/LU+dqFKsYXP1fg0LOWKTZmEyCtZo=; b=A7X0SByOlJ+bYoHJ/4OjestWXXFYUbQSsl5cJ6/zq3owV3eDNl8zcolzqWl13mSdHdZ7Ga Vp/kD5tgAhbb+IqWkpDSv7rWkXONAWU1X9gqffU4xDMs2iNFNWvCnFXuhrMdFoAQwjnEfU Ywovwqg/gO60u76k6/PkckqsIdjgHI8= X-MC-Unique: 8p4FBp1mNCas0etHElACdQ-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Samuel Thibault , Jason Wang , Paolo Bonzini , Michael Roth , qemu-arm@nongnu.org, Laurent Vivier , Thomas Huth , Kevin Wolf , qemu-block@nongnu.org, armbru@redhat.com, Peter Maydell , Stefan Hajnoczi , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Stefan Weil , Fam Zheng , Stefan Berger , Joel Stanley , Hanna Reitz , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v3 16/16] win32: replace closesocket() with close() wrapper Date: Tue, 21 Feb 2023 16:48:01 +0400 Message-Id: <20230221124802.4103554-17-marcandre.lureau@redhat.com> In-Reply-To: <20230221124802.4103554-1-marcandre.lureau@redhat.com> References: <20230221124802.4103554-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=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: 1676983839777100003 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 Reviewed-by: Stefan Berger --- 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 | 56 +++++++++++++++++++------------------ util/qemu-sockets.c | 22 +++++++-------- 14 files changed, 89 insertions(+), 89 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 7836fb0be3..29a667ae3d 100644 --- a/util/oslib-win32.c +++ b/util/oslib-win32.c @@ -370,39 +370,39 @@ int qemu_bind_wrap(int sockfd, const struct sockaddr = *addr, } =20 =20 -#undef closesocket -int qemu_closesocket_wrap(int fd) +#undef close +int qemu_close_wrap(int fd) { int ret; DWORD flags =3D 0; - SOCKET s =3D _get_osfhandle(fd); + SOCKET s =3D INVALID_SOCKET; =20 - if (s =3D=3D INVALID_SOCKET) { - return -1; - } + if (fd_is_socket(fd)) { + s =3D _get_osfhandle(fd); =20 - /* - * If we were to just call _close on the descriptor, it would close the - * HANDLE, but it wouldn't free any of the resources associated to the - * SOCKET, and we can't call _close after calling closesocket, because - * closesocket has already closed the HANDLE, and _close would attempt= to - * close the HANDLE again, resulting in a double free. We can however - * protect the HANDLE from actually being closed long enough to close = the - * file descriptor, then close the socket itself. - */ - if (!GetHandleInformation((HANDLE)s, &flags)) { - errno =3D EACCES; - return -1; - } + /* + * If we were to just call _close on the descriptor, it would clos= e the + * HANDLE, but it wouldn't free any of the resources associated to= the + * SOCKET, and we can't call _close after calling closesocket, bec= ause + * closesocket has already closed the HANDLE, and _close would att= empt to + * close the HANDLE again, resulting in a double free. We can howe= ver + * protect the HANDLE from actually being closed long enough to cl= ose the + * file descriptor, then close the socket itself. + */ + if (!GetHandleInformation((HANDLE)s, &flags)) { + errno =3D EACCES; + return -1; + } =20 - if (!SetHandleInformation((HANDLE)s, HANDLE_FLAG_PROTECT_FROM_CLOSE, H= ANDLE_FLAG_PROTECT_FROM_CLOSE)) { - errno =3D EACCES; - return -1; + if (!SetHandleInformation((HANDLE)s, HANDLE_FLAG_PROTECT_FROM_CLOS= E, HANDLE_FLAG_PROTECT_FROM_CLOSE)) { + errno =3D EACCES; + return -1; + } } =20 ret =3D close(fd); =20 - if (!SetHandleInformation((HANDLE)s, flags, flags)) { + if (s !=3D INVALID_SOCKET && !SetHandleInformation((HANDLE)s, flags, f= lags)) { errno =3D EACCES; return -1; } @@ -411,13 +411,15 @@ int qemu_closesocket_wrap(int fd) * close() returns EBADF since we PROTECT_FROM_CLOSE the underlying ha= ndle, * but the FD is actually freed */ - if (ret < 0 && errno !=3D EBADF) { + if (ret < 0 && (s =3D=3D INVALID_SOCKET || errno !=3D EBADF)) { return ret; } =20 - ret =3D closesocket(s); - if (ret < 0) { - errno =3D socket_error(); + if (s !=3D INVALID_SOCKET) { + 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.2