From nobody Tue Feb 10 22:59:52 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4f9cTP2dsDz6SDVN for ; Tue, 10 Feb 2026 22:59:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9cTP0MLcz3brj for ; Tue, 10 Feb 2026 22:59:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770764393; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UZGZ79FM+F6KuxgKc6ubbLOCtq1eZvJDjgAdjj3WOYY=; b=c19n0FpwV+hduXTPzoPN2f4CoE76rMvteA5bbgoMF8bYdUhazZKWNyc2hhucinPZIHt2VV lPE0h2xfo/dUy5R5R8GJmE2lR/VMvhD1UOpPfBKb5WwZWeGNdn49clhiZfspsxeDCCF2h7 mZg7aRydDobE9IaJ8nD7d9flhF2WuZWz3IaVUHbIzZQgFY5VSf2lTBzCZgga8r88YEDoyK 6l7wX35ulQrthzJuPvmeoFgMoY09oyPKBljjuvL9bkaFbEf4Ypc6ttkANOraDEGTBMiOFA d0tvDMahwMlLGTHOaaxzBeyEuELCzkgK/xyS8qHJ49MLgfv/NGzEIoAK5ROO1g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770764393; a=rsa-sha256; cv=none; b=HkMLQOsjcRPfO7O0fCJ37rX9sydnZz7Os+8FaRUKtxkrh7Fc9ZtPWDjs7hap9HApfcDq0u Es/MwMaDjf81C60x/LYmwW61D3GXwR/2wk3ZS/ml9UHGt84+0BTr9nOTaltt20Gn6UdMvR XRJ+RTma4bpnXcfDuaPj9AmSLrbkd7WyJuPAFQZ5EZH7XyE2IIFrUet3K+WLEmqGT6dnEZ N/FaaNuhDY7anlLOC0kd6TBFh8kA/Mw++jmQZYy6/+ByOPRgZy71i4P9VbA/K5gcEDFb5P wV4SUOT7XPzS1a1LQwKqRgBMS+ydQEPuz0ZKifk+NUPJuNOXmrc2e/xwWNh/9g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770764393; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UZGZ79FM+F6KuxgKc6ubbLOCtq1eZvJDjgAdjj3WOYY=; b=Qdakp4uGk81jOVmbhgQVUDl4Bmd5mirVxh7YoqajMqKQ+xe4Asl60BBzH/T6jFUefSl8ib 964CPdaljwzEEgOitKDSOD2hhYA/DXMm2Uqr5Jn5YkpWjhtPkCVjALtzInyRy3UqtvhYOi Bh4AzW7L/HuCAqJYDIhkWxjR+bRvZmUPf97ZIK3Ysm8SAFHdZ36Fzj4u/AdiMCqlc4AwXH mrf7ZQhdqY5c/3RA+z/g0l6vf8C3+hzvBsnH8GzL8A/3tEJGOHGrS1r7umxSACRyM6hP/i u4JKBWb5pO6eomgl6jyddtqoCFw+dspi1RNtNELyH4eVqTI3ubYCDbDS+JTzFw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9cTN73yBz83w for ; Tue, 10 Feb 2026 22:59:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 26527 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 22:59:52 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Vladimir Kondratyev Subject: git: 20a3c611f53d - main - moused(8): Use KQUEUE_CPONFORK flag to pass kqueue fd through fork List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wulf X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 20a3c611f53dfad830f9907e24fa08b80b674860 Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 22:59:52 +0000 Message-Id: <698bb868.26527.40e88a73@gitrepo.freebsd.org> The branch main has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=20a3c611f53dfad830f9907e24fa08b80b674860 commit 20a3c611f53dfad830f9907e24fa08b80b674860 Author: Vladimir Kondratyev AuthorDate: 2026-02-10 22:59:06 +0000 Commit: Vladimir Kondratyev CommitDate: 2026-02-10 22:59:06 +0000 moused(8): Use KQUEUE_CPONFORK flag to pass kqueue fd through fork and use libc daemon() instead of private rfork-based copy. --- usr.sbin/moused/moused/moused.c | 58 ++--------------------------------------- 1 file changed, 2 insertions(+), 56 deletions(-) diff --git a/usr.sbin/moused/moused/moused.c b/usr.sbin/moused/moused/moused.c index 36cb8cc27eab..7de6832a1eb8 100644 --- a/usr.sbin/moused/moused/moused.c +++ b/usr.sbin/moused/moused/moused.c @@ -492,7 +492,6 @@ static void usage(void); static void log_or_warn(int log_pri, int errnum, const char *fmt, ...) __printflike(3, 4); -static int r_daemon(void); static enum device_if r_identify_if(int fd); static enum device_type r_identify_evdev(int fd); static enum device_type r_identify_sysmouse(int fd); @@ -761,7 +760,7 @@ main(int argc, char *argv[]) if ((cfd = open("/dev/consolectl", O_RDWR, 0)) == -1) logerr(1, "cannot open /dev/consolectl"); - if ((kfd = kqueue()) == -1) + if ((kfd = kqueuex(KQUEUE_CPONFORK)) == -1) logerr(1, "cannot create kqueue"); if (portname == NULL && (dfd = connect_devd()) == -1) logwarnx("cannot open devd socket"); @@ -827,7 +826,7 @@ main(int argc, char *argv[]) logerrx(1, "moused already running, pid: %d", mpid); logwarn("cannot open pid file"); } - if (r_daemon()) { + if (daemon(0, 0)) { int saved_errno = errno; pidfile_remove(pfh); errno = saved_errno; @@ -1284,59 +1283,6 @@ log_or_warn(int log_pri, int errnum, const char *fmt, ...) va_end(ap); } -static int -r_daemon(void) -{ - struct sigaction osa, sa; - pid_t newgrp; - int oerrno; - int osa_ok; - int nullfd; - - /* A SIGHUP may be thrown when the parent exits below. */ - sigemptyset(&sa.sa_mask); - sa.sa_handler = SIG_IGN; - sa.sa_flags = 0; - osa_ok = sigaction(SIGHUP, &sa, &osa); - - /* Keep kqueue fd alive */ - switch (rfork(RFPROC)) { - case -1: - return (-1); - case 0: - break; - default: - /* - * A fine point: _exit(0), not exit(0), to avoid triggering - * atexit(3) processing - */ - _exit(0); - } - - newgrp = setsid(); - oerrno = errno; - if (osa_ok != -1) - sigaction(SIGHUP, &osa, NULL); - - if (newgrp == -1) { - errno = oerrno; - return (-1); - } - - (void)chdir("/"); - - nullfd = open("/dev/null", O_RDWR, 0); - if (nullfd != -1) { - (void)dup2(nullfd, STDIN_FILENO); - (void)dup2(nullfd, STDOUT_FILENO); - (void)dup2(nullfd, STDERR_FILENO); - } - if (nullfd > 2) - close(nullfd); - - return (0); -} - static inline int bit_find(bitstr_t *array, int start, int stop) {