- `httpUpdate` did not reset the socket file descriptor when the TLS
negotiation failed (Apple #5915)
- The IPP backend now retries Validate-Job requests (Issue #132)
+- Now show better error messages when a driver interface program fails to
+ provide a PPD file (Issue #148)
- Added a workaround for Solaris in `httpAddrConnect2` (Issue #156)
- Now use a 60 second timeout for reading USB backchannel data (Issue #160)
- The USB backend now tries harder to find a serial number (Issue #170)
Issue #164)
- USB quirk updates (Issue #192, Apple #5766, Apple #5838, Apple #5843,
Apple #5867)
-- Web interface updates (Issue #142)
+- Web interface updates (Issue #142, Issue #218)
- The `ippeveprinter` tool now automatically uses an available port.
- Fixed some Windows issues.
- Deprecated cups-config (Issue #97)
`LPDConfigFile`, `KeepAliveTimeout`, `RIPCache`, and `SMBConfigFile`
directives in `cupsd.conf` and `cups-files.conf`.
- Stubbed out deprecated `httpMD5` functions.
-- Printer driver deprecation wasn't mentioned in CUPS Web UI
CUPS v2.3.3op2 (February 1, 2021)
if (copy_model(con, ppd_name, dstfile))
{
- send_ipp_status(con, IPP_INTERNAL_ERROR, _("Unable to copy PPD file."));
if (!modify)
cupsdDeletePrinter(printer, 0);
if (!cupsdStartProcess(buffer, argv, envp, -1, temppipe[1], CGIPipes[1],
-1, -1, 0, DefaultProfile, NULL, &temppid))
{
+ send_ipp_status(con, IPP_INTERNAL_ERROR, _("Unable to run cups-driverd: %s"), strerror(errno));
close(tempfd);
unlink(tempfile);
*/
cupsdLogMessage(CUPSD_LOG_ERROR, "copy_model: empty PPD file");
+ send_ipp_status(con, IPP_INTERNAL_ERROR, _("cups-driverd failed to get PPD file - see error_log for details."));
unlink(tempfile);
return (-1);
}
if ((dst = cupsdCreateConfFile(to, ConfigFilePerm)) == NULL)
{
+ send_ipp_status(con, IPP_INTERNAL_ERROR, _("Unable to save PPD file: %s"), strerror(errno));
cupsFreeOptions(num_defaults, defaults);
cupsFileClose(src);
unlink(tempfile);
unlink(tempfile);
- return (cupsdCloseCreatedConfFile(dst, to));
+ if (cupsdCloseCreatedConfFile(dst, to))
+ {
+ send_ipp_status(con, IPP_INTERNAL_ERROR, _("Unable to commit PPD file: %s"), strerror(errno));
+ return (-1);
+ }
+ else
+ {
+ return (0);
+ }
}