]> git.ipfire.org Git - thirdparty/cups.git/commitdiff
Merge changes from CUPS 1.4.0 (r8756)
authormsweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be>
Tue, 14 Jul 2009 23:31:23 +0000 (23:31 +0000)
committermsweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be>
Tue, 14 Jul 2009 23:31:23 +0000 (23:31 +0000)
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1613 a1ca3aef-8c08-0410-bb20-df032aa958be

CHANGES.txt
backend/ieee1284.c
desktop/cups.desktop.in
doc/help/ref-cupsd-conf.html.in
man/cupsd.conf.man.in
scheduler/client.c
scheduler/ipp.c
scheduler/job.c
scheduler/select.c

index a3f6f7dedd8dd2c81c56e34dc10d3ae82ee448f3..19e5d889f7eab2e4bc62bf611ea4f8ef85edc050 100644 (file)
@@ -1,10 +1,17 @@
-CHANGES.txt - 2009-07-07
+CHANGES.txt - 2009-07-14
 ------------------------
 
 CHANGES IN CUPS V1.4.0
 
        - Localization updates (STR #3223, STR #3246, STR #3248, STR #3250)
-       - Documentation updates (STR #3225, STR #3230, STR #3242)
+       - Documentation updates (STR #3225, STR #3230, STR #3242, STR #3260)
+       - The USB backend returned different URIs for some printers than in
+         CUPS 1.3 (STR #3259)
+       - The scheduler did not do local job-hold-until processing for remote
+         queues (STR #3258)
+       - The scheduler did not try all possible SSL certificates on Mac OS X.
+       - The scheduler did not always remove a file descriptor when using the
+         kqueue interface (STR #3256)
        - The scheduler did not protect against bad job control files in all
          cases (STR #3253)
        - The scheduler did not encode "+" in model names (STR #3254)
index edf7efe1b7751079f4776f01d682326b3044379b..dfb9c9c70cf1b08740c8693ef7db65f0a1563cbd 100644 (file)
@@ -306,6 +306,14 @@ backendGetDeviceID(
       mfg = temp;
     }
 
+    if (!strncasecmp(mdl, mfg, strlen(mfg)))
+    {
+      mdl += strlen(mfg);
+
+      while (isspace(*mdl & 255))
+        mdl ++;
+    }
+
    /*
     * Generate the device URI from the manufacturer, make_model, and
     * serial number strings.
index 947a6852dfccf6a671cfe7f28bee03984385a397..d75b3ec17f86446a576485825b2c9023d9642e70 100644 (file)
@@ -15,6 +15,8 @@ Name[es.UTF-8]=Administrar impresión
 Comment[es.UTF-8]=Interfaz Web de CUPS
 Name[et.UTF-8]=Trükkimise haldur
 Comment[et.UTF-8]=CUPS-i veebiliides
+Name[eu.UTF-8]=Kudeatu inprimaketak
+Comment[eu.UTF-8]=CUPSen web interfazea
 Name[fr.UTF-8]=Gestionnaire d'impression
 Comment[fr.UTF-8]=Interface Web de CUPS
 Name[he.UTF-8]=נהל הדפסות
index 150fb95fa855eaaf461ea513798a2a888765ba6e..4f880b461d6b2db5d05d593434f45248004cd3ba 100644 (file)
@@ -1104,7 +1104,7 @@ HREF="#Location"><CODE>Location</CODE></A> or <A
 HREF="#Limit"><CODE>Limit</CODE></A> section.</P>
 
 
-<H2 CLASS="title"><A NAME="DirtyCleanInterval">DirtyCleanInterval</A></H2>
+<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.4/Mac OS X 10.6</SPAN><A NAME="DirtyCleanInterval">DirtyCleanInterval</A></H2>
 
 <H3>Examples</H3>
 
@@ -1117,7 +1117,9 @@ DirtyCleanInterval 0
 
 <P>The <CODE>DirtyCleanInterval</CODE> directive specifies the number of
 seconds to wait before updating configuration and state files for printers,
-classes, subscriptions, and jobs. The default is 30 seconds.</P>
+classes, subscriptions, and jobs. The default is 30 seconds. A value of 0
+causes the update to occur as soon as possible, typically within a few
+milliseconds.</P>
 
 
 <H2 CLASS="title"><A NAME="DocumentRoot">DocumentRoot</A></H2>
index 430df4c8783425c9273584d30bb72b0f9ed2d4c7..fc36f5db83a94b6ca0076cedfbf6ba0878974189 100644 (file)
@@ -12,7 +12,7 @@
 .\"   which should have been included with this file.  If this file is
 .\"   file is missing or damaged, see the license at "http://www.cups.org/".
 .\"
-.TH cupsd.conf 5 "CUPS" "19 April 2009" "Apple Inc."
+.TH cupsd.conf 5 "CUPS" "14 July 2009" "Apple Inc."
 .SH NAME
 cupsd.conf \- server configuration file for cups
 .SH DESCRIPTION
@@ -307,6 +307,12 @@ Deny @LOCAL
 .br
 Denies access to the named host or address.
 .TP 5
+DirtyCleanInterval seconds
+.br
+Specifies the delay for updating of configuration and state files. A value of 0
+causes the update to happen as soon as possible, typically within a few
+milliseconds.
+.TP 5
 DocumentRoot directory
 .br
 Specifies the root directory for the internal web server documents.
index 2c29e3da42a3653236dcd41f76e484ddbea37999..93fbf3419f7b6d2b722fbd2337fd003e2482ba74 100644 (file)
@@ -3339,8 +3339,9 @@ encrypt_client(cupsd_client_t *con)       /* I - Client to encrypt */
  * 'get_cdsa_certificate()' - Get a SSL/TLS certificate from the System keychain.
  */
 
-static CFArrayRef                              /* O - Array of certificates */
-get_cdsa_certificate(cupsd_client_t *con)      /* I - Client connection */
+static CFArrayRef                      /* O - Array of certificates */
+get_cdsa_certificate(
+    cupsd_client_t *con)               /* I - Client connection */
 {
   OSStatus             err;            /* Error info */
   SecKeychainRef       keychain;       /* Keychain reference */
@@ -3368,6 +3369,7 @@ get_cdsa_certificate(cupsd_client_t *con) /* I - Client connection */
   CSSM_DATA            options;        /* Policy options */
   CSSM_APPLE_TP_SSL_OPTIONS
                        ssl_options;    /* SSL Option for hostname */
+  char                 localname[1024];/* Local hostname */
 
 
   if (SecPolicySearchCreate(CSSM_CERT_X_509v3, &CSSMOID_APPLE_TP_SSL, 
@@ -3410,6 +3412,35 @@ get_cdsa_certificate(cupsd_client_t *con)        /* I - Client connection */
 
   err = SecIdentitySearchCreateWithPolicy(policy, NULL, CSSM_KEYUSE_SIGN,
                                          keychain, FALSE, &search);
+  if (err && DNSSDHostName)
+  {
+   /*
+    * Search for the connection server name failed; try the DNS-SD .local
+    * hostname instead...
+    */
+
+    snprintf(localname, sizeof(localname), "%s.local", DNSSDHostName);
+
+    ssl_options.ServerName    = localname;
+    ssl_options.ServerNameLen = strlen(localname);
+
+    cupsdLogMessage(CUPSD_LOG_DEBUG,
+                   "get_cdsa_certificate: Looking for certs for \"%s\"...",
+                   localname);
+
+    if (SecPolicySetValue(policy, &options))
+    {
+      cupsdLogMessage(CUPSD_LOG_ERROR,
+                     "Cannot set policy value to use for searching");
+      CFRelease(keychain);
+      CFRelease(policy_search);
+      return (NULL);
+    }
+
+    err = SecIdentitySearchCreateWithPolicy(policy, NULL, CSSM_KEYUSE_SIGN,
+                                           keychain, FALSE, &search);
+  }
+
 #  else
  /*
   * Assume there is exactly one SecIdentity in the keychain...
index 1251628e9e5ce8f91f1fdf9c80ecded36534532a..caa620b6b2235d7d9a8f601c52daa7b02bc1553e 100644 (file)
@@ -1727,8 +1727,7 @@ add_job(cupsd_client_t  *con,             /* I - Client connection */
     attr = ippAddString(job->attrs, IPP_TAG_JOB, IPP_TAG_KEYWORD,
                         "job-hold-until", NULL, val);
   }
-  if (attr && strcmp(attr->values[0].string.text, "no-hold") &&
-      !(printer->type & CUPS_PRINTER_REMOTE))
+  if (attr && strcmp(attr->values[0].string.text, "no-hold"))
   {
    /*
     * Hold job until specified time...
index 978962421fdee4137e0fcd1e39bae50504c7ee1c..43060149f95306f18428617a3c6c28be7c4ce7b0 100644 (file)
@@ -3032,7 +3032,8 @@ get_options(cupsd_job_t *job,             /* I - Job */
          attr->value_tag == IPP_TAG_BEGIN_COLLECTION) /* Not yet supported */
        continue;
 
-      if (!strncmp(attr->name, "time-", 5))
+      if (!strncmp(attr->name, "time-", 5) ||
+          !strcmp(attr->name, "job-hold-until"))
        continue;
 
       if (!strncmp(attr->name, "job-", 4) &&
index 0ac6ce0636c460b7a6575ea771892aa0717f88ee..8896388cce2df372e9e6e42d8fc3fe23b509d7fa 100644 (file)
@@ -750,7 +750,7 @@ cupsdRemoveSelect(int fd)           /* I - File descriptor */
     {
       cupsdLogMessage(CUPSD_LOG_EMERG, "kevent() returned %s",
                      strerror(errno));
-      return;
+      goto cleanup;
     }
   }
 
@@ -762,11 +762,10 @@ cupsdRemoveSelect(int fd)         /* I - File descriptor */
     {
       cupsdLogMessage(CUPSD_LOG_EMERG, "kevent() returned %s",
                      strerror(errno));
-      return;
+      goto cleanup;
     }
   }
 
-
 #elif defined(HAVE_POLL)
  /*
   * Update the pollfds array...
@@ -781,6 +780,10 @@ cupsdRemoveSelect(int fd)          /* I - File descriptor */
   FD_CLR(fd, &cupsd_current_output);
 #endif /* HAVE_EPOLL */
 
+#ifdef HAVE_KQUEUE
+  cleanup:
+#endif /* HAVE_KQUEUE */
+
  /*
   * Remove the file descriptor from the active array and add to the
   * inactive array (or release, if we don't need the inactive array...)