From nobody Thu May 28 08:27:27 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 4gR03M4WbWz6fLZP for ; Thu, 28 May 2026 08:27:27 +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" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gR03M1Jznz3sVS for ; Thu, 28 May 2026 08:27:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779956847; 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=YR7DW5CUpyhlJkd0ftx8kgopYCAcF/8ANe56r2weMH8=; b=SVC2zW49mRQUebFr68ivfjpUsBHOH7kG1ao7IMjGC1q/4uy0Flyg/8KbHgMqKIBSuhpvbU d3e7dpmXQYfRYgnU/WwpdQT/i3EbBekwev33eoTi8J+tBGnPff3SABZaARDkbpRSvvkTNl umdMngPw0r4DUVjMG77uw4fpYhZfzHUePLCPG1lmlbKHPEBj6gyEy0HYSVD58xV0xSSeAu u/Xemn4Dj581ICLS482++ucEiOkOEPDvhPz2HDGyOImp9c+CP364+FHwExkm8crrWSIyN+ NjoIAtzc7BsbqjDxrt8Vuq1HgpXmizmhYlTyJEfYPuCO9VILUeaD7PoaU507gA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779956847; a=rsa-sha256; cv=none; b=nKGSCGXzeBt1fqfh8IuZL5LVvKRkZvcO/F0yGTAnXRoN8MQ2zbZPmGtSeRl6QeYnqwLGlW x1Okf3wY/6xvbAdPEmTleMa9ZP1xO7yLCVFg9C6PrFv3fytmRMeMbaDVNS45AqiL9XSw1Q NscYbjWPozw4y4vI/E6gA8qqAtMkBLbeXt3N3VvyJEaSN3d9S1M27DnUTCA3wgZ6jCcChc MPLTVPzQNP32fiypo68cDQqxFhK4OCZeZcNTaSVGLTlEo5+2BCKBgso00IFzNK5NTE3x0F RyyaQQwE786ZSV5H6QD8ngfeYDNiEhGlkAoU25kP+RuPoloWoGWkVmbTlEBQwg== 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=1779956847; 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=YR7DW5CUpyhlJkd0ftx8kgopYCAcF/8ANe56r2weMH8=; b=mFQLqAB1xaAhS3+mtmeQAYYfpU6p/nHBqfCx6XD6WXe7azOZKxFEsDAvgQ7TENrX+9q5n5 0m6grFJvqyVDpLUVNsUX4l8bo77aJo6cJe3mTr2+T0zKVAbADa3dwAuFtA4uMyRLzvJrUD LIkN7Gb69H/EdpZYHjzBmUj9s/G1RurxkP/2FSdYv2NIcI7kWebbi1bHh89Q+eCA7Odjk1 GfxqSWZq823N/uxQiTWYdsgyIlZAbV0qEDZDjJpXDnGGxwoQ7C0/6LZ6TMTOf18xt/9INl 5EVMJvUlyguLaZgHlSY7iCQuA8BEVbYIwqiodWQvmd63ek34uq27+rmyKb4Xjg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gR03M0RrjzfYW for ; Thu, 28 May 2026 08:27:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 22d5d by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 28 May 2026 08:27:27 +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: 85852fe5e4a9 - stable/14 - lpd: Restore ability to specify a port number 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 List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list 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: 85852fe5e4a9dc48e328c7f33c3be770412de5ef Auto-Submitted: auto-generated Date: Thu, 28 May 2026 08:27:27 +0000 Message-Id: <6a17fc6f.22d5d.5a14075@gitrepo.freebsd.org> The branch stable/14 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=85852fe5e4a9dc48e328c7f33c3be770412de5ef commit 85852fe5e4a9dc48e328c7f33c3be770412de5ef Author: Dag-Erling Smørgrav AuthorDate: 2026-05-25 16:51:31 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-05-28 08:27:11 +0000 lpd: Restore ability to specify a port number This has been broken since IPv6 support was added in 2000. We would validate the port number (which had to be a port number, but can now also be a service name) and then ignore it. MFC after: 1 week Fixes: 08829865f659 ("IPv6 support for lpr.") Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D57181 (cherry picked from commit c0cae7d8da50daa87af4cd6d7c9a2043343b506f) --- usr.sbin/lpr/lpd/lpd.8 | 19 ++++++++++--------- usr.sbin/lpr/lpd/lpd.c | 28 +++++++++------------------- 2 files changed, 19 insertions(+), 28 deletions(-) diff --git a/usr.sbin/lpr/lpd/lpd.8 b/usr.sbin/lpr/lpd/lpd.8 index 83b8c457d969..fc28afe51a6f 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 February 19, 2026 +.Dd May 25, 2026 .Dt LPD 8 .Os .Sh NAME @@ -37,7 +37,7 @@ .Nm .Op Fl cdlpsFW46 .Op Fl t Ar timeout -.Op Ar port# +.Op Ar port .Sh DEPRECATION NOTICE This facility is scheduled for removal prior to the release of .Fx 16.0 . @@ -145,13 +145,13 @@ Inet only. Inet6 only. .It Fl 46 Inet and inet6 (default). -.It Ar "port#" -The Internet port number used to rendezvous -with other processes is normally obtained with -.Xr getservbyname 3 -but can be changed with the -.Ar port# -argument. +.It Ar "port" +The Internet port number or service name used to rendezvous with other +processes. +Can be any number from 1 to 65,535 or any service name defined in +.Pa /etc/services . +Defaults to +.Li printer . .El .Pp Access control is provided by two means. @@ -348,6 +348,7 @@ but not under same administrative control. .Xr syslog 3 , .Xr hosts.lpd 5 , .Xr printcap 5 , +.Xr services 5 , .Xr chkprintcap 8 , .Xr lpc 8 , .Xr pac 8 diff --git a/usr.sbin/lpr/lpd/lpd.c b/usr.sbin/lpr/lpd/lpd.c index df9bfcec5de1..3371a764caf7 100644 --- a/usr.sbin/lpr/lpd/lpd.c +++ b/usr.sbin/lpr/lpd/lpd.c @@ -113,7 +113,7 @@ static void startup(void); static void chkhost(struct sockaddr *_f, int _ch_opts); static int ckqueue(struct printer *_pp); static void fhosterr(int _ch_opts, char *_sysmsg, char *_usermsg); -static int *socksetup(int _af, int _debuglvl); +static int *socksetup(int _af, const char *portstr, int _debuglvl); static void usage(void); /* XXX from libc/net/rcmd.c */ @@ -136,7 +136,7 @@ main(int argc, char **argv) struct sockaddr_storage frominet; socklen_t fromlen; sigset_t omask, nmask; - struct servent *sp, serv; + const char *portstr = "printer"; int inet_flag = 0, inet6_flag = 0; euid = geteuid(); /* these shouldn't be different */ @@ -227,19 +227,9 @@ main(int argc, char **argv) if (errs) usage(); - if (argc == 1) { - if ((i = atoi(argv[0])) == 0) - usage(); - if (i < 0 || i > USHRT_MAX) - errx(EX_USAGE, "port # %d is invalid", i); - - serv.s_port = htons(i); - sp = &serv; + if (argc > 0) { + portstr = *argv++; argc--; - } else { - sp = getservbyname("printer", "tcp"); - if (sp == NULL) - errx(EX_OSFILE, "printer/tcp: unknown service"); } if (argc != 0) @@ -351,7 +341,7 @@ main(int argc, char **argv) FD_SET(funix, &defreadfds); listen(funix, 5); if (sflag == 0) { - finet = socksetup(family, socket_debug); + finet = socksetup(family, portstr, socket_debug); } else finet = NULL; /* pretend we couldn't open TCP socket. */ if (finet) { @@ -867,7 +857,7 @@ fhosterr(int ch_opts, char *sysmsg, char *usermsg) /* if af is PF_UNSPEC more than one socket may be returned */ /* the returned list is dynamically allocated, so caller needs to free it */ static int * -socksetup(int af, int debuglvl) +socksetup(int af, const char *portstr, int debuglvl) { struct addrinfo hints, *res, *r; int error, maxs, *s, *socks; @@ -877,7 +867,7 @@ socksetup(int af, int debuglvl) hints.ai_flags = AI_PASSIVE; hints.ai_family = af; hints.ai_socktype = SOCK_STREAM; - error = getaddrinfo(NULL, "printer", &hints, &res); + error = getaddrinfo(NULL, portstr, &hints, &res); if (error) { syslog(LOG_ERR, "%s", gai_strerror(error)); mcleanup(0); @@ -946,9 +936,9 @@ static void usage(void) { #ifdef INET6 - fprintf(stderr, "usage: lpd [-cdlsFW46] [port#]\n"); + fprintf(stderr, "usage: lpd [-cdlsFW46] [port]\n"); #else - fprintf(stderr, "usage: lpd [-cdlsFW] [port#]\n"); + fprintf(stderr, "usage: lpd [-cdlsFW] [port]\n"); #endif exit(EX_USAGE); }