<br>
Specifies the DNS-SD sub-types to advertise, separated by commas.
The default is "_cups,_print,_universal" to advertise shared printers to CUPS, IPP Everywhere, and AirPrint clients, respectively.
+</p>
+ <p style="margin-left: 2.5em; text-indent: -2.5em;"><strong>BrowseIPPSOnly Yes</strong><br>
+</p>
+ <p style="margin-left: 2.5em; text-indent: -2.5em;"><strong>BrowseIPPSOnly No</strong><br>
+<br>
+Specifies whether the scheduler only advertises secure (IPPS) services for shared printers.
+The default is "No".
</p>
<p style="margin-left: 2.5em; text-indent: -2.5em;"><strong>BrowseLocalProtocols all</strong><br>
</p>
CUPS Online Help (<a href="http://localhost:631/help">http://localhost:631/help</a>)
</p>
<h2 id="cupsd.conf-5.copyright">Copyright</h2>
-<p>Copyright © 2020-2025 by OpenPrinting.
+<p>Copyright © 2020-2026 by OpenPrinting.
</body>
</html>
.\"
.\" cupsd.conf man page for CUPS.
.\"
-.\" Copyright © 2020-2025 by OpenPrinting.
+.\" Copyright © 2020-2026 by OpenPrinting.
.\" Copyright © 2007-2019 by Apple Inc.
.\" Copyright © 1997-2006 by Easy Software Products.
.\"
.\" Licensed under Apache License v2.0. See the file "LICENSE" for more
.\" information.
.\"
-.TH cupsd.conf 5 "CUPS" "2025-04-14" "OpenPrinting"
+.TH cupsd.conf 5 "CUPS" "2026-05-04" "OpenPrinting"
.SH NAME
cupsd.conf \- server configuration file for cups
.SH DESCRIPTION
.BI BrowseDNSSDSubTypes _subtype[,...]
Specifies the DNS-SD sub-types to advertise, separated by commas.
The default is "_cups,_print,_universal" to advertise shared printers to CUPS, IPP Everywhere, and AirPrint clients, respectively.
+.\"#BrowseIPPSOnly
+.TP 5
+\fBBrowseIPPSOnly Yes\fR
+.TP 5
+\fBBrowseIPPSOnly No\fR
+.br
+Specifies whether the scheduler only advertises secure (IPPS) services for shared printers.
+The default is "No".
.\"#BrowseLocalProtocols
.TP 5
\fBBrowseLocalProtocols all\fR
.br
Specifies whether the CUPS web interface is advertised.
The default is "No".
-.\"#BrowseIPPSOnly
-.TP 5
-\fBBrowseIPPSOnly Yes\fR
-.TP 5
-\fBBrowseIPPSOnly No\fR
-.br
-Specifies whether to only advertise IPPS services.
-The default is "No".
.\"#Browsing
.TP 5
\fBBrowsing Yes\fR
.BR subscriptions.conf (5),
CUPS Online Help (http://localhost:631/help)
.SH COPYRIGHT
-Copyright \[co] 2020-2025 by OpenPrinting.
+Copyright \[co] 2020-2026 by OpenPrinting.
{
{ "AutoPurgeJobs", &JobAutoPurge, CUPSD_VARTYPE_BOOLEAN },
{ "BrowseDNSSDSubTypes", &DNSSDSubTypes, CUPSD_VARTYPE_NULLSTRING },
- { "BrowseIPPSOnly", &BrowseIPPSOnly, CUPSD_VARTYPE_BOOLEAN },
+ { "BrowseIPPSOnly", &BrowseIPPSOnly, CUPSD_VARTYPE_BOOLEAN },
{ "BrowseWebIF", &BrowseWebIF, CUPSD_VARTYPE_BOOLEAN },
{ "Browsing", &Browsing, CUPSD_VARTYPE_BOOLEAN },
{ "Classification", &Classification, CUPSD_VARTYPE_STRING },
/*
* Directory services routines for the CUPS scheduler.
*
- * Copyright © 2020-2025 by OpenPrinting.
+ * Copyright © 2020-2026 by OpenPrinting.
* Copyright © 2007-2018 by Apple Inc.
* Copyright © 1997-2007 by Easy Software Products, all rights reserved.
*
int removeit) /* I - Printer being permanently removed */
{
/*
- * Only deregister if browsing is enabled and it's a local printer...
- */
+ * Only deregister if browsing is enabled and it's a local printer...
+ */
cupsdLogMessage(CUPSD_LOG_DEBUG2, "cupsdDeregisterPrinter(p=%p(%s), removeit=%d)", (void *)p, p->name, removeit);
{
char name[256], /* Service name */
regtype[256]; /* Registration type(s) */
- int num_txt = 0; /* Number of IPP(S) TXT key/value pairs */
- cups_option_t *txt = NULL; /* IPP(S) TXT key/value pairs */
+ int num_txt; /* Number of IPP(S) TXT key/value pairs */
+ cups_option_t *txt; /* IPP(S) TXT key/value pairs */
bool status; /* Registration status */
if (!p->shared)
return;
-
+
/*
* Set the registered name as needed; the registered name takes the form of
* "<printer-info> @ <computer name>"...
// LPD placeholder
status &= cupsDNSSDServiceAdd(p->dnssd, "_printer._tcp", /*domain*/NULL, DNSSDHostName, /*port*/0, /*num_txt*/0, /*txt*/NULL);
- // IPP service
+ // IPP/IPPS services
num_txt = dnssdBuildTxtRecord(p, &txt);
+
if (!BrowseIPPSOnly)
{
-
+ // Add IPP service...
if (p->type & CUPS_PTYPE_FAX)
- {
- if (DNSSDSubTypes)
- snprintf(regtype, sizeof(regtype), "_fax-ipp._tcp,%s", DNSSDSubTypes);
- else
- cupsCopyString(regtype, "_fax-ipp._tcp", sizeof(regtype));
- }
- else
- {
- if (DNSSDSubTypes)
- snprintf(regtype, sizeof(regtype), "_ipp._tcp,%s", DNSSDSubTypes);
+ {
+ if (DNSSDSubTypes)
+ snprintf(regtype, sizeof(regtype), "_fax-ipp._tcp,%s", DNSSDSubTypes);
+ else
+ cupsCopyString(regtype, "_fax-ipp._tcp", sizeof(regtype));
+ }
else
- cupsCopyString(regtype, "_ipp._tcp", sizeof(regtype));
- }
+ {
+ if (DNSSDSubTypes)
+ snprintf(regtype, sizeof(regtype), "_ipp._tcp,%s", DNSSDSubTypes);
+ else
+ cupsCopyString(regtype, "_ipp._tcp", sizeof(regtype));
+ }
- status &= cupsDNSSDServiceAdd(p->dnssd, regtype, /*domain*/NULL, DNSSDHostName, (uint16_t)DNSSDPort, num_txt, txt);
+ status &= cupsDNSSDServiceAdd(p->dnssd, regtype, /*domain*/NULL, DNSSDHostName, (uint16_t)DNSSDPort, num_txt, txt);
}
- // IPPS service
+
+ // Add IPPS service...
if (DNSSDSubTypes)
snprintf(regtype, sizeof(regtype), "_ipps._tcp,%s", DNSSDSubTypes);
else
cupsFreeOptions(num_txt, txt);
+ // Publish all services...
status &= cupsDNSSDServicePublish(p->dnssd);
if (status)