From nobody Wed Mar 4 14:45:16 2026 X-Original-To: dev-commits-src-branches@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 4fQwSX75lgz6TbPj for ; Wed, 04 Mar 2026 14:45:16 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fQwSX4xCyz3bK1 for ; Wed, 04 Mar 2026 14:45:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772635516; 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=cL0ogC7yddxj3WV6IV1pFzsEhl1w/Q9I0Y+cf8e3jHc=; b=eXQ8VM8yraR0oyhZutCxAxyTXSSwVw0yI472LJ3/AziKLKssilhWSL/22v6n90l+/l+0v2 sudc6xtphcCgY9mGQR/2GUh3WVJIKEaguPRYYxmmrlyygEcMvkOhYPrbs8wrI8VDa9W52g gM7JtCigtD+xHfgaEg2dTdHAlC4kmIQeaPTvcA7EyjUrt+DdZLJOLQuipsGlx59fIYyMNB LvKPfjUoY7AFI0w8k0OL6WWECkoO7PuZdL1CgznOKODB1XfDH3SrYd2/iyalncExkJLmYH 4fH2esGjiehRviBAqhuS34oWEfjnGczRyzDhMvzoDze3lRCHAbyROuDQF/MWzg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772635516; a=rsa-sha256; cv=none; b=abnQpB9Tgjc84uobLw16L/7efcvFsEux6sHjh0Ec5rX3YP0crG+5SvgHHB4HfugPfc8D+Z 6gd2PhWyfGlU4QKpsyuDXVehfVmhxRtYbX3VjRw/8LpTe8O4lJcQzKrfoUQkvN7vn2+g4v oLus/4DcK2XZinW0oauZN8BkUUesmlrV+2Iw82hjQCWR8MryHiRc5ZoChny8DuwtG4P3JZ 0XZRtdlyNr1n90y20l82FRVZ8QlXkyWVYfa2HzY601quF2kqcMTHa7gaHMRmjPmERF6x/4 6TbkthAhwsGZkJ/vxo0MwsavBbTfwyClKouoFjhdvUqVOl4Xu7bNHbnmuQiwNQ== 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=1772635516; 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=cL0ogC7yddxj3WV6IV1pFzsEhl1w/Q9I0Y+cf8e3jHc=; b=OqGS5w9/TfyKFCo1LWD2Fy+iamqYx2AfVOsMpN7klBW2Z4AiGmf32E5FN63rGhip8T6nKy VcXa5x2XF+SaAVA5L5PsFh4GHPB8VKCuKjeQW7J8UuLUrzPd9lo4/oYnPo5A7QsRJ3J06T NE583DPz7KoiL30w0Rmc7UHnVI3tIFRFGkg1XCHuINN4jJzLMfYOgqmt8+o9nVYL/b4gg7 TjwakWz5bf2/pnS1Y1locRPOPqMHAwnxYTmaIcKA+FVCnBXNw76Pe8hgcdRXZcYAHzcx5u pCAbgkfvnbeULbEckdcipwspzCengT7D1S222yPdCF/8+k6dygReCLC+hCRcGQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fQwSX4QLRzvW8 for ; Wed, 04 Mar 2026 14:45:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2566a by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 04 Mar 2026 14:45:16 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: 041065e59eae - stable/14 - lpd: Add timeout option List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 041065e59eae8af5fa3ae676416eff65d90158e5 Auto-Submitted: auto-generated Date: Wed, 04 Mar 2026 14:45:16 +0000 Message-Id: <69a8457c.2566a.18cac26a@gitrepo.freebsd.org> The branch stable/14 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=041065e59eae8af5fa3ae676416eff65d90158e5 commit 041065e59eae8af5fa3ae676416eff65d90158e5 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-26 06:15:14 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-03-04 14:45:09 +0000 lpd: Add timeout option Set a 120-second receive timeout on all client connections, and add a command-line option to change that value. MFC after: 1 week Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D55400 (cherry picked from commit 56fbfd1ecdc78fc99b3a2e381c355ce8980de39d) --- usr.sbin/lpr/lpd/lpd.8 | 8 +++++++- usr.sbin/lpr/lpd/lpd.c | 30 +++++++++++++++++++----------- 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/usr.sbin/lpr/lpd/lpd.8 b/usr.sbin/lpr/lpd/lpd.8 index f3b78d9d4d11..97f1acb23032 100644 --- a/usr.sbin/lpr/lpd/lpd.8 +++ b/usr.sbin/lpr/lpd/lpd.8 @@ -27,7 +27,7 @@ .\" .\" @(#)lpd.8 8.3 (Berkeley) 4/19/94 .\" -.Dd April 15, 2021 +.Dd February 19, 2026 .Dt LPD 8 .Os .Sh NAME @@ -36,6 +36,7 @@ .Sh SYNOPSIS .Nm .Op Fl cdlpsFW46 +.Op Fl t Ar timeout .Op Ar port# .Sh DESCRIPTION The @@ -107,6 +108,11 @@ This means that will not accept any connections from any remote hosts, although it will still accept print requests from all local users. +.It Fl t Ar timeout +Set the network receive timeout for client connections to +.Ar timeout +seconds. +The default is 120. .It Fl F By default, .Nm diff --git a/usr.sbin/lpr/lpd/lpd.c b/usr.sbin/lpr/lpd/lpd.c index c9a7e1615b74..df9bfcec5de1 100644 --- a/usr.sbin/lpr/lpd/lpd.c +++ b/usr.sbin/lpr/lpd/lpd.c @@ -73,28 +73,28 @@ static char sccsid[] = "@(#)lpd.c 8.7 (Berkeley) 5/10/95"; */ #include -#include -#include +#include #include -#include #include -#include +#include +#include + #include #include -#include -#include -#include -#include +#include +#include #include #include #include -#include +#include +#include #include #include #include #include -#include +#include +#include #include "lp.h" #include "lp.local.h" #include "pathnames.h" @@ -129,6 +129,7 @@ uid_t uid, euid; int main(int argc, char **argv) { + struct timeval tv = { .tv_sec = 120 }; int ch_options, errs, f, funix, *finet, i, lfd, socket_debug; fd_set defreadfds; struct sockaddr_un un, fromunix; @@ -151,7 +152,7 @@ main(int argc, char **argv) errx(EX_NOPERM,"must run as root"); errs = 0; - while ((i = getopt(argc, argv, "cdlpswFW46")) != -1) + while ((i = getopt(argc, argv, "cdlpst:wFW46")) != -1) switch (i) { case 'c': /* log all kinds of connection-errors to syslog */ @@ -171,6 +172,9 @@ main(int argc, char **argv) case 's': /* secure (no inet) */ sflag++; break; + case 't': + tv.tv_sec = atol(optarg); + break; case 'w': /* netbsd uses -w for maxwait */ /* * This will be removed after the release of 4.4, as @@ -398,6 +402,10 @@ main(int argc, char **argv) syslog(LOG_WARNING, "accept: %m"); continue; } + if (tv.tv_sec > 0) { + (void) setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, &tv, + sizeof(tv)); + } if (fork() == 0) { /* * Note that printjob() also plays around with