]> git.ipfire.org Git - thirdparty/cups.git/commitdiff
Update PPD generator to only support custom boolean, integer, and keyword member...
authorMichael R Sweet <msweet@msweet.org>
Wed, 22 Apr 2026 18:55:22 +0000 (14:55 -0400)
committerMichael R Sweet <msweet@msweet.org>
Wed, 22 Apr 2026 18:55:22 +0000 (14:55 -0400)
CHANGES.md
cups/ppd-cache.c
scheduler/auth.c

index 5f006f7e9eb92f2fd53d2c072f3efc18c4681cef..396cee34e285fa60813974486dfb5d69270496cb 100644 (file)
@@ -92,6 +92,8 @@ v2.5b1 - YYYY-MM-DD
   releasing to the printer (Issue #1456)
 - Updated `httpAddrLookup` to return a numeric address when the resolver
   returns "localhost" for a non-loopback address.
+- Updated the IPP Everywhere PPD generator to support "job-presets-supported"
+  pairs for custom boolean, integer, and keyword attributes.
 - Deprecated the "page-border" Job Template attribute (Issue #1020)
 - Removed the `cups-config` utility (use `pkg-config` instead)
 - Fixed use-after-free in `cupsdAcceptClient()` when we log warning during error
index 3eeff661aef3b9e8bcf9e6851933b0f9ad9034d4..22ef145303e1b6f571673417c3904ac618ba171e 100644 (file)
@@ -5105,7 +5105,7 @@ _ppdCreateFromIPP(char   *buffer, /* I - Filename buffer */
          else if (keyword && !strcmp(keyword, "two-sided-short-edge"))
            cupsFilePuts(fp, "*Duplex DuplexTumble\n");
         }
-        else
+        else if (ippValidateAttribute(attr) && (ippGetValueTag(attr) == IPP_TAG_BOOLEAN || ippGetValueTag(attr) != IPP_TAG_INTEGER || ippGetValueTag(attr) != IPP_TAG_KEYWORD))
         {
          /*
           * Add attribute name and value as-is...
index 95a71a19b720cac6516edb20712f472d3bb5c869..0e2c0be80a1c68ecb3e7396cf64c6d8829f7dbe7 100644 (file)
@@ -507,7 +507,7 @@ cupsdAuthorize(cupsd_client_t *con) /* I - Client connection */
 
     if ((PeerCred == CUPSD_PEERCRED_ROOTONLY || httpGetState(con->http) == HTTP_STATE_PUT_RECV) && strcmp(authorization + 9, "root"))
     {
-      cupsdLogClient(con, CUPSD_LOG_INFO, "User \"%s\" is not allowed to use peer credentials.", authorization + 9);
+      cupsdLogClient(con, CUPSD_LOG_ERROR, "User \"%s\" is not allowed to use peer credentials.", authorization + 9);
       return;
     }
 
@@ -826,7 +826,7 @@ cupsdAuthorize(cupsd_client_t *con) /* I - Client connection */
 
     if (!*authorization)
     {
-      cupsdLogClient(con, CUPSD_LOG_DEBUG2, "No authentication data specified.");
+      cupsdLogClient(con, CUPSD_LOG_ERROR, "No authentication data specified.");
       return;
     }
 
@@ -863,7 +863,7 @@ cupsdAuthorize(cupsd_client_t *con) /* I - Client connection */
 
     if (GSS_ERROR(major_status))
     {
-      cupsdLogGSSMessage(CUPSD_LOG_DEBUG, major_status, minor_status, "[Client %d] Error accepting GSSAPI security context.", con->number);
+      cupsdLogGSSMessage(CUPSD_LOG_ERROR, major_status, minor_status, "[Client %d] Error accepting GSSAPI security context.", con->number);
 
       if (context != GSS_C_NO_CONTEXT)
        gss_delete_sec_context(&minor_status, &context, GSS_C_NO_BUFFER);
@@ -877,7 +877,7 @@ cupsdAuthorize(cupsd_client_t *con) /* I - Client connection */
     */
 
     if (major_status == GSS_S_CONTINUE_NEEDED)
-      cupsdLogGSSMessage(CUPSD_LOG_DEBUG, major_status, minor_status, "[Client %d] Credentials not complete.", con->number);
+      cupsdLogGSSMessage(CUPSD_LOG_ERROR, major_status, minor_status, "[Client %d] Credentials not complete.", con->number);
     else if (major_status == GSS_S_COMPLETE)
     {
       major_status = gss_display_name(&minor_status, client_name,
@@ -885,7 +885,7 @@ cupsdAuthorize(cupsd_client_t *con) /* I - Client connection */
 
       if (GSS_ERROR(major_status))
       {
-       cupsdLogGSSMessage(CUPSD_LOG_DEBUG, major_status, minor_status, "[Client %d] Error getting username.", con->number);
+       cupsdLogGSSMessage(CUPSD_LOG_ERROR, major_status, minor_status, "[Client %d] Error getting username.", con->number);
        gss_release_name(&minor_status, &client_name);
        gss_delete_sec_context(&minor_status, &context, GSS_C_NO_BUFFER);
        return;