Comparar commits

..

1 Commits

Autor SHA1 Mensagem Data
msweet f9a559303b Import cups.org releases
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/tags/release-1.5.1@4306 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-05-10 18:56:23 +00:00
1250 arquivos alterados com 24553 adições e 150744 exclusões
-84
Ver Arquivo
@@ -1,90 +1,6 @@
CHANGES-1.5.txt
---------------
CHANGES IN CUPS V1.5.4
- Documentation updates (STR #4112, STR #4130, STR #4134)
- Fixes for libusb-based USB backend (STR #4128)
- The lpq command did not show the owner or title of jobs unless passed
a username on the command-line (STR #4135)
- Localized empty strings contained the message catalog metadata
(STR #4119)
- Fixed a crash in the libusb-based USB backend (STR #4099)
- The cups-lpd mini-daemon no longer handled jobs with multiple copies
(STR #4118)
- Multiple libusb backend fixes (STR #4098, STR #4100)
- The IPP backend no longer tries to get the job status for printers
that do not implement the required operation (STR #4083)
- Sending a document in an unsupported format to an IPP printer now
automatically cancels the job (STR #4093)
- Fix some error reporting issues when printing from /dev/null and
other unusual situations (STR #4015)
- The scheduler now sets the CUPS_MAX_MESSAGE environment variable for
filters (STR #4074)
- Fixed a build issue when using older versions of autoconf (STR #4084)
- The IPP backend now treats the client-error-not-possible status code
as a job history issue, allowing IPP printing to Windows to work
(STR #4047)
- The IPP backend incorrectly included the document-format and
compression attributes in Create-Job requests (STR #4086)
- The libusb-based USB backend did not work on non-Linux platforms
(STR #4088)
CHANGES IN CUPS V1.5.3
- httpReconnect() did not reset the read/write buffers (STR #4065)
- Compiling without threading support failed (STR #4060)
- Fixed compile problem with old versions of OpenSSL (STR #4036)
- The network backends did not check SNMP supply levels regularly
(STR #4040)
- The online help always included the "help on help" text (STR #4042)
- Fixed a SSL handshake issue on OS X (STR #4045)
- The scheduler could crash if a PPD file contained an invalid paper
size (STR #4049)
- The CUPS polling daemon did not reinitialize its connection to the
remote server on errors in all cases (STR #4031)
- PostScript auto-configuration was slow and unreliable with some
printers (STR #4028)
- Missing localizations caused empty output (STR #4033)
- The cups-driverd program could temporarily "forget" a PPD file if it
was updated in place.
- The dnssd backend now prefers IPPS over IPP.
- The USB backend now uses and requires LIBUSB 1.0 or later (STR #3477)
- The LIBUSB-based USB backend now supports the back-channel (STR #2890)
- Changed how timeouts are implemented in the LPD backend (STR #4013)
- Added more supported color names for SNMP supplies (STR #3981)
- The default InputSlot setting was never used (STR #3957)
- POSIX ACLs are now set properly on certificate files (STR #3970)
- Supplies with commas in their names were not reported correctly
(STR #4020)
- The cupsGetPPD3() function created a temporary file when one was not
needed (STR #4018)
- The scheduler now ensures that job notifications contain a value for
the notify-printer-uri attribute (STR #4014)
- The lp and lpr commands did not cancel jobs queued from stdin on an
error (STR #4015)
- Fixed the IPP backend's handling of HTTP/1.0 compatibility (STR #3988)
- The IPP backend did not always setup username/password authentication
for printers (STR #3985)
- The IPP backend no longer re-queues print jobs that are too large for
the printer/server (STR #3977)
- The RPM spec file did not work (STR #4021, STR #4057)
- Encryption did not work when the server name ended with "."
(STR #4011)
- The multi-purpose tray is now mapped to the IPP "by-pass-tray"
(STR #4009)
- The correct media size was not always passed to IPP printers
(STR #4001)
- Finishing options were not passed to IPP printers (STR #3995)
- Fixed iCloud-based Back to My Mac printing (STR #3996)
CHANGES IN CUPS V1.5.2
- Reposted what should have been CUPS 1.5.1.
CHANGES IN CUPS V1.5.1
- Documentation updates (STR #3885, STR #3886, STR #3946, STR #3969)
-244
Ver Arquivo
@@ -1,244 +0,0 @@
CHANGES-1.6.txt
---------------
CHANGES IN CUPS V1.6.4
- Removed some duplicate size definitions for some ISO sizes that were
causing problems (<rdar://problem/14722721>)
- The IPP backend did not add the "last-document" attribute
(<rdar://problem/114660379>)
- Added a SyncOnClose directive to cups-files.conf to force cupsd to
call fsync before closing any configuration/state files it writes
(<rdar://problem/14523043>)
- Added USB quirk rule for Lexmark E238 (<rdar://problem/14493054>)
- Closed server connections were still not always detected
(<rdar://problem/14484313>)
- The libusb-based USB backend now loads its list of quirks from files
in /usr/share/cups/usb instead of using a hardcoded table
(<rdar://problem/14442769>)
- The scheduler did not properly register ICC color profiles with
colord (<rdar://problem/14455625>)
CHANGES IN CUPS V1.6.3
- The configure script now prefers Clang over GCC.
- Fixed a compile problem on AIX (STR #4307)
- The default IPP version did not always get set before creating a new
IPP request message (<rdar://problem/14401718>)
- The lp, lpq, lpr, and lpstat now display an error message advising the
use of the /version=1.1 ServerName option (<rdar://problem/14290628>)
- Added documentation about the /version=1.1 option to ServerName in
client.conf (<rdar://problem/14216262>)
- httpStatus(HTTP_ERROR) did not return a useful error message
(<rdar://problem/14217326>)
- The lp, lpq, lpr, and lpstat commands incorrectly ignored the default
printer set in the lpoptions file (<rdar://problem/14216472>)
- Fixed a URI encoding issue for hostnames containing the ` (backquote)
character (<rdar://problem/14243133>)
- Added support for RFC 6874's IPv6 link local address format in URIs
(<rdar://problem/13979453>)
- The USB backend could crash on libusb-based systems if USB was
disabled in the BIOS (<rdar://problem/13875729>)
- Fixed a rounding error in the PWG media size mapping code
(<rdar://problem/13493241>)
- Fixed several ipptool test files that used old STATUS names.
- Kerberos credentials could get truncated when printing to a shared
printer.
- Printing using "ipps" URIs was not encrypted.
- Insecure ICC profiles prevented installation of user profiles for a
printer on OS X.
- Added more USB quirks for the libusb-based backend (STR #4311,
<rdar://problem/13736470>)
- The Russian web interface templates were broken (STR #4310)
- The scheduler no longer tries to do Kerberos authentication over the
loopback interface.
- The IPP backend could fail to pause a job for authentication
(STR #4298)
- Fixed a regression on the handling of auth keys on OS X if the
cups-files.conf was not present or did not contain a SystemAuthKey
value.
- The scheduler incorrectly did a reverse lookup of the server address
when HostNameLookups was turned off (STR #4302)
- The scheduler incorrectly computed the final content type value when
null filters were present.
CHANGES IN CUPS V1.6.2
- Documentation fixes (STR #4229, STR #4239, STR #4234, STR #4248,
STR #4259)
- Security: All file, directory, user, and group settings are now stored
in a separate cups-files.conf configuration file that cannot be set
through the CUPS web interface or APIs (STR #4223)
- Added a Czech localization (STR #4201)
- Added a French localization (STR #4247)
- Added a Russian localization (STR #4228, STR #4285)
- Updated the Catalan localization (STR #4202)
- Local certificate authentication did not guard against an empty
certification file (STR #4293)
- The scheduler did not reject device URIs with spaces.
- Added USB quirk rule for Epson Stylus Photo 750 (STR #4286)
- The IPP backend could crash if the printer disconnects early
(STR #4284)
- cupsGetPPD did not work with statically-configured CUPS shared
queues (STR #4178)
- The scheduler did not support long MIME media types (STR #4270)
- The cupsfilter command did not set the CHARSET environment variable
for the text filters (STR #4273)
- The lp command did not show errors for unknown "--foo" (STR #4261)
- Bad IPP responses could crash ipptool (STR #4262)
- Updated USB quirk rules for Canon and Xerox printers (STR #4217,
STR #4263)
- Added USB blacklisting for printers that require a custom backend
(STR #4218)
- The PPD compiler did not correctly JCL options (STR #4115, STR #4203)
- The ipptool program now supports DEFINE-MATCH and DEFINE-NO-MATCH
predicates for STATUS directives.
- Fixed a problem with local Kerberos authentication (STR #4140)
- Coverity scan: fixed some minor issues (STR #4242)
- The scheduler did not remove color profiles after deleting a printer
(STR #4232, STR #4276)
- The CUPS library did not always detect a timed out connection to the
server which could cause temporary loss of printing from applications
(STR #4187)
- The ipptool program now supports variable substitution in OPERATION
and DELAY directives (STR #4175)
- The IPP backend now stops queues when the server configuration
prevents successful job submission (STR #4125)
- The XML output of ipptool contained empty dictionaries (STR #4136)
- The scheduler did not delete job control backup files (STR #4244)
- cupsGetPPD3 could return a local PPD instead of the correct remote
PPD.
- The scheduler incorrectly advertised auth-info-required for local
queues needing local authentication (STR #4205)
- CUPS 1.6 clients using the ServerName directive in client.conf did not
work with CUPS 1.3.x or older servers (STR #4231, STR #4291)
- The SNMP backend now tries to work around broken printers that use a
newline to separate key/value pairs.
- The IPP backend did not send a cancel request to printers when a job
was canceled and the printer did not support Create-Job.
- Fixed EPM packaging files (STR #4199)
- OpenBSD build fix (STR #4195, STR #4196, STR #4197)
- The scheduler could crash when using Avahi (STR #4183, STR #4192,
STR #4200, STR #4213)
- The IPP backend could get stuck in an endless loop on certain network
errors (STR #4194)
- 32-bit builds failed on Debian (STR #4133)
- The scheduler no longer accepts or sends job description attributes.
- The IPP backend now works around some conformance issues for broken
printers (STR #4190)
- cupsBackendReport() now filters out all control characters from the
reported 1284 device IDs (STR #4124)
- The scheduler no longer allows job-name values that are not valid
network Unicode strings (STR #4072)
- The web interface did not preserve the order of classes, jobs, or
printers (STR #4170)
- The network backends now support disabling of SNMP supply level
queries via the "snmp" URI option (STR #4106)
- The IPP backend did not specify the compression used (STR #4181)
- ipptool did not support octetString values.
- The scheduler did not recognize dnssd: or ipps: URIs as Bonjour shared
queues (STR #4158)
- Applications could not get the PPD file for statically-configured
Bonjour-shared print queues (STR #4159)
- The cupsd.conf file included obsolete browsing directives (STR #4157)
- Fixed a USB backend compatibility issue on systems using libusb
(STR #4155, STR #4191)
- Some Bonjour features were not available on systems with Avahi
(STR #4156)
- CUPS now includes the port number in the Host: header for HTTP
requests.
- Fixed REPEAT-MATCH for STATUS and EXPECT - was incorrectly erroring
out.
CHANGES IN CUPS V1.6.1
- Documentation fix (STR #4149)
- RPM packaging fixes (STR #4129, #4145)
- The Japanese and English web interface headers were swapped
(STR #4148)
CHANGES IN CUPS V1.6.0
- Document changes (STR #4131)
- Added new Catalan (STR #4107) and Spanish (STR #4137) localizations.
CHANGES IN CUPS V1.6rc1
- Added a new Japanese localization (STR #4122)
- The SNMP backend no longer exits if it is unable to obtain an IPv6
socket (STR #4109)
- The LPD backend incorrectly used "localhost" in the control file
instead of the current hostname.
CHANGES IN CUPS V1.6b1
- Documentation updates (STR #3927, STR #3980, STR #4010, STR #4068)
- The scheduler now consolidates all PPD updates from filters at the
end of the job (STR #4075)
- CUPS now supports color management using colord (STR #3808)
- CUPS now supports Bonjour using Avahi (STR #3066)
- The PreserveJobFiles and PreserveJobHistory directives now support
specification of a time interval (STR #3143)
- PPD files can now be archived in (gzip'd) tar files to further reduce
the disk space used by PPD files (STR #3772)
- The network backends now deal with printers that report their levels
in percent but do not specify a maximum capacity of 100 (STR #3551)
- The network backends now report full/almost-full waste bins in
printers along with end-of-life for cleaning pads (STR #4017)
- Added a configure option to set the permissions of the installed
cupsd (STR #3459)
- Added a new WITH-ALL-VALUES directive to ipptool EXPECT predicates
(STR #3949)
- CUPS now supports a User directive in client.conf and the CUPS_USER
environment variable for overriding the default username (STR #3114)
- Now set the PJL USERNAME variable as needed (STR #3100)
- Added support for usernames and passwords longer than 32 characters
(STR #2856)
- Added a new MaxHoldTime directive to automatically cancel jobs that
have been held indefinitely after a specific number of seconds
(STR #2291)
- The LPD backend now uses the originating host name when it is not the
local system (STR #2053)
- CUPS now prefers the suffix "dpcm" when reporting resolution in dots-
per-centimeter (STR #4006)
- The configure script and build system no longer support building of
separate 32-bit and 64-bit libraries.
- The "brightness", "columns", "fitplot", "gamma", "hue",
"natural-scaling", "penwidth", "position", "ppi", "saturation", and
"scaling" options are not longer supported (STR #4010)
- The "page-bottom", "page-left", "page-right", "page-top",
"prettyprint", and "wrap" options have been deprecated (STR #4010)
- The scheduler now reports the standard "number-of-documents" attribute
instead of the CUPS-specific "document-count" attribute in
job objects.
- Added new destination connection and enumeration functions (STR #3924)
- Added new option, localization, and job submission functions that do
not depend on PPD files (STR #3925)
- Added a new MaxJobTime directive for cupsd that specifies the maximum
amount of time allowed for a job to complete before it is canceled.
- The default password callback now supports passwords up to 127
characters.
- The scheduler now supports a DefaultAuthType of "auto" to
automatically choose between Basic (username/password) and Negotiate
(Kerberos) authentication.
- cupsSideChannelSNMPGet/Walk now support OIDs and values up to 64k in
length.
- CUPS no longer supports automatic remote printers or implicit classes
via the CUPS, LDAP, or SLP protocols (STR #3922, STR #3923)
- The PPD APIs are now deprecated and will be removed in a future
version of CUPS (STR #3927)
- The default IPP version for requests is now 2.0 (STR #3929)
- The IPP APIs no longer expose the ipp_t or ipp_attribute_t structures
and instead provide accessor functions (STR #3928)
- The scheduler will no longer run programs with group write permission.
- The PHP module has been removed (STR #3932)
- The bannertops, commandtoescpx, commandtopclx, imagetops,
imagetoraster, pdftops, rastertoescpx, rastertopclx, and texttops
filters have been removed (STR #3930)
- The serial and parallel backends have been removed (STR 3935)
+1 -61
Ver Arquivo
@@ -1,69 +1,9 @@
CHANGES-IPPTOOL.txt - 2014-03-28
CHANGES-IPPTOOL.txt - 2012-01-10
--------------------------------
This file provides a list of changes to the ipptool binary distribution posted
on cups.org.
2014-03-28
- Fixed SSL support on Windows (STR #4358)
2013-07-15
- New ippfind tool now included with ipptool.
- Added support for automatically extending the timeout when all of the
request data has not yet been written (all platforms but Windows
which does not support it...)
- Fixed several ipptool test files that used old STATUS names.
2013-04-18
- Fixed some HTTP issues with authentication and compression.
- The IPP/1.1 test file did not allow for sufficient retries when
printing.
- The IPP/1.1 test file did not allow for empty printer-name values.
- The IPP Everywhere test file contained numerous errors.
- The color.jpg test file used a progressive mode instead of the
baseline JPEG mode.
- The IPP/1.1 test file referenced "color.jpeg" instead of "color.jpg".
2013-01-31
- Added support for DEFINE-MATCH and DEFINE-NO-MATCH as STATUS
predicates.
- Added support for WITH-VALUE and resolution values.
- Added support for SKIP-IF-MISSING (skip test if file is missing)
- Added support for octetString values.
- Added support for document compression in Print-Job and Send-Document
requests.
- Fixed REPEAT-MATCH for STATUS and EXPECT - was incorrectly erroring
out.
- Fixed a bug where bad IPP responses would cause ipptool to crash.
2012-02-28
- Changed behavior of WITH-VALUES "/regex/" to not require all values to
match.
- Added WITH-ALL-VALUES directive for EXPECT predicates that require all
values to match.
- Updated test files to use WITH-ALL-VALUES where necessary.
- Updated test files to use new ABNF for media names from PWG Media
Names 2.0.
2012-02-06
- Fixed the packaging of ipptool on Windows (removed unnecessary DLLs)
- Fixed an crash in ipptool when mixing DISPLAY with -I and a failed
request.
- Added a Print-Job test file.
- Added a "setdebug" batch file for Windows
- Added support for a CUPS_DISABLE_ASYNC_CONNECT environment variable.
2012-01-10
+37 -214
Ver Arquivo
@@ -1,217 +1,40 @@
CHANGES.txt - 1.7.3 - 2014-05-27
CHANGES.txt - 1.6b1 - 2012-01-30
--------------------------------
CHANGES IN CUPS V1.7.3
CHANGES IN CUPS V1.6b1
- Added Brazilian Portuguese translation (STR #4409)
- Fixed mapping of OutputBin values such as "Tray1"
(<rdar://problem/16685606>)
- Several ippGet* functions incorrectly returned -1 instead of 0 on
error.
- The cupsGetResponse function did not work properly with
CUPS_HTTP_DEFAULT (<rdar://problem/16762593>)
- The IPP backend did not abort a job when the printer did not validate
the supplied options (<rdar://problem/16836752>)
- Fixed an authentication race condition in cupsSendRequest (STR #4403)
- The scheduler did not add the "job-hold-until-specified" reason when
holding a job using the lp command (STR #4405)
- The CUPS headers incorrectly needed libdispatch for blocks support
(STR #4397)
- The configure script incorrectly added libgcrypt as a GNU TLS
dependency (STR #4399)
- CUPS did not compile when Avahi or mDNSResponder was not present
(STR #4402)
- cupsGetDestMediaCount did not work for CUPS_MEDIA_FLAGS DEFAULT
(STR #4414)
- Auto-typing of PWG Raster files did not work (STR #4417)
- IPP queues using hardcoded credentials would ask for credentials
(STR #4371)
- Dates in non-UTF-8 locales did not display correctly (STR #4388)
- The RPM spec file now looks for libusb-devel 1.0 or later.
- Fixed the "create-printer-subscription.test" file for IPPTOOL
(STR #4420)
CHANGES IN CUPS V1.7.2
- Security: The scheduler now blocks URLs containing embedded HTML
(STR #4356)
- Documentation fixes (STR #3259, STR #4346, STR #4355)
- Fixed the Japanese localization (STR #4385)
- Added a German localization (STR #4363)
- The cupsfilter command incorrectly read the cupsd.conf file; it now
reads the cups-files.conf file instead.
- Fixed OS X builds with Xcode 5.x (<rdar://problem/15914959>)
- Fixed SSL support on Windows (STR #4358)
- Fixed documentation and naming of Create-Job/Printer-Subscriptions
operations (STR #4389)
- Phone numbers in fax jobs were not properly filtered for IPP FaxOut
(<rdar://problem/16351701>)
- Fixed a memory leak in the label printer driver (STR #4393)
- Updated Linux "relro" support (STR #4349)
- cupsEnumDests did not set the "is_default" field (STR #4332)
- cupsDoIORequest could miss the server status, causing failed lpadmin
and other administrative commands (STR #4386)
- cupsEnumDests didn't always call the callback function (STR #4380)
- "lp -i job-id -H hold" did not work (STR #4401)
- CUPS didn't compile on older platforms (STR #4338)
- Several libcups files did not have the Apple license exception
notice (STR #4361)
- Fixed a D-BUS threading issue that caused the scheduler to crash
(STR #4347)
- The scheduler now automatically reconnects to Avahi as needed
(STR #4370, STR #4373)
- The scheduler did not handle GET requests for the log files properly
(STR #3265)
- The dnssd backend did not always report all discovered printers using
Avahi (STR #4365)
- The Zebra printer driver did not properly handle negative "label top"
values (STR #4354)
- The scheduler did not always update the MakeModel value in
printers.conf after updating the driver (STR #4264)
- The LPD mini daemon did not support print jobs larger than 2GB
(STR #4351)
- Fixed a bug in the status reading code when sending a compressed data
stream to an IPP printer/server (<rdar://problem/16019623>)
- The IPP backend might not include all job attributes in Validate-Job
operations (<rdar://problem/16025435>)
- Fixed some clang-reported issues (<rdar://problem/15936066>)
CHANGES IN CUPS V1.7.1
- Security: the lppasswd program incorrectly used settings from
~/.cups/client.conf (STR #4319)
- Auto debug logging was broken in 1.7.0 (<rdar://problem/15331639>)
- Some gzip'd PPD files could not be used (<rdar://problem/15386424>)
- Cleaned up some job logging in the scheduler
(<rdar://problem/15332672>)
- ATTR messages could cause string pool memory corruption in the
scheduler (<rdar://problem/15382819>)
- The RPM spec file did not list the build requirements; this was on
purpose, but now we are listing the Red Hat package names
(<rdar://problem/15375760>, STR #4322)
- Printing to a raw queue could result in corrupt output due to
opportunistic compression (<rdar://problem/15008524>)
- The GNU TLS support code triggered many compiler warnings due to the
use of old GNU TLS compatibility type names
(<rdar://problem/15392966>)
- The "make check" test suite did not work on Linux without the
cups-filters package installed (<rdar://problem/14292998>)
- Japanese PPDs using with the Shift-JIS encoding did not work
(<rdar://problem/15427759>)
- "tel:" URIs incorrectly had slashes (<rdar://problem/15418463>)
- The libusb-based USB backend incorrectly used write timeouts
(<rdar://problem/15564888>)
- Shared printers could become inaccessible after a few days on OS X
(<rdar://problem/15426838>)
- The IPP backend did not wait for a busy printer to become available
before attempting to print (<rdar://problem/15465667>)
- CUPS did not support "auto-monochrome" or "process-monochrome" for the
"print-color-mode" option (<rdar://problem/15482520>)
- Using "@IF(name)" in an Allow or Deny rule did not work (STR #4328)
- lpq and lpstat did not list jobs in the correct order when priorities
were specified (STR #4326)
- The D-BUS notifier did not remove its lockfile (STR #4314)
- CUPS incorrectly used the USER environment variable when the name did
not match the user ID (STR #4327)
CHANGES IN CUPS V1.7.0
- Updated Japanese localization.
- The lpadmin command did not send the PPD name from the "-m" option
(<rdar://problem/15264697>)
- Network backends now use the prtMarkerSuppliesClass property to
determine the direction of supply level values
(<rdar://problem/14302628>)
- The scheduler did not remove backup PPD files when a printer was
deleted (<rdar://problem/15065555>)
- The scheduler incorrectly responded to HEAD requests when the web
interface was disabled (<rdar://problem/15090332>)
- The scheduler did not respond using the hostname specified by the
client (<rdar://problem/14583574>)
- Fax queues did not work when shared via Bonjour
(<rdar://problem/14498310>)
- Error messages from the scheduler were not localized using the
language specified in the client's IPP request
(<rdar://problem/14128011>)
- Added an Italian localization (<rdar://problem/14481578>)
- Fixed a couple memory leaks in ippfind that were reported by Clang.
- Fixed a compile issue on 64-bit Linux with Clang - need to use the
-pie option instead of -Wl,-pie now (<rdar://problem/14480938>)
- The ippfind utility reported the wrong port numbers when compiled
against Avahi (<rdar://problem/14508324>)
- httpGetFd, httpGetFile, httpPutFd, and httpPutFile did not
automatically reconnect if the server closed the connecion after the
previous response.
- Fixed a compile error in libcups (<rdar://problem/14467141>)
- The scheduler incorrectly did not pass a FINAL_CONTENT_TYPE
environment variable to the filters or backend
(<rdar://problem/14355011>)
- The cups-exec helper program could fail randomly on OS X due to
sandbox violations when closing excess file descriptors
(<rdar://problem/14421943>)
- The scheduler incorrectly did not use the kqueue interface on OS X.
CHANGES IN CUPS V1.7rc1
- Printer xxx-default values were not reported by Get-Printer-Attributes
or lpoptions (<rdar://problem/14401795>)
- Fixed deprecation warnings for many functions on OS X so they are tied
to the deployment version when building (<rdar://problem/14210079>)
- Fixed a build issue on ARM-based Linux systems - unable to validate
va_list arguments.
- Added a new ippfind tool for finding IPP printers and other Bonjour
services (<rdar://problem/13876199>)
- Fixed some issues with conversion of PWG media size names to
hundredths of millimeters (<rdar://problem/14065748>)
- The IPP backend could crash on OS X when printing to a Kerberized
printer (<rdar://problem/14040186>)
- The ipptool program now automatically extends timeouts when the
output buffer is filled (<rdar://problem/14016099>)
- The ipptool program now supports the --help and --version options.
- The ipptool program did not continue past include file errors by
default (<rdar://problem/13875803>)
- The ipptool program now supports FILE-ID and TEST-ID directives and
includes their values in its XML output (<rdar://problem/13876038>)
- The ipptool program now supports WITH-HOSTNAME, WITH-RESOURCE, and
WITH-SCHEME expect predicates to compare the corresponding URI
components (<rdar://problem/13876091>)
CHANGES IN CUPS V1.7b1
- The configure script now supports a --with-rundir option to change
the transient run-time state directory from the default to other
locations like /run/cups (STR #4306)
- The scheduler now supports PPD lookups for classes (STR #4296)
- The cupsfilter program did not set the FINAL_CONTENT_TYPE
environment variable for filters.
- Added a new "-x" option to the cancel command (STR #4103)
- Made the PWG media handling APIs public (STR #4267)
- Implemented ready media support for the cupsGetDestMediaXxx APIs
(STR #4289)
- Added new cupsFindDestDefault, cupsFindDestReady, and
cupsFindDestSupported APIs (STR #4289)
- Added new cupsGetDestMediaByIndex, cupsGetDestMediaCount, and
cupsGetDestMediaDefault APIs (STR #4289)
- Added new ippGet/SetOctetString APIs for getting and setting an
octetString value (STR #4289)
- Added new ippCreateRequestedArray API for generating a array of
attributes from the requested-attributes attribute.
- The ipptool utility now supports compression, conditional tests based
on the presence of files, and new DEFINE predicates for STATUS.
- Added new IPP APIs for checking values (STR #4167)
- Added new IPP APis for adding and setting formatted strings.
- Added new HTTP APIs to support basic server functionality via libcups.
- The dnssd backend now generates a 1284 device ID as needed (STR #3702)
- CUPS now supports compressing and decompressing streamed data
(STR #4168)
- CUPS now supports higher-level PIN printing, external accounting
systems, and "print here" printing environments (STR #4169)
- IRIX is no longer a supported operating system (STR #4092)
- The PPD compiler now supports JCL options properly (STR #4115)
- The web interface now checks whether the web browser has cookies
enabled and displays a suitable error message (STR #4141)
- The configure script and build system no longer support building of
separate 32-bit and 64-bit libraries.
- The "brightness", "columns", "fitplot", "gamma", "hue",
"natural-scaling", "penwidth", "position", "ppi", "saturation", and
"scaling" options are not longer supported (STR #4010)
- The "page-bottom", "page-left", "page-right", "page-top",
"prettyprint", and "wrap" options have been deprecated (STR #4010)
- The scheduler now reports the standard "number-of-documents" attribute
instead of the CUPS-specific "document-count" attribute in
job objects.
- Added new destination connection and enumeration functions (STR #3924)
- Added new option, localization, and job submission functions that do
not depend on PPD files (STR #3925)
- Added a new MaxJobTime directive for cupsd that specifies the maximum
amount of time allowed for a job to complete before it is canceled.
- The default password callback now supports passwords up to 127
characters.
- The scheduler now supports a DefaultAuthType of "auto" to
automatically choose between Basic (username/password) and Negotiate
(Kerberos) authentication.
- cupsSideChannelSNMPGet/Walk now support OIDs and values up to 64k in
length.
- CUPS no longer supports automatic remote printers or implicit classes
via the CUPS, LDAP, or SLP protocols (STR #3922, STR #3923)
- The PPD APIs are now deprecated and will be removed in a future
version of CUPS (STR #3927)
- The default IPP version for requests is now 2.0 (STR #3929)
- The IPP APIs no longer expose the ipp_t or ipp_attribute_t structures
and instead provide accessor functions (STR #3928)
- The scheduler will no longer run programs with group write permission.
- The PHP module has been removed (STR #3932)
- The bannertops, commandtoescpx, commandtopclx, imagetops,
imagetoraster, pdftops, rastertoescpx, rastertopclx, and texttops
filters have been removed (STR #3930)
- The serial and parallel backends have been removed (STR 3935)
+4 -7
Ver Arquivo
@@ -1,4 +1,4 @@
CREDITS.txt - 2013-07-23
CREDITS.txt - 2010-03-13
------------------------
Few projects are completed by one person, and CUPS is no exception. We'd
@@ -17,7 +17,7 @@ like to thank the following individuals for their contributions:
Wang Jian - CUPS RPM corrections.
Roderick Johnstone - Beta tester of the millenium.
Till Kamppeter - Bug fixes, beta testing, evangelism.
Iñaki Larrañaga - Basque localization.
Iaki Larraaga - Basque localization.
Kenshi Muto - Japanese localization, patches, and
testing.
Tomohiro Kato - Japanese localization.
@@ -27,19 +27,16 @@ like to thank the following individuals for their contributions:
Mark Lawrence - Microsoft interoperability testing.
Jeff Licquia - Bug fixes, beta testing, evangelism.
Jason McMullan - Original CUPS RPM distributions.
Àngel Mompó - Catalan localization.
Wes Morgan - *BSD fixes.
Daniel Nylander - Swedish localization.
Niklas 'Nille' Åkerström - Swedish localization.
Naruiko Ogasawara - Japanese localization.
Niklas 'Nille' kerstršm - Swedish localization.
Giulio Orsero - Bug fixes and testing.
Michal Osowiecki - Polish localization.
Citra Paska - Indonesian localization.
Kurt Pfeifle - Bug fixes, beta testing, evangelism.
Vincenzo Reale - Italian localization.
Petter Reinholdtsen - HP-UX compiler stuff.
Juan Pablo González Riopedre - Spanish localization.
Giovanni Scafora - Italian localization.
Juan Pablo Gonzlez Riopedre - Spanish localization.
Opher Shachar - Hebrew localization.
Stuart Stevens - HP JetDirect IPP information.
Andrea Suatoni - IRIX desktop integration and testing.
+20 -23
Ver Arquivo
@@ -1,20 +1,14 @@
INSTALL - CUPS v1.7.3 - 2014-05-27
INSTALL - CUPS v1.5.0 - 2011-07-25
----------------------------------
This file describes how to compile and install CUPS from source code. For more
information on CUPS see the file called "README.txt". A complete change log can
be found in "CHANGES.txt".
*******************************************************************************
*******************************************************************************
**** ****
**** USING CUPS REQUIRES ADDITIONAL THIRD-PARTY SUPPORT SOFTWARE AND ****
**** PRINTER DRIVERS. THESE ARE TYPICALLY INCLUDED WITH YOUR OPERATING ****
**** SYSTEM DISTRIBUTION. APPLE DOES NOT ENDORSE OR SUPPORT THIRD-PARTY ****
**** SUPPORT SOFTWARE FOR CUPS. ****
**** ****
*******************************************************************************
*******************************************************************************
**** IF YOU HAVE A NON-POSTSCRIPT PRINTER AND ARE NOT ****
**** RUNNING MAC OS X, YOU WILL ALSO NEED TO INSTALL GPL ****
**** GHOSTSCRIPT WITH THE "cups" DRIVER AFTER YOU INSTALL ****
**** CUPS. ****
BEFORE YOU BEGIN
@@ -29,16 +23,18 @@ BEFORE YOU BEGIN
Compaq, HP, SGI, and Sun. BSD users should use GNU make (gmake) since BSD
make does not support "include".
Besides these tools you'll want ZLIB library for compression support, the
CDSA, GNU TLS, or OpenSSL libraries for encryption support, and either MIT
(1.6.3 or higher) or Heimdal Kerberos for Kerberos support. CUPS will
compile and run without these, however you'll miss out on many of the
features provided by CUPS.
Besides these tools you'll want the JPEG, PNG, TIFF, and ZLIB libraries for
image support, the CDSA, GNU TLS, or OpenSSL libraries for encryption
support, the OpenLDAP and OpenSLP libraries for directory services support,
and either MIT (1.6.3 or higher) or Heimdal Kerberos for Kerberos support.
CUPS will compile and run without these, however you'll miss out on many of
the features provided by CUPS.
Also, please note that CUPS does not include print filters to support PDF
or raster printing. You *must* download GPL Ghostscript and/or the Open
Printing CUPS filters package separately to print on operating systems
other than OS X.
Also, please note that CUPS does not include the Ghostscript-based
PostScript filter needed by non-PostScript printers. You *must* download
GPL Ghostscript separately from the CUPS web site if you want to print
PostScript files to non-PostScript printers on operating systems other than
Mac OS X.
COMPILING THE SUBVERSION REPOSITORY CODE
@@ -147,7 +143,7 @@ INSTALLING THE SOFTWARE
The EPM software is available at:
http://www.msweet.org/
http://www.epmhome.org/
CREATING BINARY DISTRIBUTIONS WITH EPM
@@ -197,9 +193,10 @@ GETTING DEBUG LOGGING FROM CUPS
REPORTING PROBLEMS
If you have problems, READ THE DOCUMENTATION FIRST! If the documentation
does not solve your problems, please post a message on the users forum at:
does not solve your problems, please post a message on the "cups.general"
forum at:
http://www.cups.org/
http://www.cups.org/newsgroups.php
Include your operating system and version, compiler and version, and any
errors or problems you've run into. The "config.log" file and the output
+33 -120
Ver Arquivo
@@ -1,4 +1,4 @@
IPPTOOL.txt - 2014-04-10
IPPTOOL.txt - 2011-12-02
------------------------
See the file CHANGES-IPPTOOL.txt for a list of changes to this software.
@@ -6,46 +6,14 @@ See the file CHANGES-IPPTOOL.txt for a list of changes to this software.
INTRODUCTION
CUPS includes two user programs for IPP printers. The first is called
ipptool and can be used to send arbitrary IPP requests to a CUPS server or
IPP printer. This tool started life as part of the CUPS automated test
suite and has grown to support complex conformance tests and a simple way
to query printer, job, and subscription attributes.
The second program called ippfind that can be used to find IPP printers
that have registered themselves using Bonjour (DNS-SD, mDNS, and Zeroconf)
and run commands such as ipptool.
Starting with CUPS 1.5, CUPS now installs a user program called ipptool that
can be used to send arbitrary IPP requests to a CUPS server or IPP printer.
This tool started life as part of the CUPS automated test suite and has
grown to support complex conformance tests and a simple way to query
printer, job, and subscription attributes.
READING THE DOCUMENTATION
Full documentation on the ipptool command can be found in the
"man-ipptool.html" and "man-ipptoolfile.html" files; the latter describes
the test file format supported by ipptool.
Full documentation on the ippfind command can be found in the
"man-ippfind.html" file.
IPPFIND BASIC USAGE
The ippfind command can be used to discover IPP printers on your network.
For example, the following command prints the printer URI of registered IPP
printers:
ippfind
To find all color IPP printers, run:
ippfind --txt-color T
And to run the IPP Everywhere conformance test file on every registered IPP
printer, run the following command:
ippfind _ipp._tcp,_print --exec ipptool -t '{}' ipp-everywhere.test \;
IPPTOOL BASIC USAGE
BASIC USAGE
The ipptool command requires a printer URI and one or more "test" files that
describe the operations, attributes to display, and expected status and
@@ -78,37 +46,11 @@ IPPTOOL BASIC USAGE
75,pending-held,testfile.txt,msweet
STANDARD TEST FILES
The following standard test files are included with ipptool:
create-printer-subscription.test Creates a printer subscription for
state change notifications
get-completed-jobs.test Shows a list of completed jobs
get-jobs.test Shows a list of pending jobs
get-notifications.test Shows events for an ippget
subscription.
get-printer-attributes.test Shows printer attributes
get-subscriptions.test Shows a list of subscriptions
ipp-1.1.test IPP/1.1 conformance test suite
ipp-2.0.test IPP/2.0 conformance test suite
ipp-2.1.test IPP/2.1 conformance test suite
ipp-2.2.test IPP/2.2 conformance test suite
ipp-everywhere.test IPP Everywhere conformance test
suite
print-job.test Prints a file
print-job-deflate.test Prints a file, compressing with
deflate.
print-job-gzip.test Prints a file, compressing with gzip
validate-job.test Validates attributes for a job
submission.
CONFORMANCE TESTS
We provide basic IPP conformance tests for IPP/1.1, IPP/2.0, IPP/2.1,
IPP/2.2, and IPP Everywhere. For a given printer URI, the following
commands perform tests at each level:
We provide basic IPP conformance tests for IPP/1.1, IPP/2.0, IPP/2.1, and
IPP/2.2. For a given printer URI, the following commands perform tests at
each level:
ipptool -tf filename [options] -I printer-uri ipp-1.1.test
ipptool -tf filename [options] -I -V 2.0 printer-uri ipp-2.0.test
@@ -129,98 +71,69 @@ CONFORMANCE TESTS
onepage-a4.ps
onepage-letter.pdf
onepage-letter.ps
testfile.jpg
testfile.pcl
testfile.pdf
testfile.ps
testfile.txt
Useful options include the following:
-4 Connect using IPv4
-6 Connect using IPv6
-C Send chunked requests (default)
-d name=val Define a variable
-E Test IPP with HTTP Upgrade to TLS
-L Send requests using the Content-Length header (HTTP/1.0)
-S Test IPP over HTTPS (default for ipps: URIs)
-T seconds Set a timeout for responses in seconds
-v Be verbose, showing all attributes sent and received
-X Produce XML (Apple plist) output
The printer-uri must be a URI supported by the printer using the "ipp" or
"ipps" scheme, for example:
ipp://192.168.0.1/ipp
ipps://192.168.0.1/ipp/print
Print-by-reference (URL) printing can be tested by defining the document-uri
variable as a URL, for example:
variable to a URL, for example:
ipptool -tf filename -d document-uri=url -I printer-uri ipp-1.1.test
The standard test files are available on cups.org under the "test"
directory, for example:
ipptool -tf document-a4.pdf \
-d document-uri=http://www.cups.org/test/document-a4.pdf \
ipp://192.168.0.1/ipp -I -V 2.0 ipp-2.0.test
http://www.cups.org/test/document-a4.pdf
The "document" test files contain 4 pages each. Doing the IPP conformance
tests will will produce up to 90 pages on various media, depending on the
printer.
IPP EVERYWHERE TESTING
READING THE DOCUMENTATION
The IPP Everywhere tests use sample PWG raster files available from:
ftp://ftp.pwg.org/pub/pwg/ipp/examples
Extract the corresponding ZIP archives into the current directory before
running the ipp-everywhere.test file. The test file will attempt to print
each PWG Raster file that is supported by the printer being tested - up to
372 pages including the 90 pages produced by the regular IPP test suite.
The command usage is described in the ipptest(1) man page, while the file
format is described in the ipptestfile(5) man page.
GETTING SUPPORT AND OTHER RESOURCES
If you have problems, READ THE DOCUMENTATION FIRST! We also provide
If you have problems, READ THE DOCUMENTATION FIRST! We also provide many
discussion forums which are available at:
http://www.cups.org/
http://www.cups.org/newsgroups.php
See the CUPS web site at "http://www.cups.org/" for other resources.
REPORTING BUGS
If you believe you have discovered a bug in ippfind or ipptool, please fill
out the bug form at:
If you believe you have discovered a bug in ipptool, please fill out the
bug form at:
http://www.cups.org/str.php
Be sure to identify the version of CUPS and ippfind/ipptool (if you
downloaded the standalone version) you are using, the printer (if any) and
firmware version, and include any files that apply.
Be sure to identify the version of CUPS and ipptool (if you downloaded the
standalone version) you are using, the printer (if any) and firmware
version, and include any files that apply.
If you downloaded the standalone version of ippfind/ipptool, please also
re-run the command with debug logging enabled. Run the following commands
on Windows to enable debug logging:
If you downloaded the standalone version of ipptool, please also re-run the
test with debug logging enabled. Run the following commands on Windows to
enable debug logging:
setdebug.bat
set CUPS_DEBUG_LOG=ipptool.log
set CUPS_DEBUG_LEVEL=6
For Linux and Mac OS X use:
CUPS_DEBUG_LOG=ipptool.log; export CUPS_DEBUG_LOG
CUPS_DEBUG_LEVEL=6; export CUPS_DEBUG_LEVEL
Then when you run the ippfind or ipptool command a new "ipptool.log" file
will be created with detailed information - attach this file to the bug you
file as well.
Then when you run the ipptool command a new "ipptool.log" file will be
created with detailed information - attach this file to the bug you file
as well.
LEGAL STUFF
CUPS is Copyright 2007-2014 by Apple Inc. CUPS and the CUPS logo are
CUPS is Copyright 2007-2011 by Apple Inc. CUPS and the CUPS logo are
trademarks of Apple Inc.
The MD5 Digest code is Copyright 1999 Aladdin Enterprises.
+6 -6
Ver Arquivo
@@ -1,6 +1,6 @@
CUPS License Agreement
Copyright 2007-2012 by Apple Inc.
Copyright 2007-2011 by Apple Inc.
1 Infinite Loop
Cupertino, CA 95014 USA
@@ -68,11 +68,11 @@ the following special exceptions:
source code of the Apple OS-Developed Software.
b. An Apple Operating System means any operating system
software developed and/or marketed by Apple Inc.,
including but not limited to all existing releases and
versions of Apple's Darwin, OS X, and OS X Server
products and all follow-on releases and future
versions thereof.
software developed and/or marketed by Apple Computer,
Inc., including but not limited to all existing
releases and versions of Apple's Darwin, Mac OS X,
and Mac OS X Server products and all follow-on
releases and future versions thereof.
c. This exception is only available for Apple
OS-Developed Software and does not apply to software
+4 -9
Ver Arquivo
@@ -1,9 +1,9 @@
#
# "$Id: Makedefs.in 11154 2013-07-17 15:21:18Z msweet $"
# "$Id$"
#
# Common makefile definitions for CUPS.
#
# Copyright 2007-2013 by Apple Inc.
# Copyright 2007-2012 by Apple Inc.
# Copyright 1997-2007 by Easy Software Products, all rights reserved.
#
# These coded instructions, statements, and computer programs are the
@@ -24,7 +24,7 @@ CHMOD = @CHMOD@
CXX = @LIBTOOL@ @CXX@
DSO = @DSO@
DSOXX = @DSOXX@
GZIP = @GZIP@
HTMLDOC = @HTMLDOC@
INSTALL = @INSTALL@
LD = @LD@
LIBTOOL = @LIBTOOL@
@@ -41,7 +41,6 @@ SHELL = /bin/sh
#
INSTALL_BIN = $(LIBTOOL) $(INSTALL) -c -m 555 @INSTALL_STRIP@
INSTALL_COMPDATA = $(INSTALL) -c -m 444 @INSTALL_GZIP@
INSTALL_CONFIG = $(INSTALL) -c -m @CUPS_CONFIG_FILE_PERM@
INSTALL_DATA = $(INSTALL) -c -m 444
INSTALL_DIR = $(INSTALL) -d
@@ -63,7 +62,6 @@ CUPS_PRIMARY_SYSTEM_GROUP = @CUPS_PRIMARY_SYSTEM_GROUP@
#
CUPS_CONFIG_FILE_PERM = @CUPS_CONFIG_FILE_PERM@
CUPS_CUPSD_FILE_PERM = @CUPS_CUPSD_FILE_PERM@
CUPS_LOG_FILE_PERM = @CUPS_LOG_FILE_PERM@
#
@@ -138,8 +136,6 @@ DNSSD_BACKEND = @DNSSD_BACKEND@
DSOFLAGS = -L../cups @DSOFLAGS@
DSOLIBS = @DSOLIBS@ $(COMMONLIBS)
DNSSDLIBS = @DNSSDLIBS@
IPPFIND_BIN = @IPPFIND_BIN@
IPPFIND_MAN = @IPPFIND_MAN@
LAUNCHDLIBS = @LAUNCHDLIBS@
LDFLAGS = -L../cgi-bin -L../cups -L../filter -L../ppdc \
-L../scheduler @LDARCHFLAGS@ \
@@ -218,7 +214,6 @@ SERVERBIN = $(BUILDROOT)@CUPS_SERVERBIN@
SERVERROOT = $(BUILDROOT)@CUPS_SERVERROOT@
SMFMANIFESTDIR = @SMFMANIFESTDIR@
STATEDIR = $(BUILDROOT)@CUPS_STATEDIR@
USBQUIRKS = @USBQUIRKS@
XINETD = @XINETD@
MAN1EXT = @MAN1EXT@
@@ -261,5 +256,5 @@ DBUSDIR = @DBUSDIR@
#
# End of "$Id: Makedefs.in 11154 2013-07-17 15:21:18Z msweet $"
# End of "$Id$"
#
+11 -33
Ver Arquivo
@@ -1,9 +1,9 @@
#
# "$Id: Makefile 11370 2013-10-30 15:08:29Z msweet $"
# "$Id$"
#
# Top-level Makefile for CUPS.
#
# Copyright 2007-2013 by Apple Inc.
# Copyright 2007-2010 by Apple Inc.
# Copyright 1997-2007 by Easy Software Products, all rights reserved.
#
# These coded instructions, statements, and computer programs are the
@@ -128,11 +128,8 @@ depend:
#
# Run the Clang static code analysis tool on the sources, available here:
#
# http://clang-analyzer.llvm.org
#
# At least checker-231 is required.
# Run the clang.llvm.org static code analysis tool on the C sources.
# (at least checker-231 is required for scan-build to work this way)
#
.PHONY: clang clang-changes
@@ -143,26 +140,6 @@ clang-changes:
scan-build -V -k -o `pwd`/clang $(MAKE) $(MFLAGS) all
#
# Run the STACK tool on the sources, available here:
#
# http://css.csail.mit.edu/stack/
#
# Do the following to pass options to configure:
#
# make CONFIGFLAGS="--foo --bar" stack
#
.PHONY: stack
stack:
stack-build ./configure $(CONFIGFLAGS)
stack-build $(MAKE) $(MFLAGS) clean all
poptck
$(MAKE) $(MFLAGS) distclean
$(RM) */*.ll
$(RM) */*.ll.out
#
# Generate a ctags file...
#
@@ -265,7 +242,7 @@ debugcheck: all unittests
#
# Create HTML documentation using Mini-XML's mxmldoc (http://www.msweet.org/)...
# Create HTML documentation...
#
apihelp:
@@ -282,7 +259,7 @@ framedhelp:
#
# Create an Xcode docset using Mini-XML's mxmldoc (http://www.msweet.org/)...
# Create an Xcode docset...
#
docset: apihelp
@@ -298,10 +275,10 @@ docset: apihelp
doc/help/api-*.tokens
$(RM) doc/help/api-*.tokens
echo Indexing docset...
/Applications/Xcode.app/Contents/Developer/usr/bin/docsetutil index org.cups.docset
/Developer/usr/bin/docsetutil index org.cups.docset
echo Generating docset archive and feed...
$(RM) org.cups.docset.atom
/Applications/Xcode.app/Contents/Developer/usr/bin/docsetutil package --output org.cups.docset.xar \
/Developer/usr/bin/docsetutil package --output org.cups.docset.xar \
--atom org.cups.docset.atom \
--download-url http://www.cups.org/org.cups.docset.xar \
org.cups.docset
@@ -318,7 +295,7 @@ sloc:
#
# Make software distributions using EPM (http://www.msweet.org/)...
# Make software distributions using EPM (http://www.epmhome.org/)...
#
EPMFLAGS = -v --output-dir dist $(EPMARCH)
@@ -339,6 +316,7 @@ dist: all
case `uname` in \
*BSD*) $(MAKE) $(MFLAGS) bsd;; \
Darwin*) $(MAKE) $(MFLAGS) osx;; \
IRIX*) $(MAKE) $(MFLAGS) tardist;; \
Linux*) test ! -x /usr/bin/rpm || $(MAKE) $(MFLAGS) rpm;; \
SunOS*) $(MAKE) $(MFLAGS) pkg;; \
esac
@@ -352,5 +330,5 @@ dist: all
#
# End of "$Id: Makefile 11370 2013-10-30 15:08:29Z msweet $".
# End of "$Id$".
#
+6 -5
Ver Arquivo
@@ -1,13 +1,14 @@
README - CUPS v1.7.3 - 2014-05-27
---------------------------------
README - CUPS v1.5.0 - 2011-07-25
----------------------------------
Looking for compile instructions? Read the file "INSTALL.txt" instead...
Looking for compile instructions? Read the file "INSTALL.txt"
instead...
INTRODUCTION
CUPS is a standards-based, open source printing system developed by Apple
Inc. for OS® X and other UNIX®-like operating systems. CUPS uses the
Inc. for Mac OS® X and other UNIX®-like operating systems. CUPS uses the
Internet Printing Protocol ("IPP") and provides System V and Berkeley
command-line interfaces, a web interface, and a C API to manage printers and
print jobs. It supports printing to both local (parallel, serial, USB) and
@@ -149,7 +150,7 @@ PRINTING FILES
LEGAL STUFF
CUPS is Copyright 2007-2014 by Apple Inc. CUPS and the CUPS logo are
CUPS is Copyright 2007-2011 by Apple Inc. CUPS and the CUPS logo are
trademarks of Apple Inc.
The MD5 Digest code is Copyright 1999 Aladdin Enterprises.
+59 -57
Ver Arquivo
@@ -1,70 +1,72 @@
ipp.o: ipp.c backend-private.h ../cups/cups-private.h \
../cups/string-private.h ../config.h ../cups/debug-private.h \
../cups/versioning.h ../cups/ipp-private.h ../cups/ipp.h \
../cups/http.h ../cups/array.h ../cups/http-private.h \
../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
../cups/snmp-private.h ../cups/backend.h ../cups/sidechannel.h \
../cups/array-private.h
ipp.o: ipp.c backend-private.h ../cups/cups-private.h ../cups/cups.h \
../cups/file.h ../cups/versioning.h ../cups/ipp.h ../cups/http.h \
../cups/array.h ../cups/language.h ../cups/string-private.h \
../config.h ../cups/debug-private.h ../cups/ppd-private.h \
../cups/ppd.h ../cups/pwg-private.h ../cups/http-private.h \
../cups/md5-private.h ../cups/ipp-private.h ../cups/language-private.h \
../cups/transcode.h ../cups/thread-private.h ../cups/snmp-private.h \
../cups/backend.h ../cups/sidechannel.h ../cups/array-private.h
lpd.o: lpd.c ../cups/http-private.h ../config.h ../cups/http.h \
../cups/versioning.h ../cups/array.h ../cups/md5-private.h \
../cups/ipp-private.h ../cups/ipp.h backend-private.h \
../cups/cups-private.h ../cups/string-private.h \
../cups/debug-private.h ../cups/language-private.h ../cups/transcode.h \
../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
../cups/snmp-private.h ../cups/backend.h ../cups/sidechannel.h
dnssd.o: dnssd.c backend-private.h ../cups/cups-private.h \
../cups/string-private.h ../config.h ../cups/debug-private.h \
../cups/versioning.h ../cups/ipp-private.h ../cups/ipp.h \
../cups/http.h ../cups/array.h ../cups/http-private.h \
../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
../cups/snmp-private.h ../cups/backend.h ../cups/sidechannel.h
snmp.o: snmp.c backend-private.h ../cups/cups-private.h \
../cups/string-private.h ../config.h ../cups/debug-private.h \
../cups/versioning.h ../cups/ipp-private.h ../cups/ipp.h \
../cups/http.h ../cups/array.h ../cups/http-private.h \
../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
../cups/snmp-private.h ../cups/backend.h ../cups/sidechannel.h
../cups/cups-private.h ../cups/cups.h ../cups/file.h \
../cups/language.h ../cups/string-private.h ../cups/debug-private.h \
../cups/ppd-private.h ../cups/ppd.h ../cups/pwg-private.h \
../cups/language-private.h ../cups/transcode.h \
../cups/thread-private.h ../cups/snmp-private.h ../cups/backend.h \
../cups/sidechannel.h
dnssd.o: dnssd.c backend-private.h ../cups/cups-private.h ../cups/cups.h \
../cups/file.h ../cups/versioning.h ../cups/ipp.h ../cups/http.h \
../cups/array.h ../cups/language.h ../cups/string-private.h \
../config.h ../cups/debug-private.h ../cups/ppd-private.h \
../cups/ppd.h ../cups/pwg-private.h ../cups/http-private.h \
../cups/md5-private.h ../cups/ipp-private.h ../cups/language-private.h \
../cups/transcode.h ../cups/thread-private.h ../cups/snmp-private.h \
../cups/backend.h ../cups/sidechannel.h
snmp.o: snmp.c backend-private.h ../cups/cups-private.h ../cups/cups.h \
../cups/file.h ../cups/versioning.h ../cups/ipp.h ../cups/http.h \
../cups/array.h ../cups/language.h ../cups/string-private.h \
../config.h ../cups/debug-private.h ../cups/ppd-private.h \
../cups/ppd.h ../cups/pwg-private.h ../cups/http-private.h \
../cups/md5-private.h ../cups/ipp-private.h ../cups/language-private.h \
../cups/transcode.h ../cups/thread-private.h ../cups/snmp-private.h \
../cups/backend.h ../cups/sidechannel.h
socket.o: socket.c ../cups/http-private.h ../config.h ../cups/http.h \
../cups/versioning.h ../cups/array.h ../cups/md5-private.h \
../cups/ipp-private.h ../cups/ipp.h backend-private.h \
../cups/cups-private.h ../cups/string-private.h \
../cups/debug-private.h ../cups/language-private.h ../cups/transcode.h \
../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
../cups/snmp-private.h ../cups/backend.h ../cups/sidechannel.h
../cups/cups-private.h ../cups/cups.h ../cups/file.h \
../cups/language.h ../cups/string-private.h ../cups/debug-private.h \
../cups/ppd-private.h ../cups/ppd.h ../cups/pwg-private.h \
../cups/language-private.h ../cups/transcode.h \
../cups/thread-private.h ../cups/snmp-private.h ../cups/backend.h \
../cups/sidechannel.h
test1284.o: test1284.c ../cups/string-private.h ../config.h ieee1284.c \
backend-private.h ../cups/cups-private.h ../cups/debug-private.h \
../cups/versioning.h ../cups/ipp-private.h ../cups/ipp.h \
../cups/http.h ../cups/array.h ../cups/http-private.h \
../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
../cups/snmp-private.h ../cups/backend.h ../cups/sidechannel.h
backend-private.h ../cups/cups-private.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h ../cups/debug-private.h ../cups/ppd-private.h \
../cups/ppd.h ../cups/pwg-private.h ../cups/http-private.h \
../cups/md5-private.h ../cups/ipp-private.h ../cups/language-private.h \
../cups/transcode.h ../cups/thread-private.h ../cups/snmp-private.h \
../cups/backend.h ../cups/sidechannel.h
testbackend.o: testbackend.c ../cups/string-private.h ../config.h \
../cups/cups.h ../cups/file.h ../cups/versioning.h ../cups/ipp.h \
../cups/http.h ../cups/array.h ../cups/language.h \
../cups/sidechannel.h
testsupplies.o: testsupplies.c backend-private.h ../cups/cups-private.h \
../cups/cups.h ../cups/file.h ../cups/versioning.h ../cups/ipp.h \
../cups/http.h ../cups/array.h ../cups/language.h \
../cups/string-private.h ../config.h ../cups/debug-private.h \
../cups/versioning.h ../cups/ipp-private.h ../cups/ipp.h \
../cups/http.h ../cups/array.h ../cups/http-private.h \
../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
../cups/snmp-private.h ../cups/backend.h ../cups/sidechannel.h
usb.o: usb.c backend-private.h ../cups/cups-private.h \
../cups/string-private.h ../config.h ../cups/debug-private.h \
../cups/versioning.h ../cups/ipp-private.h ../cups/ipp.h \
../cups/http.h ../cups/array.h ../cups/http-private.h \
../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
../cups/snmp-private.h ../cups/backend.h ../cups/sidechannel.h \
usb-darwin.c ../cups/file-private.h
../cups/ppd-private.h ../cups/ppd.h ../cups/pwg-private.h \
../cups/http-private.h ../cups/md5-private.h ../cups/ipp-private.h \
../cups/language-private.h ../cups/transcode.h \
../cups/thread-private.h ../cups/snmp-private.h ../cups/backend.h \
../cups/sidechannel.h
usb.o: usb.c backend-private.h ../cups/cups-private.h ../cups/cups.h \
../cups/file.h ../cups/versioning.h ../cups/ipp.h ../cups/http.h \
../cups/array.h ../cups/language.h ../cups/string-private.h \
../config.h ../cups/debug-private.h ../cups/ppd-private.h \
../cups/ppd.h ../cups/pwg-private.h ../cups/http-private.h \
../cups/md5-private.h ../cups/ipp-private.h ../cups/language-private.h \
../cups/transcode.h ../cups/thread-private.h ../cups/snmp-private.h \
../cups/backend.h ../cups/sidechannel.h usb-darwin.c \
../cups/file-private.h
+8 -22
Ver Arquivo
@@ -1,9 +1,9 @@
#
# "$Id: Makefile 11154 2013-07-17 15:21:18Z msweet $"
# "$Id$"
#
# Backend makefile for CUPS.
#
# Copyright 2007-2013 by Apple Inc.
# Copyright 2007-2012 by Apple Inc.
# Copyright 1997-2007 by Easy Software Products, all rights reserved.
#
# These coded instructions, statements, and computer programs are the
@@ -21,12 +21,6 @@ include ../Makedefs
# Object files...
#
# RBACKENDS are installed mode 0700 so cupsd will run them as root...
#
# UBACKENDS are installed mode 0755 so cupsd will run them as an unprivileged
# user...
#
# See http://www.cups.org/documentation.php/api-filter.html for more info...
RBACKENDS = \
ipp \
lpd \
@@ -109,11 +103,6 @@ install: all install-data install-headers install-libs install-exec
#
install-data:
if test "x$(USBQUIRKS)" != x; then \
echo Installing USB quirks in $(USBQUIRKS); \
$(INSTALL_DIR) -m 755 $(USBQUIRKS); \
$(INSTALL_DATA) org.cups.usb-quirks $(USBQUIRKS); \
fi
#
@@ -133,15 +122,14 @@ install-exec: $(INSTALLXPC)
$(RM) $(SERVERBIN)/backend/$$file; \
$(LN) ipp $(SERVERBIN)/backend/$$file; \
done
if test "x$(DNSSD_BACKEND)" != x -a `uname` = Darwin; then \
if test "x$(DNSSD_BACKEND)" != x; then \
$(RM) $(SERVERBIN)/backend/mdns; \
$(LN) $(DNSSD_BACKEND) $(SERVERBIN)/backend/mdns; \
fi
if test "x$(SYMROOT)" != "x"; then \
$(INSTALL_DIR) $(SYMROOT); \
for file in $(RBACKENDS) $(UBACKENDS); do \
for file in $(TARGETS); do \
cp $$file $(SYMROOT); \
dsymutil $(SYMROOT)/$$file; \
done \
fi
@@ -238,10 +226,8 @@ libbackend.a: $(LIBOBJS)
dnssd: dnssd.o ../cups/$(LIBCUPS) libbackend.a
echo Linking $@...
$(CC) $(LDFLAGS) -o dnssd dnssd.o libbackend.a $(LIBS)
if test `uname` = Darwin; then \
$(RM) mdns; \
$(LN) dnssd mdns; \
fi
$(RM) mdns
$(LN) dnssd mdns
#
@@ -288,7 +274,7 @@ socket: socket.o ../cups/$(LIBCUPS) libbackend.a
usb: usb.o ../cups/$(LIBCUPS) libbackend.a
echo Linking $@...
$(CC) $(ARCHFLAGS) $(LDFLAGS) -o usb usb.o libbackend.a $(LIBUSB) \
$(CC) $(LDFLAGS) -o usb usb.o libbackend.a $(LIBUSB) \
$(BACKLIBS) $(LIBS)
usb.o: usb.c usb-darwin.c usb-libusb.c usb-unix.c
@@ -301,5 +287,5 @@ include Dependencies
#
# End of "$Id: Makefile 11154 2013-07-17 15:21:18Z msweet $".
# End of "$Id$".
#
+3 -17
Ver Arquivo
@@ -1,9 +1,9 @@
/*
* "$Id: backend-private.h 10996 2013-05-29 11:51:34Z msweet $"
* "$Id$"
*
* Backend support definitions for CUPS.
*
* Copyright 2007-2012 by Apple Inc.
* Copyright 2007-2011 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
@@ -259,20 +259,6 @@ extern "C" {
#define CUPS_TC_inserts 33
#define CUPS_TC_covers 34
#define CUPS_TC_tenThousandthsOfInches 3
#define CUPS_TC_micrometers 4
#define CUPS_TC_impressions 7
#define CUPS_TC_sheets 8
#define CUPS_TC_hours 11
#define CUPS_TC_thousandthsOfOunces 12
#define CUPS_TC_tenthsOfGrams 13
#define CUPS_TC_hundrethsOfFluidOunces 14
#define CUPS_TC_tenthsOfMilliliters 15
#define CUPS_TC_feet 16
#define CUPS_TC_meters 17
#define CUPS_TC_items 18
#define CUPS_TC_percent 19
/* These come from RFC 3808 to define character sets we support */
/* Also see http://www.iana.org/assignments/character-sets */
#define CUPS_TC_csASCII 3
@@ -334,5 +320,5 @@ extern int backendWaitLoop(int snmp_fd, http_addr_t *addr,
/*
* End of "$Id: backend-private.h 10996 2013-05-29 11:51:34Z msweet $".
* End of "$Id$".
*/
+250 -618
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+2 -2
Ver Arquivo
@@ -1,5 +1,5 @@
/*
* "$Id: ieee1284.c 10996 2013-05-29 11:51:34Z msweet $"
* "$Id$"
*
* IEEE-1284 support functions for CUPS.
*
@@ -487,5 +487,5 @@ backendGetMakeModel(
/*
* End of "$Id: ieee1284.c 10996 2013-05-29 11:51:34Z msweet $".
* End of "$Id$".
*/
+317 -878
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+82 -75
Ver Arquivo
@@ -1,9 +1,9 @@
/*
* "$Id: lpd.c 10996 2013-05-29 11:51:34Z msweet $"
* "$Id$"
*
* Line Printer Daemon backend for CUPS.
*
* Copyright 2007-2012 by Apple Inc.
* Copyright 2007-2011 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
@@ -19,6 +19,7 @@
* main() - Send a file to the printer or server.
* lpd_command() - Send an LPR command sequence and wait for a reply.
* lpd_queue() - Queue a file using the Line Printer Daemon protocol.
* lpd_timeout() - Handle timeout alarms...
* lpd_write() - Write a buffer of data to an LPD server.
* rresvport_af() - A simple implementation of rresvport_af().
* sigterm_handler() - Handle 'terminate' signals that stop the backend.
@@ -86,13 +87,14 @@ static int abort_job = 0; /* Non-zero if we get SIGTERM */
* Local functions...
*/
static int lpd_command(int lpd_fd, char *format, ...);
static int lpd_command(int lpd_fd, int timeout, char *format, ...);
static int lpd_queue(const char *hostname, http_addrlist_t *addrlist,
const char *printer, int print_fd, int snmp_fd,
int mode, const char *user, const char *title,
int copies, int banner, int format, int order,
int reserve, int manual_copies, int timeout,
int contimeout, const char *orighost);
int contimeout);
static void lpd_timeout(int sig);
static int lpd_write(int lpd_fd, char *buffer, int length);
#ifndef HAVE_RRESVPORT_AF
static int rresvport_af(int *port, int family);
@@ -126,7 +128,6 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
int port; /* Port number */
char portname[256]; /* Port name (string) */
http_addrlist_t *addrlist; /* List of addresses for printer */
int snmp_enabled = 1; /* Is SNMP enabled? */
int snmp_fd; /* SNMP socket */
int fd; /* Print file */
int status; /* Status of LPD job */
@@ -145,8 +146,6 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
#if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET)
struct sigaction action; /* Actions for POSIX signals */
#endif /* HAVE_SIGACTION && !HAVE_SIGSET */
int num_jobopts; /* Number of job options */
cups_option_t *jobopts = NULL; /* Job options */
/*
@@ -194,8 +193,6 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
return (CUPS_BACKEND_FAILED);
}
num_jobopts = cupsParseOptions(argv[5], 0, &jobopts);
/*
* Extract the hostname and printer name from the URI...
*/
@@ -357,8 +354,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
*/
if (!value[0] || !_cups_strcasecmp(value, "on") ||
!_cups_strcasecmp(value, "yes") ||
!_cups_strcasecmp(value, "true") ||
!_cups_strcasecmp(value, "yes") || !_cups_strcasecmp(value, "true") ||
!_cups_strcasecmp(value, "rfc1179"))
reserve = RESERVE_RFC1179;
else if (!_cups_strcasecmp(value, "any"))
@@ -373,8 +369,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
*/
manual_copies = !value[0] || !_cups_strcasecmp(value, "on") ||
!_cups_strcasecmp(value, "yes") ||
!_cups_strcasecmp(value, "true");
!_cups_strcasecmp(value, "yes") || !_cups_strcasecmp(value, "true");
}
else if (!_cups_strcasecmp(name, "sanitize_title"))
{
@@ -383,18 +378,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
*/
sanitize_title = !value[0] || !_cups_strcasecmp(value, "on") ||
!_cups_strcasecmp(value, "yes") ||
!_cups_strcasecmp(value, "true");
}
else if (!_cups_strcasecmp(name, "snmp"))
{
/*
* Enable/disable SNMP stuff...
*/
snmp_enabled = !value[0] || !_cups_strcasecmp(value, "on") ||
_cups_strcasecmp(value, "yes") ||
_cups_strcasecmp(value, "true");
!_cups_strcasecmp(value, "yes") || !_cups_strcasecmp(value, "true");
}
else if (!_cups_strcasecmp(name, "timeout"))
{
@@ -442,10 +426,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
}
}
if (snmp_enabled)
snmp_fd = _cupsSNMPOpen(addrlist->addr.addr.sa_family);
else
snmp_fd = -1;
snmp_fd = _cupsSNMPOpen(addrlist->addr.addr.sa_family);
/*
* Wait for data from the filter...
@@ -546,9 +527,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
status = lpd_queue(hostname, addrlist, resource + 1, fd, snmp_fd, mode,
username, title, copies, banner, format, order, reserve,
manual_copies, timeout, contimeout,
cupsGetOption("job-originating-host-name", num_jobopts,
jobopts));
manual_copies, timeout, contimeout);
if (!status)
fprintf(stderr, "PAGE: 1 %d\n", atoi(argv[4]));
@@ -556,9 +535,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
else
status = lpd_queue(hostname, addrlist, resource + 1, fd, snmp_fd, mode,
username, title, 1, banner, format, order, reserve, 1,
timeout, contimeout,
cupsGetOption("job-originating-host-name", num_jobopts,
jobopts));
timeout, contimeout);
/*
* Remove the temporary file if necessary...
@@ -587,6 +564,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
static int /* O - Status of command */
lpd_command(int fd, /* I - Socket connection to LPD host */
int timeout, /* I - Seconds to wait for a response */
char *format, /* I - printf()-style format string */
...) /* I - Additional args as necessary */
{
@@ -631,12 +609,18 @@ lpd_command(int fd, /* I - Socket connection to LPD host */
fputs("DEBUG: Reading command status...\n", stderr);
alarm(timeout);
if (recv(fd, &status, 1, 0) < 1)
{
_cupsLangPrintFilter(stderr, "WARNING", _("The printer did not respond."));
_cupsLangPrintFilter(stderr, "WARNING",
_("Printer did not respond after %d seconds."),
timeout);
status = errno;
}
alarm(0);
fprintf(stderr, "DEBUG: lpd_command returning %d\n", status);
return (status);
@@ -663,8 +647,7 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
int reserve, /* I - Reserve ports? */
int manual_copies,/* I - Do copies by hand... */
int timeout, /* I - Timeout... */
int contimeout, /* I - Connection timeout */
const char *orighost) /* I - job-originating-host-name */
int contimeout) /* I - Connection timeout */
{
char localhost[255]; /* Local host name */
int error; /* Error number */
@@ -683,13 +666,27 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
size_t nbytes; /* Number of bytes written */
off_t tbytes; /* Total bytes written */
char buffer[32768]; /* Output buffer */
#ifdef WIN32
DWORD tv; /* Timeout in milliseconds */
#else
struct timeval tv; /* Timeout in secs and usecs */
#endif /* WIN32 */
#if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET)
struct sigaction action; /* Actions for POSIX signals */
#endif /* HAVE_SIGACTION && !HAVE_SIGSET */
/*
* Setup an alarm handler for timeouts...
*/
#ifdef HAVE_SIGSET /* Use System V signals over POSIX to avoid bugs */
sigset(SIGALRM, lpd_timeout);
#elif defined(HAVE_SIGACTION)
memset(&action, 0, sizeof(action));
sigemptyset(&action.sa_mask);
action.sa_handler = lpd_timeout;
sigaction(SIGALRM, &action, NULL);
#else
signal(SIGALRM, lpd_timeout);
#endif /* HAVE_SIGSET */
/*
* Remember when we started trying to connect to the printer...
*/
@@ -707,7 +704,7 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
*/
fprintf(stderr, "DEBUG: Connecting to %s:%d for printer %s\n", hostname,
httpAddrPort(&(addrlist->addr)), printer);
_httpAddrPort(&(addrlist->addr)), printer);
_cupsLangPrintFilter(stderr, "INFO", _("Connecting to printer."));
for (lport = reserve == RESERVE_RFC1179 ? 732 : 1024, addr = addrlist,
@@ -842,7 +839,7 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
case ECONNREFUSED :
default :
_cupsLangPrintFilter(stderr, "WARNING",
_("The printer is in use."));
_("The printer is busy."));
break;
}
@@ -867,29 +864,12 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
}
}
/*
* Set the timeout...
*/
#ifdef WIN32
tv = (DWORD)(timeout * 1000);
setsockopt(fd, SOL_SOCKET, SO_RCVTIMEO, (char *)&tv, sizeof(tv));
setsockopt(fd, SOL_SOCKET, SO_SNDTIMEO, (char *)&tv, sizeof(tv));
#else
tv.tv_sec = timeout;
tv.tv_usec = 0;
setsockopt(fd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv));
setsockopt(fd, SOL_SOCKET, SO_SNDTIMEO, &tv, sizeof(tv));
#endif /* WIN32 */
fputs("STATE: -connecting-to-device\n", stderr);
_cupsLangPrintFilter(stderr, "INFO", _("Connected to printer."));
fprintf(stderr, "DEBUG: Connected to %s:%d (local port %d)...\n",
httpAddrString(&(addr->addr), addrname, sizeof(addrname)),
httpAddrPort(&(addr->addr)), lport);
_httpAddrPort(&(addr->addr)), lport);
/*
* See if the printer supports SNMP...
@@ -946,17 +926,14 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
* literal output...
*/
if (lpd_command(fd, "\002%s\n",
if (lpd_command(fd, timeout, "\002%s\n",
printer)) /* Receive print job(s) */
{
close(fd);
return (CUPS_BACKEND_FAILED);
}
if (orighost && _cups_strcasecmp(orighost, "localhost"))
strlcpy(localhost, orighost, sizeof(localhost));
else
httpGetHostname(NULL, localhost, sizeof(localhost));
httpGetHostname(NULL, localhost, sizeof(localhost));
snprintf(control, sizeof(control),
"H%.31s\n" /* RFC 1179, Section 7.2 - host name <= 31 chars */
@@ -1001,7 +978,7 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
* Send the control file...
*/
if (lpd_command(fd, "\002%d cfA%03.3d%.15s\n", strlen(control),
if (lpd_command(fd, timeout, "\002%d cfA%03.3d%.15s\n", strlen(control),
(int)getpid() % 1000, localhost))
{
close(fd);
@@ -1020,12 +997,17 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
}
else
{
alarm(timeout);
if (read(fd, &status, 1) < 1)
{
_cupsLangPrintFilter(stderr, "WARNING",
_("The printer did not respond."));
_("Printer did not respond after %d seconds."),
timeout);
status = errno;
}
alarm(0);
}
if (status != 0)
@@ -1051,7 +1033,7 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
* Send the print file...
*/
if (lpd_command(fd, "\003" CUPS_LLFMT " dfA%03.3d%.15s\n",
if (lpd_command(fd, timeout, "\003" CUPS_LLFMT " dfA%03.3d%.15s\n",
CUPS_LLCAST filestats.st_size, (int)getpid() % 1000,
localhost))
{
@@ -1102,12 +1084,17 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
* want to requeue it over and over...
*/
alarm(timeout);
if (recv(fd, &status, 1, 0) < 1)
{
_cupsLangPrintFilter(stderr, "WARNING",
_("The printer did not respond."));
_("Printer did not respond after %d seconds."),
timeout);
status = 0;
}
alarm(0);
}
}
else
@@ -1134,7 +1121,7 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
* Send control file...
*/
if (lpd_command(fd, "\002%d cfA%03.3d%.15s\n", strlen(control),
if (lpd_command(fd, timeout, "\002%d cfA%03.3d%.15s\n", strlen(control),
(int)getpid() % 1000, localhost))
{
close(fd);
@@ -1152,12 +1139,17 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
}
else
{
alarm(timeout);
if (read(fd, &status, 1) < 1)
{
_cupsLangPrintFilter(stderr, "WARNING",
_("The printer did not respond."));
_("Printer did not respond after %d seconds."),
timeout);
status = errno;
}
alarm(0);
}
if (status != 0)
@@ -1200,6 +1192,21 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
}
/*
* 'lpd_timeout()' - Handle timeout alarms...
*/
static void
lpd_timeout(int sig) /* I - Signal number */
{
(void)sig;
#if !defined(HAVE_SIGSET) && !defined(HAVE_SIGACTION)
signal(SIGALRM, lpd_timeout);
#endif /* !HAVE_SIGSET && !HAVE_SIGACTION */
}
/*
* 'lpd_write()' - Write a buffer of data to an LPD server.
*/
@@ -1331,5 +1338,5 @@ sigterm_handler(int sig) /* I - Signal */
/*
* End of "$Id: lpd.c 10996 2013-05-29 11:51:34Z msweet $".
* End of "$Id$".
*/
+5 -31
Ver Arquivo
@@ -1,5 +1,5 @@
/*
* "$Id: network.c 3755 2012-03-30 05:59:14Z msweet $"
* "$Id$"
*
* Common backend network APIs for CUPS.
*
@@ -92,7 +92,7 @@ backendNetworkSideCB(
status = CUPS_SC_STATUS_NOT_IMPLEMENTED;
else if (backendDrainOutput(print_fd, device_fd))
status = CUPS_SC_STATUS_IO_ERROR;
else
else
status = CUPS_SC_STATUS_OK;
datalen = 0;
@@ -119,35 +119,8 @@ backendNetworkSideCB(
if (snmp_fd >= 0)
{
char *dataptr; /* Pointer into data */
cups_snmp_t packet; /* Packet from printer */
const char *snmp_value; /* CUPS_SNMP_VALUE env var */
if ((snmp_value = getenv("CUPS_SNMP_VALUE")) != NULL)
{
const char *snmp_count; /* CUPS_SNMP_COUNT env var */
int count; /* Repetition count */
if ((snmp_count = getenv("CUPS_SNMP_COUNT")) != NULL)
{
if ((count = atoi(snmp_count)) <= 0)
count = 1;
}
else
count = 1;
for (dataptr = data + strlen(data) + 1;
count > 0 && dataptr < (data + sizeof(data) - 1);
count --, dataptr += strlen(dataptr))
strlcpy(dataptr, snmp_value, sizeof(data) - (dataptr - data));
fprintf(stderr, "DEBUG: Returning %s %s\n", data,
data + strlen(data) + 1);
status = CUPS_SC_STATUS_OK;
datalen = dataptr - data;
break;
}
if (!_cupsSNMPStringToOID(data, packet.object_name, CUPS_SNMP_MAX_OID))
{
@@ -168,6 +141,7 @@ backendNetworkSideCB(
{
if (_cupsSNMPRead(snmp_fd, &packet, 1.0))
{
char *dataptr; /* Pointer into data */
int i; /* Looping var */
@@ -198,7 +172,7 @@ backendNetworkSideCB(
case CUPS_ASN1_OCTET_STRING :
if (packet.object_value.string.num_bytes < 0)
i = 0;
else if (packet.object_value.string.num_bytes <
else if (packet.object_value.string.num_bytes <
(sizeof(data) - (dataptr - data)))
i = packet.object_value.string.num_bytes;
else
@@ -322,5 +296,5 @@ backendNetworkSideCB(
/*
* End of "$Id: network.c 3755 2012-03-30 05:59:14Z msweet $".
* End of "$Id$".
*/
-214
Ver Arquivo
@@ -1,214 +0,0 @@
# USB backend 'quirks' file.
#
# This file lists known issues with various vendors or printers. Each
# line contains either a comment (starting with #) or the USB vendor ID,
# product ID (omit for all vendor products), and a list of known issues:
#
# blacklist The printer is not functional with the USB backend.
# no-reattach Do no re-attach usblp kernel module after printing.
# soft-reset Do a soft reset after printing for cleanup.
# unidir Only supported unidirectional I/O
# usb-init Needs vendor USB initialization string.
# vendor-class Uses vendor-specific class or subclass.
# whitelist The printer is functional with the USB backend.
# HP DeskJet 895C
0x03f0 0x0004 unidir
# HP DeskJet 880C
0x03f0 0x0104 unidir
# HP DeskJet 815C
0x03f0 0x0204 unidir
# HP DeskJet 810C/812C
0x03f0 0x0304 unidir
# HP DeskJet 830C
0x03f0 0x0404 unidir
# HP DeskJet 885C
0x03f0 0x0504 unidir
# HP DeskJet 840C
0x03f0 0x0604 unidir
# HP DeskJet 816C
0x03f0 0x0804 unidir
# HP Deskjet 959C
0x03f0 0x1104 unidir
# NEC Picty900 (HP OEM)
0x0409 0xefbe unidir
# NEC Picty760 (HP OEM)
0x0409 0xbef4 unidir
# NEC Picty920 (HP OEM)
0x0409 0xf0be unidir
# NEC Picty800 (HP OEM)
0x0409 0xf1be unidir
# Lexmark International, Inc. (e250d), https://bugs.launchpad.net/bugs/1084164
0x043d 0x00f3 no-reattach
# Kyocera Mita FS 820, by zut <kernel@zut.de>
0x0482 0x0010 unidir
# Canon, Inc. PIXMA iP6000D Printer, https://bugs.launchpad.net/bugs/1160638
0x04a9 0x1095 unidir
# Canon, Inc. PIXMA iP4200 Printer, http://www.cups.org/str.php?L4155
0x04a9 0x10a2 unidir
# Canon, Inc. PIXMA iP4300 Printer, https://bugs.launchpad.net/bugs/1032385
0x04a9 0x10b6 unidir
# Canon, Inc. MP210 https://bugzilla.redhat.com/show_bug.cgi?id=847923#c53
0x04a9 0x1721 unidir
# Canon, Inc. MP500 Printer, https://bugs.launchpad.net/bugs/1032456
0x04a9 0x170c unidir
# Canon, Inc. MP510 Printer, https://bugs.launchpad.net/bugs/1050009
0x04a9 0x1717 unidir
# Canon, Inc. MP550 Printer, http://www.cups.org/str.php?L4155
0x04a9 0x173d unidir
# Canon, Inc. MP560 Printer, http://www.cups.org/str.php?L4155
0x04a9 0x173e unidir
# Canon, Inc. MF4150 Printer, https://bugs.launchpad.net/bugs/1160638
0x04a9 0x26a3 no-reattach
# Brother Industries, Ltd HL-1430 Laser Printer, https://bugs.launchpad.net/bugs/1038695
0x04f9 0x001a no-reattach
# Brother Industries, Ltd HL-1440 Laser Printer, https://bugs.launchpad.net/bugs/1000253
0x04f9 0x000d no-reattach unidir
# Brother Industries, Ltd HL-1450 Laser Printer, https://bugs.launchpad.net/bugs/1000253
0x04f9 0x000e no-reattach unidir
# Oki Data Corp. Okipage 14ex Printer, https://bugs.launchpad.net/bugs/872483
0x06bc 0x000b no-reattach
# Oki Data Corp. B410d, https://bugs.launchpad.net/bugs/872483
0x06bc 0x01c7 no-reattach
# Seiko Epson Corp. Stylus Color 740 / Photo 750, http://bugs.debian.org/697970
0x04b8 0x0001 no-reattach unidir
# Seiko Epson Corp. Stylus Color 670, https://bugs.launchpad.net/bugs/872483
0x04b8 0x0005 no-reattach
# Seiko Epson Receipt Printer M129C
0x04b8 0x0202 vendor-class
# Prolific Technology, Inc. PL2305 Parallel Port (USB -> Parallel adapter), https://bugs.launchpad.net/bugs/987485
0x067b 0x2305 no-reattach soft-reset unidir
# Xerox Phaser 3124 https://bugzilla.redhat.com/show_bug.cgi?id=867392
0x0924 0x3ce9 no-reattach
# Xerox WorkCentre 3210 https://bugs.launchpad.net/bugs/1102470
0x0924 0x4293 no-reattach
# QinHeng Electronics CH340S (USB -> Parallel adapter), https://bugs.launchpad.net/bugs/1000253
0x1a86 0x7584 no-reattach
# All Samsung devices, https://bugs.launchpad.net/bugs/1032456
0x04e8 soft-reset
# All Zebra devices, https://bugs.launchpad.net/bugs/1001028
0x0a5f unidir
# Canon CP-10
0x04a9 0x304a blacklist
# Canon CP-100
0x04a9 0x3063 blacklist
# Canon CP-200
0x04a9 0x307c blacklist
# Canon CP-300
0x04a9 0x307d blacklist
# Canon CP-220
0x04a9 0x30bd blacklist
# Canon CP-330
0x04a9 0x30be blacklist
# Canon SELPHY CP400
0x04a9 0x30f6 blacklist
# Canon SELPHY CP600
0x04a9 0x310b blacklist
# Canon SELPHY CP710
0x04a9 0x3127 blacklist
# Canon SELPHY CP510
0x04a9 0x3128 blacklist
# Canon SELPHY ES1
0x04a9 0x3141 blacklist
# Canon SELPHY CP730
0x04a9 0x3142 blacklist
# Canon SELPHY CP720
0x04a9 0x3143 blacklist
# Canon SELPHY CP750
0x04a9 0x3170 blacklist
# Canon SELPHY CP740
0x04a9 0x3171 blacklist
# Canon SELPHY ES2
0x04a9 0x3185 blacklist
# Canon SELPHY ES20
0x04a9 0x3186 blacklist
# Canon SELPHY CP770
0x04a9 0x31aa blacklist
# Canon SELPHY CP760
0x04a9 0x31ab blacklist
# Canon SELPHY ES30
0x04a9 0x31b0 blacklist
# Canon SELPHY CP780
0x04a9 0x31dd blacklist
# Canon SELPHY ES40
0x04a9 0x31ee blacklist
# Canon SELPHY CP800
0x04a9 0x3214 blacklist
# Canon SELPHY CP900
0x04a9 0x3255 blacklist
# Canon SELPHY CP810
0x04a9 0x3256 blacklist
# Canon SELPHY CP500
0x04a9 0x30f5 blacklist
# Canon SELPHY ES3
0x04a9 0x31af blacklist
# Canon SELPHY CP780
0x04a9 0x31dd blacklist
# Lexmark E238 (<rdar://problem/14493054>)
0x043d 0x00d7 no-reattach
Arquivo normal → Arquivo executável
Ver Arquivo
+14 -34
Ver Arquivo
@@ -1,9 +1,9 @@
/*
* "$Id: runloop.c 10996 2013-05-29 11:51:34Z msweet $"
* "$Id$"
*
* Common run loop APIs for CUPS backends.
*
* Copyright 2007-2012 by Apple Inc.
* Copyright 2007-2011 by Apple Inc.
* Copyright 2006-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
@@ -92,8 +92,7 @@ backendDrainOutput(int print_fd, /* I - Print file descriptor */
if (errno != EAGAIN || errno != EINTR)
{
fprintf(stderr, "DEBUG: Read failed: %s\n", strerror(errno));
_cupsLangPrintFilter(stderr, "ERROR", _("Unable to read print data."));
_cupsLangPrintError("ERROR", _("Unable to read print data"));
return (-1);
}
@@ -251,7 +250,7 @@ backendRunLoop(
{
fputs("STATE: +offline-report\n", stderr);
_cupsLangPrintFilter(stderr, "INFO",
_("The printer is not connected."));
_("Printer is not currently connected."));
offline = 1;
}
else if (errno == EINTR && total_bytes == 0)
@@ -320,9 +319,7 @@ backendRunLoop(
if (errno != EAGAIN || errno != EINTR)
{
fprintf(stderr, "DEBUG: Read failed: %s\n", strerror(errno));
_cupsLangPrintFilter(stderr, "ERROR",
_("Unable to read print data."));
_cupsLangPrintError("ERROR", _("Unable to read print data"));
return (-1);
}
@@ -371,7 +368,7 @@ backendRunLoop(
{
fputs("STATE: +offline-report\n", stderr);
_cupsLangPrintFilter(stderr, "INFO",
_("The printer is not connected."));
_("Printer is not currently connected."));
offline = 1;
}
}
@@ -392,8 +389,7 @@ backendRunLoop(
if (offline && update_state)
{
fputs("STATE: -offline-report\n", stderr);
_cupsLangPrintFilter(stderr, "INFO",
_("The printer is now connected."));
_cupsLangPrintFilter(stderr, "INFO", _("Printer is now connected."));
offline = 0;
}
@@ -438,11 +434,9 @@ backendWaitLoop(
int use_bc, /* I - Use back-channel? */
_cups_sccb_t side_cb) /* I - Side-channel callback */
{
int nfds; /* Number of file descriptors */
fd_set input; /* Input set for reading */
time_t curtime = 0, /* Current time */
snmp_update = 0;/* Last SNMP status update */
struct timeval timeout; /* Timeout for select() */
fd_set input; /* Input set for reading */
time_t curtime, /* Current time */
snmp_update = 0; /* Last SNMP status update */
fprintf(stderr, "DEBUG: backendWaitLoop(snmp_fd=%d, addr=%p, side_cb=%p)\n",
@@ -452,9 +446,6 @@ backendWaitLoop(
* Now loop until we receive data from stdin...
*/
if (snmp_fd >= 0)
snmp_update = time(NULL) + 5;
for (;;)
{
/*
@@ -466,18 +457,7 @@ backendWaitLoop(
if (side_cb)
FD_SET(CUPS_SC_FD, &input);
if (snmp_fd >= 0)
{
curtime = time(NULL);
timeout.tv_sec = curtime >= snmp_update ? 0 : snmp_update - curtime;
timeout.tv_usec = 0;
nfds = select(CUPS_SC_FD + 1, &input, NULL, NULL, &timeout);
}
else
nfds = select(CUPS_SC_FD + 1, &input, NULL, NULL, NULL);
if (nfds < 0)
if (select(CUPS_SC_FD + 1, &input, NULL, NULL, NULL) < 0)
{
/*
* Pause printing to clear any pending errors...
@@ -521,10 +501,10 @@ backendWaitLoop(
* Do SNMP updates periodically...
*/
if (snmp_fd >= 0 && curtime >= snmp_update)
if (snmp_fd >= 0 && time(&curtime) >= snmp_update)
{
if (backendSNMPSupplies(snmp_fd, addr, NULL, NULL))
snmp_fd = -1;
snmp_update = INT_MAX;
else
snmp_update = curtime + 5;
}
@@ -539,5 +519,5 @@ backendWaitLoop(
/*
* End of "$Id: runloop.c 10996 2013-05-29 11:51:34Z msweet $".
* End of "$Id$".
*/
+68 -189
Ver Arquivo
@@ -1,9 +1,9 @@
/*
* "$Id: snmp-supplies.c 11319 2013-09-27 16:18:26Z msweet $"
* "$Id$"
*
* SNMP supplies functions for CUPS.
*
* Copyright 2008-2013 by Apple Inc.
* Copyright 2008-2011 by Apple Inc.
*
* These coded instructions, statements, and computer programs are the
* property of Apple Inc. and are protected by Federal copyright
@@ -36,21 +36,14 @@
#define CUPS_MAX_SUPPLIES 32 /* Maximum number of supplies for a printer */
#define CUPS_SUPPLY_TIMEOUT 2.0 /* Timeout for SNMP lookups */
#define CUPS_DEVELOPER_LOW 0x0001
#define CUPS_DEVELOPER_EMPTY 0x0002
#define CUPS_MARKER_SUPPLY_LOW 0x0004
#define CUPS_MARKER_SUPPLY_EMPTY 0x0008
#define CUPS_OPC_NEAR_EOL 0x0010
#define CUPS_OPC_LIFE_OVER 0x0020
#define CUPS_TONER_LOW 0x0040
#define CUPS_TONER_EMPTY 0x0080
#define CUPS_WASTE_ALMOST_FULL 0x0100
#define CUPS_WASTE_FULL 0x0200
#define CUPS_CLEANER_NEAR_EOL 0x0400 /* Proposed JPS3 */
#define CUPS_CLEANER_LIFE_OVER 0x0800 /* Proposed JPS3 */
#define CUPS_SNMP_NONE 0x0000
#define CUPS_SNMP_CAPACITY 0x0001 /* Supply levels reported as percentages */
#define CUPS_DEVELOPER_LOW 1
#define CUPS_DEVELOPER_EMPTY 2
#define CUPS_MARKER_SUPPLY_LOW 4
#define CUPS_MARKER_SUPPLY_EMPTY 8
#define CUPS_OPC_NEAR_EOL 16
#define CUPS_OPC_LIFE_OVER 32
#define CUPS_TONER_LOW 64
#define CUPS_TONER_EMPTY 128
/*
@@ -62,7 +55,6 @@ typedef struct /**** Printer supply data ****/
char name[CUPS_SNMP_MAX_STRING], /* Name of supply */
color[8]; /* Color: "#RRGGBB" or "none" */
int colorant, /* Colorant index */
sclass, /* Supply class */
type, /* Supply type */
max_capacity, /* Maximum capacity */
level; /* Current level value */
@@ -83,8 +75,6 @@ static http_addr_t current_addr; /* Current address */
static int current_state = -1;
/* Current device state bits */
static int charset = -1; /* Character set for supply names */
static unsigned quirks = CUPS_SNMP_NONE;
/* Quirks we have to work around */
static int num_supplies = 0;
/* Number of supplies found */
static backend_supplies_t supplies[CUPS_MAX_SUPPLIES];
@@ -149,13 +139,6 @@ static const int prtMarkerSuppliesMaxCapacity[] =
(sizeof(prtMarkerSuppliesMaxCapacity) /
sizeof(prtMarkerSuppliesMaxCapacity[0]));
/* Offset to supply index */
static const int prtMarkerSuppliesClass[] =
{ CUPS_OID_prtMarkerSuppliesClass, -1 },
/* Class OID */
prtMarkerSuppliesClassOffset =
(sizeof(prtMarkerSuppliesClass) /
sizeof(prtMarkerSuppliesClass[0]));
/* Offset to supply index */
static const int prtMarkerSuppliesType[] =
{ CUPS_OID_prtMarkerSuppliesType, -1 },
/* Type OID */
@@ -163,17 +146,10 @@ static const int prtMarkerSuppliesType[] =
(sizeof(prtMarkerSuppliesType) /
sizeof(prtMarkerSuppliesType[0]));
/* Offset to supply index */
static const int prtMarkerSuppliesSupplyUnit[] =
{ CUPS_OID_prtMarkerSuppliesSupplyUnit, -1 },
/* Units OID */
prtMarkerSuppliesSupplyUnitOffset =
(sizeof(prtMarkerSuppliesSupplyUnit) /
sizeof(prtMarkerSuppliesSupplyUnit[0]));
/* Offset to supply index */
static const backend_state_t printer_states[] =
static const backend_state_t const printer_states[] =
{
/* { CUPS_TC_lowPaper, "media-low-report" }, */
{ CUPS_TC_lowPaper, "media-low-report" },
{ CUPS_TC_noPaper | CUPS_TC_inputTrayEmpty, "media-empty-warning" },
/* { CUPS_TC_lowToner, "toner-low-report" }, */ /* now use prtMarkerSupplies */
/* { CUPS_TC_noToner, "toner-empty-warning" }, */ /* now use prtMarkerSupplies */
@@ -188,7 +164,7 @@ static const backend_state_t printer_states[] =
{ CUPS_TC_outputFull, "output-area-full-warning" }
};
static const backend_state_t supply_states[] =
static const backend_state_t const supply_states[] =
{
{ CUPS_DEVELOPER_LOW, "developer-low-report" },
{ CUPS_DEVELOPER_EMPTY, "developer-empty-warning" },
@@ -197,11 +173,7 @@ static const backend_state_t supply_states[] =
{ CUPS_OPC_NEAR_EOL, "opc-near-eol-report" },
{ CUPS_OPC_LIFE_OVER, "opc-life-over-warning" },
{ CUPS_TONER_LOW, "toner-low-report" },
{ CUPS_TONER_EMPTY, "toner-empty-warning" },
{ CUPS_WASTE_ALMOST_FULL, "waste-receptacle-almost-full-report" },
{ CUPS_WASTE_FULL, "waste-receptacle-full-warning" },
{ CUPS_CLEANER_NEAR_EOL, "cleaner-life-almost-over-report" },
{ CUPS_CLEANER_LIFE_OVER, "cleaner-life-over-warning" },
{ CUPS_TONER_EMPTY, "toner-empty-warning" }
};
@@ -259,15 +231,9 @@ backendSNMPSupplies(
{
if (supplies[i].max_capacity > 0 && supplies[i].level >= 0)
percent = 100 * supplies[i].level / supplies[i].max_capacity;
else if (supplies[i].level >= 0 && supplies[i].level <= 100 &&
(quirks & CUPS_SNMP_CAPACITY))
percent = supplies[i].level;
else
percent = 50;
if (supplies[i].sclass == CUPS_TC_receptacleThatIsFilled)
percent = 100 - percent;
if (percent <= 5)
{
switch (supplies[i].type)
@@ -279,6 +245,9 @@ backendSNMPSupplies(
else
new_supply_state |= CUPS_TONER_LOW;
break;
case CUPS_TC_wasteToner :
case CUPS_TC_wasteInk :
break;
case CUPS_TC_ink :
case CUPS_TC_inkCartridge :
case CUPS_TC_inkRibbon :
@@ -304,34 +273,16 @@ backendSNMPSupplies(
else
new_supply_state |= CUPS_OPC_NEAR_EOL;
break;
case CUPS_TC_wasteInk :
case CUPS_TC_wastePaper :
case CUPS_TC_wasteToner :
case CUPS_TC_wasteWater :
case CUPS_TC_wasteWax :
if (percent <= 1)
new_supply_state |= CUPS_WASTE_FULL;
else
new_supply_state |= CUPS_WASTE_ALMOST_FULL;
break;
case CUPS_TC_cleanerUnit :
case CUPS_TC_fuserCleaningPad :
if (percent <= 1)
new_supply_state |= CUPS_CLEANER_LIFE_OVER;
else
new_supply_state |= CUPS_CLEANER_NEAR_EOL;
break;
}
}
if (i)
*ptr++ = ',';
if ((supplies[i].max_capacity > 0 || (quirks & CUPS_SNMP_CAPACITY)) &&
supplies[i].level >= 0)
snprintf(ptr, sizeof(value) - (ptr - value), "%d", percent);
if (supplies[i].max_capacity > 0 && supplies[i].level >= 0)
sprintf(ptr, "%d", percent);
else
strlcpy(ptr, "-1", sizeof(value) - (ptr - value));
strcpy(ptr, "-1");
}
fprintf(stderr, "ATTR: marker-levels=%s\n", value);
@@ -457,7 +408,7 @@ backend_init_supplies(
cachefilename[1024], /* Cache filename */
description[CUPS_SNMP_MAX_STRING],
/* Device description string */
value[CUPS_MAX_SUPPLIES * (CUPS_SNMP_MAX_STRING * 4 + 3)],
value[CUPS_MAX_SUPPLIES * (CUPS_SNMP_MAX_STRING * 2 + 3)],
/* Value string */
*ptr, /* Pointer into value string */
*name_ptr; /* Pointer into name string */
@@ -469,34 +420,34 @@ backend_init_supplies(
"other",
"unknown",
"toner",
"waste-toner",
"wasteToner",
"ink",
"ink-cartridge",
"ink-ribbon",
"waste-ink",
"inkCartridge",
"inkRibbon",
"wasteInk",
"opc",
"developer",
"fuser-oil",
"solid-wax",
"ribbon-wax",
"waste-wax",
"fuserOil",
"solidWax",
"ribbonWax",
"wasteWax",
"fuser",
"corona-wire",
"fuser-oil-wick",
"cleaner-unit",
"fuser-cleaning-pad",
"transfer-unit",
"toner-cartridge",
"fuser-oiler",
"coronaWire",
"fuserOilWick",
"cleanerUnit",
"fuserCleaningPad",
"transferUnit",
"tonerCartridge",
"fuserOiler",
"water",
"waste-water",
"glue-water-additive",
"waste-paper",
"binding-supply",
"banding-supply",
"stitching-wire",
"shrink-wrap",
"paper-wrap",
"wasteWater",
"glueWaterAdditive",
"wastePaper",
"bindingSupply",
"bandingSupply",
"stitchingWire",
"shrinkWrap",
"paperWrap",
"staples",
"inserts",
"covers"
@@ -526,12 +477,6 @@ backend_init_supplies(
return;
}
if ((ppdattr = ppdFindAttr(ppd, "cupsSNMPQuirks", NULL)) != NULL)
{
if (!_cups_strcasecmp(ppdattr->value, "capacity"))
quirks |= CUPS_SNMP_CAPACITY;
}
ppdClose(ppd);
/*
@@ -572,14 +517,14 @@ backend_init_supplies(
/*
* Yes, read the cache file:
*
* 3 num_supplies charset
* 2 num_supplies charset
* device description
* supply structures...
*/
if (cupsFileGets(cachefile, value, sizeof(value)))
{
if (sscanf(value, "3 %d%d", &num_supplies, &charset) == 2 &&
if (sscanf(value, "2 %d%d", &num_supplies, &charset) == 2 &&
num_supplies <= CUPS_MAX_SUPPLIES &&
cupsFileGets(cachefile, value, sizeof(value)))
{
@@ -675,7 +620,7 @@ backend_init_supplies(
if ((cachefile = cupsFileOpen(cachefilename, "w")) != NULL)
{
cupsFilePrintf(cachefile, "3 %d %d\n", num_supplies, charset);
cupsFilePrintf(cachefile, "2 %d %d\n", num_supplies, charset);
cupsFilePrintf(cachefile, "%s\n", description);
if (num_supplies > 0)
@@ -693,7 +638,7 @@ backend_init_supplies(
*/
for (i = 0; i < num_supplies; i ++)
strlcpy(supplies[i].color, "none", sizeof(supplies[i].color));
strcpy(supplies[i].color, "none");
_cupsSNMPWalk(snmp_fd, &current_addr, CUPS_SNMP_VERSION_1,
_cupsSNMPDefaultCommunity(), prtMarkerColorantValue,
@@ -708,14 +653,13 @@ backend_init_supplies(
if (i)
*ptr++ = ',';
strlcpy(ptr, supplies[i].color, sizeof(value) - (ptr - value));
strcpy(ptr, supplies[i].color);
}
fprintf(stderr, "ATTR: marker-colors=%s\n", value);
/*
* Output the marker-names attribute (the double quoting is necessary to deal
* with embedded quotes and commas in the marker names...)
* Output the marker-names attribute...
*/
for (i = 0, ptr = value; i < num_supplies; i ++)
@@ -723,21 +667,15 @@ backend_init_supplies(
if (i)
*ptr++ = ',';
*ptr++ = '\'';
*ptr++ = '\"';
for (name_ptr = supplies[i].name; *name_ptr;)
{
if (*name_ptr == '\\' || *name_ptr == '\"' || *name_ptr == '\'')
{
if (*name_ptr == '\\' || *name_ptr == '\"')
*ptr++ = '\\';
*ptr++ = '\\';
*ptr++ = '\\';
}
*ptr++ = *name_ptr++;
}
*ptr++ = '\"';
*ptr++ = '\'';
}
*ptr = '\0';
@@ -756,9 +694,9 @@ backend_init_supplies(
type = supplies[i].type;
if (type < CUPS_TC_other || type > CUPS_TC_covers)
strlcpy(ptr, "unknown", sizeof(value) - (ptr - value));
strcpy(ptr, "unknown");
else
strlcpy(ptr, types[type - CUPS_TC_other], sizeof(value) - (ptr - value));
strcpy(ptr, types[type - CUPS_TC_other]);
}
fprintf(stderr, "ATTR: marker-types=%s\n", value);
@@ -774,33 +712,16 @@ backend_walk_cb(cups_snmp_t *packet, /* I - SNMP packet */
void *data) /* I - User data (unused) */
{
int i, j, k; /* Looping vars */
static const char * const colors[][2] =
static const char * const colors[8][2] =
{ /* Standard color names */
{ "black", "#000000" },
{ "blue", "#0000FF" },
{ "brown", "#A52A2A" },
{ "cyan", "#00FFFF" },
{ "dark-gray", "#404040" },
{ "dark gray", "#404040" },
{ "dark-yellow", "#FFCC00" },
{ "dark yellow", "#FFCC00" },
{ "gold", "#FFD700" },
{ "gray", "#808080" },
{ "green", "#00FF00" },
{ "light-black", "#606060" },
{ "light black", "#606060" },
{ "light-cyan", "#E0FFFF" },
{ "light cyan", "#E0FFFF" },
{ "light-gray", "#D3D3D3" },
{ "light gray", "#D3D3D3" },
{ "light-magenta", "#FF77FF" },
{ "light magenta", "#FF77FF" },
{ "magenta", "#FF00FF" },
{ "orange", "#FFA500" },
{ "red", "#FF0000" },
{ "silver", "#C0C0C0" },
{ "white", "#FFFFFF" },
{ "yellow", "#FFFF00" }
{ "black", "#000000" },
{ "blue", "#0000FF" },
{ "cyan", "#00FFFF" },
{ "green", "#00FF00" },
{ "magenta", "#FF00FF" },
{ "red", "#FF0000" },
{ "white", "#FFFFFF" },
{ "yellow", "#FFFF00" }
};
@@ -822,10 +743,9 @@ backend_walk_cb(cups_snmp_t *packet, /* I - SNMP packet */
if (supplies[j].colorant == i)
{
for (k = 0; k < (int)(sizeof(colors) / sizeof(colors[0])); k ++)
if (!_cups_strcasecmp(colors[k][0],
(char *)packet->object_value.string.bytes))
if (!strcmp(colors[k][0], (char *)packet->object_value.string.bytes))
{
strlcpy(supplies[j].color, colors[k][1], sizeof(supplies[j].color));
strcpy(supplies[j].color, colors[k][1]);
break;
}
}
@@ -914,6 +834,7 @@ backend_walk_cb(cups_snmp_t *packet, /* I - SNMP packet */
{
char *src, *dst; /* Pointers into strings */
/*
* Loop safe because both the object_value and supplies char arrays
* are CUPS_SNMP_MAX_STRING elements long.
@@ -958,8 +879,7 @@ backend_walk_cb(cups_snmp_t *packet, /* I - SNMP packet */
supplies[i - 1].level = packet->object_value.integer;
}
else if (_cupsSNMPIsOIDPrefixed(packet, prtMarkerSuppliesMaxCapacity) &&
!(quirks & CUPS_SNMP_CAPACITY))
else if (_cupsSNMPIsOIDPrefixed(packet, prtMarkerSuppliesMaxCapacity))
{
/*
* Get max capacity...
@@ -976,28 +896,7 @@ backend_walk_cb(cups_snmp_t *packet, /* I - SNMP packet */
if (i > num_supplies)
num_supplies = i;
if (supplies[i - 1].max_capacity == 0 &&
packet->object_value.integer > 0)
supplies[i - 1].max_capacity = packet->object_value.integer;
}
else if (_cupsSNMPIsOIDPrefixed(packet, prtMarkerSuppliesClass))
{
/*
* Get marker class...
*/
i = packet->object_name[prtMarkerSuppliesClassOffset];
if (i < 1 || i > CUPS_MAX_SUPPLIES ||
packet->object_type != CUPS_ASN1_INTEGER)
return;
fprintf(stderr, "DEBUG2: prtMarkerSuppliesClass.1.%d = %d\n", i,
packet->object_value.integer);
if (i > num_supplies)
num_supplies = i;
supplies[i - 1].sclass = packet->object_value.integer;
supplies[i - 1].max_capacity = packet->object_value.integer;
}
else if (_cupsSNMPIsOIDPrefixed(packet, prtMarkerSuppliesType))
{
@@ -1018,26 +917,6 @@ backend_walk_cb(cups_snmp_t *packet, /* I - SNMP packet */
supplies[i - 1].type = packet->object_value.integer;
}
else if (_cupsSNMPIsOIDPrefixed(packet, prtMarkerSuppliesSupplyUnit))
{
/*
* Get units for capacity...
*/
i = packet->object_name[prtMarkerSuppliesSupplyUnitOffset];
if (i < 1 || i > CUPS_MAX_SUPPLIES ||
packet->object_type != CUPS_ASN1_INTEGER)
return;
fprintf(stderr, "DEBUG2: prtMarkerSuppliesSupplyUnit.1.%d = %d\n", i,
packet->object_value.integer);
if (i > num_supplies)
num_supplies = i;
if (packet->object_value.integer == CUPS_TC_percent)
supplies[i - 1].max_capacity = 100;
}
}
@@ -1103,5 +982,5 @@ utf16_to_utf8(
/*
* End of "$Id: snmp-supplies.c 11319 2013-09-27 16:18:26Z msweet $".
* End of "$Id$".
*/
+4 -12
Ver Arquivo
@@ -1,5 +1,5 @@
/*
* "$Id: snmp.c 10996 2013-05-29 11:51:34Z msweet $"
* "$Id$"
*
* SNMP discovery backend for CUPS.
*
@@ -251,7 +251,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
#ifdef AF_INET6
if ((ipv6 = _cupsSNMPOpen(AF_INET6)) < 0)
perror("DEBUG: Unable to create IPv6 socket");
return (1);
#else
ipv6 = -1;
#endif /* AF_INET6 */
@@ -1025,11 +1025,6 @@ read_snmp_response(int fd) /* I - SNMP socket file descriptor */
* Description is the IEEE-1284 device ID...
*/
char *ptr; /* Pointer into device ID */
for (ptr = (char *)packet.object_value.string.bytes; *ptr; ptr ++)
if (*ptr == '\n')
*ptr = ';'; /* A lot of bad printers put a newline */
if (!device->id)
device->id = strdup((char *)packet.object_value.string.bytes);
@@ -1071,11 +1066,8 @@ read_snmp_response(int fd) /* I - SNMP socket file descriptor */
*/
char make_model[256]; /* Make and model */
char *ptr; /* Pointer into device ID */
for (ptr = (char *)packet.object_value.string.bytes; *ptr; ptr ++)
if (*ptr == '\n')
*ptr = ';'; /* A lot of bad printers put a newline */
if (device->id)
free(device->id);
@@ -1391,5 +1383,5 @@ update_cache(snmp_cache_t *device, /* I - Device */
/*
* End of "$Id: snmp.c 10996 2013-05-29 11:51:34Z msweet $".
* End of "$Id$".
*/
+25 -22
Ver Arquivo
@@ -1,9 +1,9 @@
/*
* "$Id: socket.c 10996 2013-05-29 11:51:34Z msweet $"
* "$Id$"
*
* AppSocket backend for CUPS.
*
* Copyright 2007-2012 by Apple Inc.
* Copyright 2007-2011 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
@@ -73,6 +73,10 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
int print_fd; /* Print file */
int copies; /* Number of copies to print */
time_t start_time; /* Time of first connect */
#ifdef __APPLE__
time_t current_time, /* Current time */
wait_time; /* Time to wait before shutting down socket */
#endif /* __APPLE__ */
int contimeout; /* Connection timeout */
int waiteof; /* Wait for end-of-file? */
int port; /* Port number */
@@ -83,7 +87,6 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
http_addrlist_t *addrlist, /* Address list */
*addr; /* Connected address */
char addrname[256]; /* Address name */
int snmp_enabled = 1; /* Is SNMP enabled? */
int snmp_fd, /* SNMP socket */
start_count, /* Page count via SNMP at start */
page_count, /* Page count via SNMP */
@@ -243,16 +246,6 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
waiteof = !value[0] || !_cups_strcasecmp(value, "on") ||
!_cups_strcasecmp(value, "yes") || !_cups_strcasecmp(value, "true");
}
else if (!_cups_strcasecmp(name, "snmp"))
{
/*
* Enable/disable SNMP stuff...
*/
snmp_enabled = !value[0] || !_cups_strcasecmp(value, "on") ||
_cups_strcasecmp(value, "yes") ||
_cups_strcasecmp(value, "true");
}
else if (!_cups_strcasecmp(name, "contimeout"))
{
/*
@@ -293,14 +286,11 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
* See if the printer supports SNMP...
*/
if (snmp_enabled)
snmp_fd = _cupsSNMPOpen(addrlist->addr.addr.sa_family);
else
snmp_fd = -1;
if (snmp_fd >= 0)
if ((snmp_fd = _cupsSNMPOpen(addrlist->addr.addr.sa_family)) >= 0)
{
have_supplies = !backendSNMPSupplies(snmp_fd, &(addrlist->addr),
&start_count, NULL);
}
else
have_supplies = start_count = 0;
@@ -381,7 +371,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
case ECONNREFUSED :
default :
_cupsLangPrintFilter(stderr, "WARNING",
_("The printer is in use."));
_("The printer is busy."));
break;
}
@@ -406,7 +396,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
fprintf(stderr, "DEBUG: Connected to %s:%d...\n",
httpAddrString(&(addr->addr), addrname, sizeof(addrname)),
httpAddrPort(&(addr->addr)));
_httpAddrPort(&(addr->addr)));
/*
* Print everything...
@@ -434,6 +424,17 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
_cupsLangPrintFilter(stderr, "INFO", _("Print file sent."));
}
#ifdef __APPLE__
/*
* Wait up to 5 seconds to get any pending back-channel data...
*/
wait_time = time(NULL) + 5;
while (wait_time >= time(&current_time))
if (wait_bc(device_fd, wait_time - current_time) <= 0)
break;
#endif /* __APPLE__ */
if (waiteof)
{
/*
@@ -471,6 +472,8 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
if (print_fd != 0)
close(print_fd);
_cupsLangPrintFilter(stderr, "INFO", _("Ready to print."));
return (CUPS_BACKEND_OK);
}
@@ -520,5 +523,5 @@ wait_bc(int device_fd, /* I - Socket */
/*
* End of "$Id: socket.c 10996 2013-05-29 11:51:34Z msweet $".
* End of "$Id$".
*/
+2 -2
Ver Arquivo
@@ -1,5 +1,5 @@
/*
* "$Id: test1284.c 10996 2013-05-29 11:51:34Z msweet $"
* "$Id$"
*
* IEEE-1284 support functions test program for CUPS.
*
@@ -80,5 +80,5 @@ main(int argc, /* I - Number of command-line args */
/*
* End of "$Id: test1284.c 10996 2013-05-29 11:51:34Z msweet $".
* End of "$Id$".
*/
+10 -28
Ver Arquivo
@@ -1,5 +1,5 @@
/*
* "$Id: testbackend.c 4297 2013-05-10 16:04:59Z msweet $"
* "$Id$"
*
* Backend test program for CUPS.
*
@@ -98,18 +98,12 @@ main(int argc, /* I - Number of command-line args */
(ptr = strrchr(libpath, '/')) != NULL && !strcmp(ptr, "/backend"))
{
strlcpy(ptr, "/cups", sizeof(libpath) - (ptr - libpath));
if (!access(libpath, 0))
{
if (access(libpath, 0))
#ifdef __APPLE__
fprintf(stderr, "Setting DYLD_LIBRARY_PATH to \"%s\".\n", libpath);
setenv("DYLD_LIBRARY_PATH", libpath, 1);
#else
fprintf(stderr, "Setting LD_LIBRARY_PATH to \"%s\".\n", libpath);
setenv("LD_LIBRARY_PATH", libpath, 1);
#endif /* __APPLE__ */
}
else
perror(libpath);
}
/*
@@ -573,13 +567,13 @@ main(int argc, /* I - Number of command-line args */
length = sizeof(buffer);
scstatus = cupsSideChannelSNMPGet(oid, buffer, &length, 5.0);
printf("CUPS_SC_CMD_SNMP_GET %s returned %s, %d bytes (%s)\n", oid,
statuses[scstatus], (int)length, buffer);
printf("CUPS_SC_CMD_SNMP_GET %s returned %s, %s\n", oid,
statuses[scstatus], buffer);
length = sizeof(buffer);
scstatus = cupsSideChannelSNMPGet(oid, buffer, &length, 5.0);
printf("CUPS_SC_CMD_SNMP_GET %s returned %s, %d bytes (%s)\n", oid,
statuses[scstatus], (int)length, buffer);
printf("CUPS_SC_CMD_SNMP_GET %s returned %s, %s\n", oid,
statuses[scstatus], buffer);
}
length = 0;
@@ -638,13 +632,13 @@ sigterm_handler(int sig) /* I - Signal */
static void
usage(void)
{
puts("Usage: testbackend [-cancel] [-d] [-ps | -pcl] [-s [-get OID] "
puts("Usage: testbackend [-cancel] [-d] [-ps | -pcl] [-s [-oid OID] "
"[-walk OID]] [-t] device-uri job-id user title copies options [file]");
puts("");
puts("Options:");
puts(" -cancel Simulate a canceled print job after 2 seconds.");
puts(" -d Show log messages from backend.");
puts(" -get OID Lookup the specified SNMP OID.");
puts(" -oid OID Lookup the specified SNMP OID.");
puts(" (.1.3.6.1.2.1.43.10.2.1.4.1.1 is a good one for printers)");
puts(" -pcl Send PCL+PJL query and test page to backend.");
puts(" -ps Send PostScript query and test page to backend.");
@@ -667,22 +661,10 @@ walk_cb(const char *oid, /* I - OID */
int datalen, /* I - Length of data */
void *context) /* I - Context (unused) */
{
char temp[80];
if (datalen > (sizeof(temp) - 1))
{
memcpy(temp, data, sizeof(temp) - 1);
temp[sizeof(temp) - 1] = '\0';
}
else
{
memcpy(temp, data, datalen);
temp[datalen] = '\0';
}
printf("CUPS_SC_CMD_SNMP_WALK %s, %d bytes (%s)\n", oid, datalen, temp);
printf("CUPS_SC_CMD_SNMP_WALK %s=%s (%d bytes)\n", oid, data, datalen);
}
/*
* End of "$Id: testbackend.c 4297 2013-05-10 16:04:59Z msweet $".
* End of "$Id$".
*/
+2 -2
Ver Arquivo
@@ -1,5 +1,5 @@
/*
* "$Id: testsupplies.c 3247 2011-05-12 06:22:31Z msweet $"
* "$Id$"
*
* SNMP supplies test program for CUPS.
*
@@ -79,5 +79,5 @@ main(int argc, /* I - Number of command-line args */
/*
* End of "$Id: testsupplies.c 3247 2011-05-12 06:22:31Z msweet $".
* End of "$Id$".
*/
+60 -141
Ver Arquivo
@@ -1,7 +1,7 @@
/*
* "$Id: usb-darwin.c 11670 2014-03-04 14:53:59Z msweet $"
* "$Id$"
*
* Copyright 2005-2014 Apple Inc. All rights reserved.
* Copyright 2005-2011 Apple Inc. All rights reserved.
*
* IMPORTANT: This Apple software is supplied to you by Apple Computer,
* Inc. ("Apple") in consideration of your agreement to the following
@@ -40,6 +40,35 @@
* AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),
* STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* Contents:
*
* list_devices() - List all USB devices.
* print_device() - Print a file to a USB device.
* read_thread() - Thread to read the backchannel data on.
* sidechannel_thread() - Handle side-channel requests.
* iterate_printers() - Iterate over all the printers.
* device_added() - Device added notifier.
* list_device_cb() - list_device iterator callback.
* find_device_cb() - print_device iterator callback.
* status_timer_cb() - Status timer callback.
* copy_deviceinfo() - Copy strings from the 1284 device ID.
* release_deviceinfo() - Release deviceinfo strings.
* load_classdriver() - Load a classdriver.
* unload_classdriver() - Unload a classdriver.
* load_printerdriver() - Load vendor's classdriver.
* registry_open() - Open a connection to the printer.
* registry_close() - Close the connection to the printer.
* copy_deviceid() - Copy the 1284 device id string.
* copy_devicestring() - Copy the 1284 device id string.
* copy_value_for_key() - Copy value string associated with a key.
* cfstr_create_trim() - Create CFString and trim whitespace characters.
* parse_options() - Parse URI options.
* sigterm_handler() - SIGTERM handler.
* next_line() - Find the next line in a buffer.
* parse_pserror() - Scan the backchannel data for postscript errors.
* soft_reset() - Send a soft reset to the device.
* get_device_id() - Return IEEE-1284 device ID.
*/
/*
@@ -67,8 +96,7 @@
#include <CoreFoundation/CoreFoundation.h>
#include <IOKit/usb/IOUSBLib.h>
#include <IOKit/IOCFPlugIn.h>
#include <libproc.h>
#include <asl.h>
#include <spawn.h>
#include <pthread.h>
@@ -106,26 +134,6 @@ extern char **environ;
#define kUSBGenericTOPrinterClassDriver CFSTR("/System/Library/Printers/Libraries/USBGenericPrintingClass.plugin")
#define kUSBPrinterClassDeviceNotOpen -9664 /*kPMInvalidIOMContext*/
#define CRSetCrashLogMessage(m) _crc_make_setter(message, m)
#define _crc_make_setter(attr, arg) (gCRAnnotations.attr = (uint64_t)(unsigned long)(arg))
#define CRASH_REPORTER_CLIENT_HIDDEN __attribute__((visibility("hidden")))
#define CRASHREPORTER_ANNOTATIONS_VERSION 4
#define CRASHREPORTER_ANNOTATIONS_SECTION "__crash_info"
struct crashreporter_annotations_t {
uint64_t version; // unsigned long
uint64_t message; // char *
uint64_t signature_string; // char *
uint64_t backtrace; // char *
uint64_t message2; // char *
uint64_t thread; // uint64_t
uint64_t dialog_mode; // unsigned int
};
CRASH_REPORTER_CLIENT_HIDDEN
struct crashreporter_annotations_t gCRAnnotations
__attribute__((section("__DATA," CRASHREPORTER_ANNOTATIONS_SECTION)))
= { CRASHREPORTER_ANNOTATIONS_VERSION, 0, 0, 0, 0, 0, 0 };
/*
* Section 5.3 USB Printing Class spec
@@ -171,7 +179,7 @@ typedef struct classdriver_s /**** g.classdriver context ****/
UInt16 vendorID; /* Vendor id */
UInt16 productID; /* Product id */
printer_interface_t interface; /* identify the device to IOKit */
UInt8 outpipe; /* mandatory bulkOut pipe */
UInt8 outpipe; /* mandatory bulkOut pipe */
UInt8 inpipe; /* optional bulkIn pipe */
/* general class requests */
@@ -251,7 +259,6 @@ typedef struct globals_s
*/
globals_t g = { 0 }; /* Globals */
int Iterating = 0; /* Are we iterating the bus? */
/*
@@ -280,16 +287,12 @@ static void release_deviceinfo(CFStringRef *make, CFStringRef *model, CFStringRe
static void setup_cfLanguage(void);
static void soft_reset(void);
static void status_timer_cb(CFRunLoopTimerRef timer, void *info);
static void log_usb_class_driver(int is_64bit);
#define IS_64BIT 1
#define IS_NOT_64BIT 0
#if defined(__i386__) || defined(__x86_64__)
static pid_t child_pid; /* Child PID */
static void run_legacy_backend(int argc, char *argv[], int fd); /* Starts child backend process running as a ppc executable */
#endif /* __i386__ || __x86_64__ */
static void sigterm_handler(int sig); /* SIGTERM handler */
static void sigquit_handler(int sig, siginfo_t *si, void *unused);
#ifdef PARSE_PS_ERRORS
static const char *next_line (const char *buffer);
@@ -341,20 +344,10 @@ print_device(const char *uri, /* I - Device URI */
struct timeval *timeout, /* Timeout pointer */
tv; /* Time value */
struct timespec cond_timeout; /* pthread condition timeout */
struct sigaction action; /* Actions for POSIX signals */
(void)uri;
/*
* Catch SIGQUIT to determine who is sending it...
*/
memset(&action, 0, sizeof(action));
action.sa_sigaction = sigquit_handler;
action.sa_flags = SA_SIGINFO;
sigaction(SIGQUIT, &action, NULL);
/*
* See if the side-channel descriptor is valid...
*/
@@ -451,11 +444,6 @@ print_device(const char *uri, /* I - Device URI */
return (CUPS_BACKEND_STOP);
}
#ifdef __x86_64__
if (status == noErr && driverBundlePath != NULL && CFStringCompare(driverBundlePath, kUSBGenericTOPrinterClassDriver, 0) != kCFCompareEqualTo)
log_usb_class_driver(IS_64BIT);
#endif /* __x86_64__ */
if (driverBundlePath)
CFRelease(driverBundlePath);
@@ -484,6 +472,9 @@ print_device(const char *uri, /* I - Device URI */
if (!print_fd)
{
struct sigaction action; /* POSIX signal action */
memset(&action, 0, sizeof(action));
sigemptyset(&action.sa_mask);
@@ -693,7 +684,7 @@ print_device(const char *uri, /* I - Device URI */
/*
* Ignore timeout errors, but retain the number of bytes written to
* avoid sending duplicate data...
* avoid sending duplicate data (<rdar://problem/6254911>)...
*/
if (iostatus == kIOUSBTransactionTimeout)
@@ -716,7 +707,7 @@ print_device(const char *uri, /* I - Device URI */
/*
* Retry a write after an aborted write since we probably just got
* SIGTERM...
* SIGTERM (<rdar://problem/6860126>)...
*/
else if (iostatus == kIOReturnAborted)
@@ -829,10 +820,10 @@ print_device(const char *uri, /* I - Device URI */
/*
* If it didn't exit abort the pending read and wait an additional second...
*/
if (!g.read_thread_done)
{
fputs("DEBUG: Read thread still active, aborting the pending read...\n",
fputs("DEBUG: Read thread still active, aborting the pending read...\n",
stderr);
g.wait_eof = 0;
@@ -842,7 +833,7 @@ print_device(const char *uri, /* I - Device URI */
gettimeofday(&tv, NULL);
cond_timeout.tv_sec = tv.tv_sec + 1;
cond_timeout.tv_nsec = tv.tv_usec * 1000;
while (!g.read_thread_done)
{
if (pthread_cond_timedwait(&g.read_thread_cond, &g.read_thread_mutex,
@@ -1086,8 +1077,6 @@ sidechannel_thread(void *reference)
static void iterate_printers(iterator_callback_t callBack,
void *userdata)
{
Iterating = 1;
mach_port_t masterPort = 0x0;
kern_return_t kr = IOMasterPort (bootstrap_port, &masterPort);
@@ -1111,7 +1100,7 @@ static void iterate_printers(iterator_callback_t callBack,
CFRelease(usb_klass);
CFRelease(usb_subklass);
IOServiceAddMatchingNotification(addNotification, kIOMatchedNotification, usbPrinterMatchDictionary, &device_added, &reference, &addIterator);
kr = IOServiceAddMatchingNotification(addNotification, kIOMatchedNotification, usbPrinterMatchDictionary, &device_added, &reference, &addIterator);
if (addIterator != 0x0)
{
device_added (&reference, addIterator);
@@ -1125,8 +1114,6 @@ static void iterate_printers(iterator_callback_t callBack,
}
mach_port_deallocate(mach_task_self(), masterPort);
}
Iterating = 0;
}
@@ -1150,7 +1137,7 @@ static void device_added(void *userdata,
/* One last call to the call back now that we are not longer have printers left to iterate...
*/
if (reference->keepRunning && reference->callback)
if (reference->keepRunning)
reference->keepRunning = reference->callback(reference->userdata, 0x0);
if (!reference->keepRunning)
@@ -1193,12 +1180,12 @@ static Boolean list_device_cb(void *refcon,
if (!make ||
!CFStringGetCString(make, makestr, sizeof(makestr),
kCFStringEncodingUTF8))
strlcpy(makestr, "Unknown", sizeof(makestr));
strcpy(makestr, "Unknown");
if (!model ||
!CFStringGetCString(model, &modelstr[1], sizeof(modelstr)-1,
kCFStringEncodingUTF8))
strlcpy(modelstr + 1, "Printer", sizeof(modelstr) - 1);
strcpy(modelstr + 1, "Printer");
optionsstr[0] = '\0';
if (serial != NULL)
@@ -1296,7 +1283,7 @@ static Boolean find_device_cb(void *refcon,
if (!keepLooking && g.status_timer != NULL)
{
fputs("STATE: -offline-report\n", stderr);
_cupsLangPrintFilter(stderr, "INFO", _("The printer is now online."));
_cupsLangPrintFilter(stderr, "INFO", _("Printer is now online."));
CFRunLoopRemoveTimer(CFRunLoopGetCurrent(), g.status_timer, kCFRunLoopDefaultMode);
CFRelease(g.status_timer);
g.status_timer = NULL;
@@ -1317,7 +1304,7 @@ static void status_timer_cb(CFRunLoopTimerRef timer,
(void)info;
fputs("STATE: +offline-report\n", stderr);
_cupsLangPrintFilter(stderr, "INFO", _("The printer is offline."));
_cupsLangPrintFilter(stderr, "INFO", _("Printer is offline."));
if (getenv("CLASS") != NULL)
{
@@ -1415,7 +1402,7 @@ static kern_return_t load_classdriver(CFStringRef driverPath,
_cups_fc_result_t result = _cupsFileCheck(bundlestr,
_CUPS_FILE_CHECK_DIRECTORY, 1,
Iterating ? NULL : _cupsFileCheckFilter, NULL);
_cupsFileCheckFilter, NULL);
if (result && driverPath)
return (load_classdriver(NULL, interface, printerDriver));
@@ -1582,12 +1569,11 @@ static kern_return_t registry_close(void)
static OSStatus copy_deviceid(classdriver_t **classdriver,
CFStringRef *deviceID)
{
CFStringRef devID = NULL;
CFStringRef deviceMake = NULL;
CFStringRef deviceModel = NULL;
CFStringRef deviceSerial = NULL;
CFStringRef devID = NULL,
*deviceID = NULL;
deviceMake = NULL,
deviceModel = NULL,
deviceSerial = NULL;
OSStatus err = (*classdriver)->GetDeviceID(classdriver, &devID, DEFAULT_TIMEOUT);
@@ -1633,10 +1619,12 @@ static OSStatus copy_deviceid(classdriver_t **classdriver,
if (deviceSerial == NULL && desc.iSerialNumber != 0)
{
err = (*classdriver)->GetString(classdriver, desc.iSerialNumber, kUSBLanguageEnglish, DEFAULT_TIMEOUT, &deviceSerial);
if (deviceSerial != NULL)
CFStringRef data = NULL;
err = (*classdriver)->GetString(classdriver, desc.iSerialNumber, kUSBLanguageEnglish, DEFAULT_TIMEOUT, &data);
if (data != NULL)
{
CFStringAppendFormat(newDevID, NULL, CFSTR("SERN:%@;"), deviceSerial);
CFStringAppendFormat(newDevID, NULL, CFSTR("SERN:%@;"), data);
CFRelease(data);
}
}
@@ -1653,21 +1641,6 @@ static OSStatus copy_deviceid(classdriver_t **classdriver,
{
*deviceID = devID;
}
if (*deviceID == NULL)
return err;
/* Remove special characters from the serial number */
CFRange range = (deviceSerial != NULL ? CFStringFind(deviceSerial, CFSTR("+"), 0) : CFRangeMake(0, 0));
if (range.length == 1) {
range = CFStringFind(*deviceID, deviceSerial, 0);
CFMutableStringRef deviceIDString = CFStringCreateMutableCopy(NULL, 0, *deviceID);
CFStringFindAndReplace(deviceIDString, CFSTR("+"), CFSTR(""), range, 0);
CFRelease(*deviceID);
*deviceID = deviceIDString;
}
release_deviceinfo(&deviceMake, &deviceModel, &deviceSerial);
return err;
@@ -1712,7 +1685,7 @@ static void copy_devicestring(io_service_t usbInterface,
kr = load_classdriver(NULL, interface, &klassDriver);
if (kr == kIOReturnSuccess && klassDriver != NULL)
copy_deviceid(klassDriver, deviceID);
kr = copy_deviceid(klassDriver, deviceID);
unload_classdriver(&klassDriver);
@@ -1955,8 +1928,6 @@ static void run_legacy_backend(int argc,
if (!usb_legacy_status)
{
log_usb_class_driver(IS_NOT_64BIT);
/*
* Setup a SIGTERM handler then block it before forking...
*/
@@ -2123,32 +2094,6 @@ sigterm_handler(int sig) /* I - Signal */
}
/*
* 'sigquit_handler()' - SIGQUIT handler.
*/
static void sigquit_handler(int sig, siginfo_t *si, void *unused)
{
char *path;
char pathbuf[PROC_PIDPATHINFO_MAXSIZE];
static char msgbuf[256] = "";
(void)sig;
(void)unused;
if (proc_pidpath(si->si_pid, pathbuf, sizeof(pathbuf)) > 0 &&
(path = basename(pathbuf)) != NULL)
snprintf(msgbuf, sizeof(msgbuf), "SIGQUIT sent by %s(%d)", path, (int)si->si_pid);
else
snprintf(msgbuf, sizeof(msgbuf), "SIGQUIT sent by PID %d", (int)si->si_pid);
CRSetCrashLogMessage(msgbuf);
abort();
}
#ifdef PARSE_PS_ERRORS
/*
* 'next_line()' - Find the next line in a buffer.
@@ -2219,7 +2164,7 @@ static void parse_pserror(char *sockBuffer,
}
/* move everything over... */
strlcpy(gErrorBuffer, pLineEnd, sizeof(gErrorBuffer));
strcpy(gErrorBuffer, pLineEnd);
gErrorBufferPtr = gErrorBuffer;
pLineEnd = (char *)next_line((const char *)gErrorBuffer);
}
@@ -2319,32 +2264,6 @@ static void get_device_id(cups_sc_status_t *status,
}
static void
log_usb_class_driver(int is_64bit) /* I - Is the USB class driver 64-bit? */
{
/*
* Report the usage of legacy USB class drivers to Apple if the user opts into providing
* feedback to Apple...
*/
aslmsg aslm = asl_new(ASL_TYPE_MSG);
if (aslm)
{
ppd_file_t *ppd = ppdOpenFile(getenv("PPD"));
const char *make_model = ppd ? ppd->nickname : NULL;
ppd_attr_t *version = ppdFindAttr(ppd, "FileVersion", "");
asl_set(aslm, "com.apple.message.domain", "com.apple.printing.usb.64bit");
asl_set(aslm, "com.apple.message.result", is_64bit ? "yes" : "no");
asl_set(aslm, "com.apple.message.signature", make_model ? make_model : "Unknown");
asl_set(aslm, "com.apple.message.signature2", version ? version->value : "?.?");
asl_set(aslm, "com.apple.message.summarize", "YES");
asl_log(NULL, aslm, ASL_LEVEL_NOTICE, "");
asl_free(aslm);
}
}
/*
* End of "$Id: usb-darwin.c 11670 2014-03-04 14:53:59Z msweet $".
* End of "$Id$".
*/
+222 -1306
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+13 -6
Ver Arquivo
@@ -1,11 +1,11 @@
/*
* "$Id: usb-unix.c 10996 2013-05-29 11:51:34Z msweet $"
* "$Id$"
*
* USB port backend for CUPS.
*
* This file is included from "usb.c" when compiled on UNIX/Linux.
*
* Copyright 2007-2012 by Apple Inc.
* Copyright 2007-2011 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
@@ -128,12 +128,16 @@ print_device(const char *uri, /* I - Device URI */
if (errno == EBUSY)
{
_cupsLangPrintFilter(stderr, "INFO", _("The printer is in use."));
_cupsLangPrintFilter(stderr, "INFO",
_("Printer busy, will retry in 10 seconds."));
sleep(10);
}
else if (errno == ENXIO || errno == EIO || errno == ENOENT ||
errno == ENODEV)
{
_cupsLangPrintFilter(stderr, "INFO",
_("Printer not connected, will retry in 30 "
"seconds."));
sleep(30);
}
else
@@ -257,6 +261,7 @@ list_devices(void)
close(fd);
}
#elif defined(__sgi)
#elif defined(__sun) && defined(ECPPIOC_GETDEVID)
int i; /* Looping var */
int fd; /* File descriptor */
@@ -420,7 +425,8 @@ open_device(const char *uri, /* I - Device URI */
*/
if (busy)
_cupsLangPrintFilter(stderr, "INFO", _("The printer is in use."));
_cupsLangPrintFilter(stderr, "INFO",
_("Printer is busy, will retry in 5 seconds."));
sleep(5);
}
@@ -503,7 +509,8 @@ open_device(const char *uri, /* I - Device URI */
if (busy)
{
_cupsLangPrintFilter(stderr, "INFO", _("The printer is in use."));
_cupsLangPrintFilter(stderr, "INFO",
_("Printer is busy, will retry in 5 seconds."));
sleep(5);
}
}
@@ -612,5 +619,5 @@ side_cb(int print_fd, /* I - Print file */
/*
* End of "$Id: usb-unix.c 10996 2013-05-29 11:51:34Z msweet $".
* End of "$Id$".
*/
+5 -5
Ver Arquivo
@@ -1,9 +1,9 @@
/*
* "$Id: usb.c 10996 2013-05-29 11:51:34Z msweet $"
* "$Id$"
*
* USB port backend for CUPS.
*
* Copyright 2007-2012 by Apple Inc.
* Copyright 2007-2011 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
@@ -55,7 +55,7 @@ int print_device(const char *uri, const char *hostname,
* Include the vendor-specific USB implementation...
*/
#ifdef HAVE_LIBUSB
#ifdef HAVE_USB_H
# include "usb-libusb.c"
#elif defined(__APPLE__)
# include "usb-darwin.c"
@@ -118,7 +118,7 @@ print_device(const char *uri, /* I - Device URI */
return (CUPS_BACKEND_FAILED);
}
#endif /* HAVE_LIBUSB */
#endif /* __APPLE__ */
/*
@@ -260,5 +260,5 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
/*
* End of "$Id: usb.c 10996 2013-05-29 11:51:34Z msweet $".
* End of "$Id$".
*/
+28 -25
Ver Arquivo
@@ -1,25 +1,28 @@
lpc.o: lpc.c ../cups/cups-private.h ../cups/string-private.h ../config.h \
../cups/debug-private.h ../cups/versioning.h ../cups/ipp-private.h \
../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/http-private.h \
../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
lpq.o: lpq.c ../cups/cups-private.h ../cups/string-private.h ../config.h \
../cups/debug-private.h ../cups/versioning.h ../cups/ipp-private.h \
../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/http-private.h \
../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
lpr.o: lpr.c ../cups/cups-private.h ../cups/string-private.h ../config.h \
../cups/debug-private.h ../cups/versioning.h ../cups/ipp-private.h \
../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/http-private.h \
../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
lprm.o: lprm.c ../cups/cups-private.h ../cups/string-private.h \
../config.h ../cups/debug-private.h ../cups/versioning.h \
../cups/ipp-private.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/http-private.h ../cups/md5-private.h \
../cups/language-private.h ../cups/transcode.h ../cups/language.h \
../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
lpc.o: lpc.c ../cups/cups-private.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h ../cups/string-private.h ../config.h \
../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h \
../cups/pwg-private.h ../cups/http-private.h ../cups/md5-private.h \
../cups/ipp-private.h ../cups/language-private.h ../cups/transcode.h \
../cups/thread-private.h
lpq.o: lpq.c ../cups/cups-private.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h ../cups/string-private.h ../config.h \
../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h \
../cups/pwg-private.h ../cups/http-private.h ../cups/md5-private.h \
../cups/ipp-private.h ../cups/language-private.h ../cups/transcode.h \
../cups/thread-private.h
lpr.o: lpr.c ../cups/cups-private.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h ../cups/string-private.h ../config.h \
../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h \
../cups/pwg-private.h ../cups/http-private.h ../cups/md5-private.h \
../cups/ipp-private.h ../cups/language-private.h ../cups/transcode.h \
../cups/thread-private.h
lprm.o: lprm.c ../cups/cups-private.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h ../cups/string-private.h ../config.h \
../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h \
../cups/pwg-private.h ../cups/http-private.h ../cups/md5-private.h \
../cups/ipp-private.h ../cups/language-private.h ../cups/transcode.h \
../cups/thread-private.h
+2 -3
Ver Arquivo
@@ -1,5 +1,5 @@
#
# "$Id: Makefile 10996 2013-05-29 11:51:34Z msweet $"
# "$Id$"
#
# Berkeley commands makefile for CUPS.
#
@@ -88,7 +88,6 @@ install-exec:
$(INSTALL_DIR) $(SYMROOT); \
for file in $(TARGETS); do \
cp $$file $(SYMROOT); \
dsymutil $(SYMROOT)/$$file; \
done \
fi
@@ -164,5 +163,5 @@ include Dependencies
#
# End of "$Id: Makefile 10996 2013-05-29 11:51:34Z msweet $".
# End of "$Id$".
#
+4 -5
Ver Arquivo
@@ -1,9 +1,9 @@
/*
* "$Id: lpc.c 10996 2013-05-29 11:51:34Z msweet $"
* "$Id$"
*
* "lpc" command for CUPS.
*
* Copyright 2007-2012 by Apple Inc.
* Copyright 2007-2010 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
@@ -364,8 +364,7 @@ show_status(http_t *http, /* I - HTTP connection to server */
for (ptr = printer;
*ptr != '\0' && *dptr != '\0' && *ptr == *dptr;
ptr ++, dptr ++)
/* do nothing */;
ptr ++, dptr ++);
if (*ptr == '\0' && (*dptr == '\0' || *dptr == ',' ||
isspace(*dptr & 255)))
@@ -446,5 +445,5 @@ show_status(http_t *http, /* I - HTTP connection to server */
/*
* End of "$Id: lpc.c 10996 2013-05-29 11:51:34Z msweet $".
* End of "$Id$".
*/
+28 -33
Ver Arquivo
@@ -1,9 +1,9 @@
/*
* "$Id: lpq.c 11101 2013-07-08 11:20:33Z msweet $"
* "$Id$"
*
* "lpq" command for CUPS.
*
* Copyright 2007-2013 by Apple Inc.
* Copyright 2007-2011 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
@@ -60,7 +60,8 @@ main(int argc, /* I - Number of command-line arguments */
all, /* All printers */
interval, /* Reporting interval */
longstatus; /* Show file details */
cups_dest_t *named_dest; /* Named destination */
int num_dests; /* Number of destinations */
cups_dest_t *dests; /* Destinations */
_cupsSetLocale(argv);
@@ -76,6 +77,8 @@ main(int argc, /* I - Number of command-line arguments */
interval = 0;
longstatus = 0;
all = 0;
num_dests = 0;
dests = NULL;
for (i = 1; i < argc; i ++)
if (argv[i][0] == '+')
@@ -124,6 +127,7 @@ main(int argc, /* I - Number of command-line arguments */
if (i >= argc)
{
httpClose(http);
cupsFreeDests(num_dests, dests);
usage();
}
@@ -136,14 +140,12 @@ main(int argc, /* I - Number of command-line arguments */
http = connect_server(argv[0], http);
if ((named_dest = cupsGetNamedDest(http, dest, instance)) == NULL)
if (num_dests == 0)
num_dests = cupsGetDests2(http, &dests);
if (cupsGetDest(dest, instance, num_dests, dests) == NULL)
{
if (cupsLastError() == IPP_STATUS_ERROR_BAD_REQUEST ||
cupsLastError() == IPP_STATUS_ERROR_VERSION_NOT_SUPPORTED)
_cupsLangPrintf(stderr,
_("%s: Error - add '/version=1.1' to server "
"name."), argv[0]);
else if (instance)
if (instance)
_cupsLangPrintf(stderr,
_("%s: Error - unknown destination \"%s/%s\"."),
argv[0], dest, instance);
@@ -153,8 +155,6 @@ main(int argc, /* I - Number of command-line arguments */
return (1);
}
cupsFreeDests(1, named_dest);
break;
case 'a' : /* All printers */
@@ -192,6 +192,7 @@ main(int argc, /* I - Number of command-line arguments */
default :
httpClose(http);
cupsFreeDests(num_dests, dests);
usage();
break;
@@ -206,17 +207,15 @@ main(int argc, /* I - Number of command-line arguments */
if (dest == NULL && !all)
{
if ((named_dest = cupsGetNamedDest(http, NULL, NULL)) == NULL)
{
if (cupsLastError() == IPP_STATUS_ERROR_BAD_REQUEST ||
cupsLastError() == IPP_STATUS_ERROR_VERSION_NOT_SUPPORTED)
{
_cupsLangPrintf(stderr,
_("%s: Error - add '/version=1.1' to server name."),
argv[0]);
return (1);
}
if (num_dests == 0)
num_dests = cupsGetDests2(http, &dests);
for (i = 0; i < num_dests; i ++)
if (dests[i].is_default)
dest = dests[i].name;
if (dest == NULL)
{
val = NULL;
if ((dest = getenv("LPDEST")) == NULL)
@@ -232,7 +231,7 @@ main(int argc, /* I - Number of command-line arguments */
else
val = "LPDEST";
if (dest && val)
if (dest && !cupsGetDest(dest, NULL, num_dests, dests))
_cupsLangPrintf(stderr,
_("%s: Error - %s environment variable names "
"non-existent destination \"%s\"."), argv[0], val,
@@ -242,10 +241,9 @@ main(int argc, /* I - Number of command-line arguments */
_("%s: Error - no default destination available."),
argv[0]);
httpClose(http);
cupsFreeDests(num_dests, dests);
return (1);
}
dest = named_dest->name;
}
/*
@@ -272,6 +270,7 @@ main(int argc, /* I - Number of command-line arguments */
* Close the connection to the server and return...
*/
cupsFreeDests(num_dests, dests);
httpClose(http);
return (0);
@@ -372,7 +371,6 @@ show_jobs(const char *command, /* I - Command name */
* attributes-natural-language
* job-uri or printer-uri
* requested-attributes
* requesting-user-name
*/
request = ippNewRequest(id ? IPP_GET_JOB_ATTRIBUTES : IPP_GET_JOBS);
@@ -401,9 +399,6 @@ show_jobs(const char *command, /* I - Command name */
"requesting-user-name", NULL, user);
ippAddBoolean(request, IPP_TAG_OPERATION, "my-jobs", 1);
}
else
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME,
"requesting-user-name", NULL, cupsUser());
ippAddStrings(request, IPP_TAG_OPERATION, IPP_TAG_KEYWORD,
"requested-attributes",
@@ -452,8 +447,8 @@ show_jobs(const char *command, /* I - Command name */
jobpriority = 50;
#endif /* __osf__ */
jobstate = IPP_JOB_PENDING;
jobname = "unknown";
jobuser = "unknown";
jobname = "untitled";
jobuser = NULL;
jobdest = NULL;
jobcopies = 1;
@@ -528,7 +523,7 @@ show_jobs(const char *command, /* I - Command name */
*/
if (jobstate == IPP_JOB_PROCESSING)
strlcpy(rankstr, "active", sizeof(rankstr));
strcpy(rankstr, "active");
else
{
/*
@@ -679,5 +674,5 @@ usage(void)
/*
* End of "$Id: lpq.c 11101 2013-07-08 11:20:33Z msweet $".
* End of "$Id$".
*/
+6 -29
Ver Arquivo
@@ -1,9 +1,9 @@
/*
* "$Id: lpr.c 11101 2013-07-08 11:20:33Z msweet $"
* "$Id$"
*
* "lpr" command for CUPS.
*
* Copyright 2007-2013 by Apple Inc.
* Copyright 2007-2011 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
@@ -61,7 +61,6 @@ main(int argc, /* I - Number of command-line arguments */
for (i = 1; i < argc; i ++)
if (argv[i][0] == '-')
{
switch (ch = argv[i][1])
{
case 'E' : /* Encrypt */
@@ -90,7 +89,7 @@ main(int argc, /* I - Number of command-line arguments */
cupsSetUser(argv[i]);
}
break;
case 'H' : /* Connect to host */
if (argv[i][2] != '\0')
cupsSetServer(argv[i] + 2);
@@ -227,14 +226,6 @@ main(int argc, /* I - Number of command-line arguments */
dest->options[j].value,
num_options, &options);
}
else if (cupsLastError() == IPP_STATUS_ERROR_BAD_REQUEST ||
cupsLastError() == IPP_STATUS_ERROR_VERSION_NOT_SUPPORTED)
{
_cupsLangPrintf(stderr,
_("%s: Error - add '/version=1.1' to server "
"name."), argv[0]);
return (1);
}
break;
case '#' : /* Number of copies */
@@ -284,7 +275,6 @@ main(int argc, /* I - Number of command-line arguments */
argv[i][1]);
return (1);
}
}
else if (num_files < 1000)
{
/*
@@ -330,14 +320,6 @@ main(int argc, /* I - Number of command-line arguments */
dest->options[j].value,
num_options, &options);
}
else if (cupsLastError() == IPP_STATUS_ERROR_BAD_REQUEST ||
cupsLastError() == IPP_STATUS_ERROR_VERSION_NOT_SUPPORTED)
{
_cupsLangPrintf(stderr,
_("%s: Error - add '/version=1.1' to server "
"name."), argv[0]);
return (1);
}
}
if (printer == NULL)
@@ -395,6 +377,7 @@ main(int argc, /* I - Number of command-line arguments */
const char *format; /* Document format */
ssize_t bytes; /* Bytes read */
if (cupsGetOption("raw", num_options, options))
format = CUPS_FORMAT_RAW;
else if ((format = cupsGetOption("document-format", num_options,
@@ -412,17 +395,11 @@ main(int argc, /* I - Number of command-line arguments */
{
_cupsLangPrintf(stderr, _("%s: Error - unable to queue from stdin - %s."),
argv[0], httpStatus(status));
cupsFinishDocument(CUPS_HTTP_DEFAULT, printer);
cupsCancelJob2(CUPS_HTTP_DEFAULT, printer, job_id, 0);
return (1);
}
if (cupsFinishDocument(CUPS_HTTP_DEFAULT, printer) != IPP_OK)
{
_cupsLangPrintf(stderr, "%s: %s", argv[0], cupsLastErrorString());
cupsCancelJob2(CUPS_HTTP_DEFAULT, printer, job_id, 0);
return (1);
}
job_id = 0;
}
if (job_id < 1)
@@ -436,5 +413,5 @@ main(int argc, /* I - Number of command-line arguments */
/*
* End of "$Id: lpr.c 11101 2013-07-08 11:20:33Z msweet $".
* End of "$Id$".
*/
+2 -2
Ver Arquivo
@@ -1,5 +1,5 @@
/*
* "$Id: lprm.c 10996 2013-05-29 11:51:34Z msweet $"
* "$Id$"
*
* "lprm" command for CUPS.
*
@@ -213,5 +213,5 @@ main(int argc, /* I - Number of command-line arguments */
/*
* End of "$Id: lprm.c 10996 2013-05-29 11:51:34Z msweet $".
* End of "$Id$".
*/
+2 -4
Ver Arquivo
@@ -1,5 +1,5 @@
#
# "$Id: Makefile 10996 2013-05-29 11:51:34Z msweet $"
# "$Id$"
#
# CGI makefile for CUPS.
#
@@ -120,7 +120,6 @@ install-exec:
$(INSTALL_DIR) $(SYMROOT); \
for file in $(CGIS); do \
cp $$file $(SYMROOT); \
dsymutil $(SYMROOT)/$$file; \
done \
fi
@@ -155,7 +154,6 @@ install-libs: $(INSTALLSTATIC)
if test "x$(SYMROOT)" != "x"; then \
$(INSTALL_DIR) $(SYMROOT); \
cp $(LIBCUPSCGI) $(SYMROOT); \
dsymutil $(SYMROOT)/$(LIBCUPSCGI); \
fi
installstatic:
@@ -380,5 +378,5 @@ include Dependencies
#
# End of "$Id: Makefile 10996 2013-05-29 11:51:34Z msweet $".
# End of "$Id$".
#
+60 -82
Ver Arquivo
@@ -1,9 +1,9 @@
/*
* "$Id: admin.c 11345 2013-10-18 21:14:52Z msweet $"
* "$Id$"
*
* Administration CGI for CUPS.
*
* Copyright 2007-2012 by Apple Inc.
* Copyright 2007-2011 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
@@ -523,7 +523,7 @@ do_add_rss_subscription(http_t *http) /* I - HTTP connection */
else if (cupsLastError() > IPP_OK_CONFLICT)
{
cgiStartHTML(_("Add RSS Subscription"));
cgiShowIPPError(_("Unable to add RSS subscription"));
cgiShowIPPError(_("Unable to add RSS subscription:"));
}
else
{
@@ -810,8 +810,8 @@ do_am_class(http_t *http, /* I - HTTP connection */
else if (cupsLastError() > IPP_OK_CONFLICT)
{
cgiStartHTML(title);
cgiShowIPPError(modify ? _("Unable to modify class") :
_("Unable to add class"));
cgiShowIPPError(modify ? _("Unable to modify class:") :
_("Unable to add class:"));
}
else
{
@@ -962,13 +962,13 @@ do_am_printer(http_t *http, /* I - HTTP connection */
else if (!_cups_strncasecmp(make, "laserjet", 8) ||
!_cups_strncasecmp(make, "deskjet", 7) ||
!_cups_strncasecmp(make, "designjet", 9))
strlcpy(make, "HP", sizeof(make));
strcpy(make, "HP");
else if (!_cups_strncasecmp(make, "phaser", 6))
strlcpy(make, "Xerox", sizeof(make));
strcpy(make, "Xerox");
else if (!_cups_strncasecmp(make, "stylus", 6))
strlcpy(make, "Epson", sizeof(make));
strcpy(make, "Epson");
else
strlcpy(make, "Generic", sizeof(make));
strcpy(make, "Generic");
if (!cgiGetVariable("CURRENT_MAKE"))
cgiSetVariable("CURRENT_MAKE", make);
@@ -1055,8 +1055,8 @@ do_am_printer(http_t *http, /* I - HTTP connection */
else
{
cgiStartHTML(title);
cgiShowIPPError(modify ? _("Unable to modify printer") :
_("Unable to add printer"));
cgiShowIPPError(modify ? _("Unable to modify printer:") :
_("Unable to add printer:"));
cgiEndHTML();
return;
}
@@ -1317,7 +1317,7 @@ do_am_printer(http_t *http, /* I - HTTP connection */
else
{
cgiStartHTML(title);
cgiShowIPPError(_("Unable to get list of printer drivers"));
cgiShowIPPError(_("Unable to get list of printer drivers:"));
cgiCopyTemplateLang("error.tmpl");
cgiEndHTML();
}
@@ -1348,20 +1348,20 @@ do_am_printer(http_t *http, /* I - HTTP connection */
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri",
NULL, uri);
if (!file)
{
var = cgiGetVariable("PPD_NAME");
if (strcmp(var, "__no_change__"))
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME, "ppd-name",
NULL, var);
}
ippAddString(request, IPP_TAG_PRINTER, IPP_TAG_TEXT, "printer-location",
NULL, cgiGetVariable("PRINTER_LOCATION"));
ippAddString(request, IPP_TAG_PRINTER, IPP_TAG_TEXT, "printer-info",
NULL, cgiGetVariable("PRINTER_INFO"));
if (!file)
{
var = cgiGetVariable("PPD_NAME");
if (strcmp(var, "__no_change__"))
ippAddString(request, IPP_TAG_PRINTER, IPP_TAG_NAME, "ppd-name",
NULL, var);
}
strlcpy(uri, cgiGetVariable("DEVICE_URI"), sizeof(uri));
/*
@@ -1415,8 +1415,8 @@ do_am_printer(http_t *http, /* I - HTTP connection */
else if (cupsLastError() > IPP_OK_CONFLICT)
{
cgiStartHTML(title);
cgiShowIPPError(modify ? _("Unable to modify printer") :
_("Unable to add printer"));
cgiShowIPPError(modify ? _("Unable to modify printer:") :
_("Unable to add printer:"));
}
else if (modify)
{
@@ -1522,7 +1522,7 @@ do_cancel_subscription(http_t *http)/* I - HTTP connection */
else if (cupsLastError() > IPP_OK_CONFLICT)
{
cgiStartHTML(_("Cancel RSS Subscription"));
cgiShowIPPError(_("Unable to cancel RSS subscription"));
cgiShowIPPError(_("Unable to cancel RSS subscription:"));
}
else
{
@@ -1557,8 +1557,6 @@ do_config_server(http_t *http) /* I - HTTP connection */
int advanced, /* Advanced settings shown? */
changed; /* Have settings changed? */
const char *debug_logging, /* DEBUG_LOGGING value */
*preserve_jobs = NULL,
/* PRESERVE_JOBS value */
*remote_admin, /* REMOTE_ADMIN value */
*remote_any, /* REMOTE_ANY value */
*share_printers,/* SHARE_PRINTERS value */
@@ -1613,36 +1611,19 @@ do_config_server(http_t *http) /* I - HTTP connection */
*/
browse_web_if = cgiGetVariable("BROWSE_WEB_IF") ? "Yes" : "No";
preserve_job_history = cgiGetVariable("PRESERVE_JOB_HISTORY") ? "Yes" : "No";
preserve_job_files = cgiGetVariable("PRESERVE_JOB_FILES") ? "Yes" : "No";
max_clients = cgiGetVariable("MAX_CLIENTS");
max_jobs = cgiGetVariable("MAX_JOBS");
max_log_size = cgiGetVariable("MAX_LOG_SIZE");
preserve_jobs = cgiGetVariable("PRESERVE_JOBS");
if (preserve_jobs)
{
max_jobs = cgiGetVariable("MAX_JOBS");
preserve_job_history = cgiGetVariable("PRESERVE_JOB_HISTORY");
preserve_job_files = cgiGetVariable("PRESERVE_JOB_FILES");
if (!max_jobs || atoi(max_jobs) < 0)
max_jobs = "500";
if (!preserve_job_history)
preserve_job_history = "On";
if (!preserve_job_files)
preserve_job_files = "1d";
}
else
{
max_jobs = "0";
preserve_job_history = "No";
preserve_job_files = "No";
}
if (!max_clients || atoi(max_clients) <= 0)
max_clients = "100";
if (!max_log_size || atoi(max_log_size) <= 0.0)
if (!max_jobs || atoi(max_jobs) <= 0)
max_jobs = "500";
if (!max_log_size || atof(max_log_size) <= 0.0)
max_log_size = "1m";
}
@@ -1654,7 +1635,7 @@ do_config_server(http_t *http) /* I - HTTP connection */
{
cgiStartHTML(cgiText(_("Change Settings")));
cgiSetVariable("MESSAGE",
cgiText(_("Unable to change server settings")));
cgiText(_("Unable to change server settings:")));
cgiSetVariable("ERROR", cupsLastErrorString());
cgiCopyTemplateLang("error.tmpl");
cgiEndHTML();
@@ -1693,7 +1674,7 @@ do_config_server(http_t *http) /* I - HTTP connection */
if ((current_preserve_job_files = cupsGetOption("PreserveJobFiles",
num_settings,
settings)) == NULL)
current_preserve_job_files = "1d";
current_preserve_job_files = "No";
if ((current_max_clients = cupsGetOption("MaxClients", num_settings,
settings)) == NULL)
@@ -1796,7 +1777,7 @@ do_config_server(http_t *http) /* I - HTTP connection */
cgiStartHTML(cgiText(_("Change Settings")));
cgiSetVariable("MESSAGE",
cgiText(_("Unable to change server settings")));
cgiText(_("Unable to change server settings:")));
cgiSetVariable("ERROR", cupsLastErrorString());
cgiCopyTemplateLang("error.tmpl");
}
@@ -1847,7 +1828,7 @@ do_config_server(http_t *http) /* I - HTTP connection */
if ((tempfd = cupsTempFd(tempfile, sizeof(tempfile))) < 0)
{
cgiStartHTML(cgiText(_("Edit Configuration File")));
cgiSetVariable("MESSAGE", cgiText(_("Unable to create temporary file")));
cgiSetVariable("MESSAGE", cgiText(_("Unable to create temporary file:")));
cgiSetVariable("ERROR", strerror(errno));
cgiCopyTemplateLang("error.tmpl");
cgiEndHTML();
@@ -1859,7 +1840,7 @@ do_config_server(http_t *http) /* I - HTTP connection */
if ((temp = cupsFileOpenFd(tempfd, "w")) == NULL)
{
cgiStartHTML(cgiText(_("Edit Configuration File")));
cgiSetVariable("MESSAGE", cgiText(_("Unable to create temporary file")));
cgiSetVariable("MESSAGE", cgiText(_("Unable to create temporary file:")));
cgiSetVariable("ERROR", strerror(errno));
cgiCopyTemplateLang("error.tmpl");
cgiEndHTML();
@@ -1909,7 +1890,7 @@ do_config_server(http_t *http) /* I - HTTP connection */
else if (status != HTTP_CREATED)
{
cgiSetVariable("MESSAGE",
cgiText(_("Unable to upload cupsd.conf file")));
cgiText(_("Unable to upload cupsd.conf file:")));
cgiSetVariable("ERROR", httpStatus(status));
cgiStartHTML(cgiText(_("Edit Configuration File")));
@@ -1956,7 +1937,7 @@ do_config_server(http_t *http) /* I - HTTP connection */
{
cgiStartHTML(cgiText(_("Edit Configuration File")));
cgiSetVariable("MESSAGE",
cgiText(_("Unable to access cupsd.conf file")));
cgiText(_("Unable to access cupsd.conf file:")));
cgiSetVariable("ERROR", strerror(errno));
cgiCopyTemplateLang("error.tmpl");
cgiEndHTML();
@@ -1969,7 +1950,7 @@ do_config_server(http_t *http) /* I - HTTP connection */
{
cgiStartHTML(cgiText(_("Edit Configuration File")));
cgiSetVariable("MESSAGE",
cgiText(_("Unable to access cupsd.conf file")));
cgiText(_("Unable to access cupsd.conf file:")));
cgiSetVariable("ERROR",
cgiText(_("Unable to edit cupsd.conf files larger than "
"1MB")));
@@ -1993,7 +1974,7 @@ do_config_server(http_t *http) /* I - HTTP connection */
cgiStartHTML(cgiText(_("Edit Configuration File")));
cgiSetVariable("MESSAGE",
cgiText(_("Unable to access cupsd.conf file")));
cgiText(_("Unable to access cupsd.conf file:")));
cgiSetVariable("ERROR", strerror(errno));
cgiCopyTemplateLang("error.tmpl");
cgiEndHTML();
@@ -2150,7 +2131,7 @@ do_delete_class(http_t *http) /* I - HTTP connection */
cgiStartHTML(cgiText(_("Delete Class")));
if (cupsLastError() > IPP_OK_CONFLICT)
cgiShowIPPError(_("Unable to delete class"));
cgiShowIPPError(_("Unable to delete class:"));
else
cgiCopyTemplateLang("class-deleted.tmpl");
@@ -2235,7 +2216,7 @@ do_delete_printer(http_t *http) /* I - HTTP connection */
cgiStartHTML(cgiText(_("Delete Printer")));
if (cupsLastError() > IPP_OK_CONFLICT)
cgiShowIPPError(_("Unable to delete printer"));
cgiShowIPPError(_("Unable to delete printer:"));
else
cgiCopyTemplateLang("printer-deleted.tmpl");
@@ -2639,6 +2620,10 @@ do_menu(http_t *http) /* I - HTTP connection */
#endif /* HAVE_GSSAPI */
cgiSetVariable("KERBEROS", "");
#ifdef HAVE_DNSSD
cgiSetVariable("HAVE_DNSSD", "1");
#endif /* HAVE_DNSSD */
if ((val = cupsGetOption("BrowseWebIF", num_settings,
settings)) == NULL)
val = "No";
@@ -2651,25 +2636,18 @@ do_menu(http_t *http) /* I - HTTP connection */
settings)) == NULL)
val = "Yes";
if (val &&
(!_cups_strcasecmp(val, "0") || !_cups_strcasecmp(val, "no") ||
!_cups_strcasecmp(val, "off") || !_cups_strcasecmp(val, "false") ||
!_cups_strcasecmp(val, "disabled")))
if (!_cups_strcasecmp(val, "yes") || !_cups_strcasecmp(val, "on") ||
!_cups_strcasecmp(val, "true"))
{
cgiSetVariable("PRESERVE_JOB_HISTORY", "0");
cgiSetVariable("PRESERVE_JOB_FILES", "0");
}
else
{
cgiSetVariable("PRESERVE_JOBS", "CHECKED");
cgiSetVariable("PRESERVE_JOB_HISTORY", val);
cgiSetVariable("PRESERVE_JOB_HISTORY", "CHECKED");
if ((val = cupsGetOption("PreserveJobFiles", num_settings,
settings)) == NULL)
val = "1d";
cgiSetVariable("PRESERVE_JOB_FILES", val);
val = "No";
if (!_cups_strcasecmp(val, "yes") || !_cups_strcasecmp(val, "on") ||
!_cups_strcasecmp(val, "true"))
cgiSetVariable("PRESERVE_JOB_FILES", "CHECKED");
}
if ((val = cupsGetOption("MaxClients", num_settings, settings)) == NULL)
@@ -2837,7 +2815,7 @@ do_set_allowed_users(http_t *http) /* I - HTTP connection */
exit(0);
}
else if (cupsLastError() > IPP_OK_CONFLICT)
cgiShowIPPError(_("Unable to get printer attributes"));
cgiShowIPPError(_("Unable to get printer attributes:"));
else
cgiCopyTemplateLang("users.tmpl");
@@ -2987,7 +2965,7 @@ do_set_allowed_users(http_t *http) /* I - HTTP connection */
else if (cupsLastError() > IPP_OK_CONFLICT)
{
cgiStartHTML(cgiText(_("Set Allowed Users")));
cgiShowIPPError(_("Unable to change printer"));
cgiShowIPPError(_("Unable to change printer:"));
}
else
{
@@ -3074,7 +3052,7 @@ do_set_default(http_t *http) /* I - HTTP connection */
else if (cupsLastError() > IPP_OK_CONFLICT)
{
cgiStartHTML(title);
cgiShowIPPError(_("Unable to set server default"));
cgiShowIPPError(_("Unable to set server default:"));
}
else
{
@@ -3183,7 +3161,7 @@ do_set_options(http_t *http, /* I - HTTP connection */
if ((ppd = ppdOpenFile(filename)) == NULL)
{
cgiSetVariable("ERROR", ppdErrorString(ppdLastError(&i)));
cgiSetVariable("MESSAGE", cgiText(_("Unable to open PPD file")));
cgiSetVariable("MESSAGE", cgiText(_("Unable to open PPD file:")));
cgiStartHTML(title);
cgiCopyTemplateLang("error.tmpl");
cgiEndHTML();
@@ -3804,7 +3782,7 @@ do_set_options(http_t *http, /* I - HTTP connection */
else if (cupsLastError() > IPP_OK_CONFLICT)
{
cgiStartHTML(title);
cgiShowIPPError(_("Unable to set options"));
cgiShowIPPError(_("Unable to set options:"));
}
else
{
@@ -3903,7 +3881,7 @@ do_set_sharing(http_t *http) /* I - HTTP connection */
else if (cupsLastError() > IPP_OK_CONFLICT)
{
cgiStartHTML(cgiText(_("Set Publishing")));
cgiShowIPPError(_("Unable to change printer-is-shared attribute"));
cgiShowIPPError(_("Unable to change printer-is-shared attribute:"));
}
else
{
@@ -4187,7 +4165,7 @@ get_option_value(
if (bufptr == buffer || (bufend - bufptr) < 2)
return (NULL);
memcpy(bufptr, "}", 2);
strcpy(bufptr, "}");
}
return (buffer);
@@ -4218,5 +4196,5 @@ get_points(double number, /* I - Original number */
/*
* End of "$Id: admin.c 11345 2013-10-18 21:14:52Z msweet $".
* End of "$Id$".
*/
+2 -2
Ver Arquivo
@@ -1,5 +1,5 @@
/*
* "$Id: cgi-private.h 10996 2013-05-29 11:51:34Z msweet $"
* "$Id$"
*
* Private CGI definitions for CUPS.
*
@@ -32,5 +32,5 @@
/*
* End of "$Id: cgi-private.h 10996 2013-05-29 11:51:34Z msweet $".
* End of "$Id$".
*/
+2 -2
Ver Arquivo
@@ -1,5 +1,5 @@
/*
* "$Id: cgi.h 10996 2013-05-29 11:51:34Z msweet $"
* "$Id$"
*
* CGI support library definitions for CUPS.
*
@@ -115,5 +115,5 @@ extern const char *cgiText(const char *message);
#endif /* !_CUPS_CGI_H_ */
/*
* End of "$Id: cgi.h 10996 2013-05-29 11:51:34Z msweet $".
* End of "$Id$".
*/
+7 -7
Ver Arquivo
@@ -1,9 +1,9 @@
/*
* "$Id: classes.c 10996 2013-05-29 11:51:34Z msweet $"
* "$Id$"
*
* Class status CGI for CUPS.
*
* Copyright 2007-2012 by Apple Inc.
* Copyright 2007-2011 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
@@ -257,7 +257,7 @@ do_class_op(http_t *http, /* I - HTTP connection */
else if (cupsLastError() > IPP_OK_CONFLICT)
{
cgiStartHTML(title);
cgiShowIPPError(_("Unable to do maintenance command"));
cgiShowIPPError(_("Unable to do maintenance command:"));
}
else
{
@@ -380,7 +380,7 @@ show_all_classes(http_t *http, /* I - Connection to server */
sprintf(val, "%d", count);
cgiSetVariable("TOTAL", val);
if ((var = cgiGetVariable("ORDER")) != NULL && *var)
if ((var = cgiGetVariable("ORDER")) != NULL)
ascending = !_cups_strcasecmp(var, "asc");
else
ascending = 1;
@@ -447,7 +447,7 @@ show_all_classes(http_t *http, /* I - Connection to server */
* Show the error...
*/
cgiShowIPPError(_("Unable to get class list"));
cgiShowIPPError(_("Unable to get class list:"));
}
cgiEndHTML();
@@ -546,7 +546,7 @@ show_class(http_t *http, /* I - Connection to server */
*/
cgiStartHTML(pclass);
cgiShowIPPError(_("Unable to get class status"));
cgiShowIPPError(_("Unable to get class status:"));
}
cgiEndHTML();
@@ -554,5 +554,5 @@ show_class(http_t *http, /* I - Connection to server */
/*
* End of "$Id: classes.c 10996 2013-05-29 11:51:34Z msweet $".
* End of "$Id$".
*/
+4 -4
Ver Arquivo
@@ -1,9 +1,9 @@
/*
* "$Id: help-index.c 10996 2013-05-29 11:51:34Z msweet $"
* "$Id$"
*
* Online help index routines for CUPS.
*
* Copyright 2007-2012 by Apple Inc.
* Copyright 2007-2011 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
@@ -910,7 +910,7 @@ help_load_file(
node = NULL;
offset = 0;
strlcpy(section, "Other", sizeof(section));
strcpy(section, "Other");
while (cupsFileGets(fp, line, sizeof(line)))
{
@@ -1324,5 +1324,5 @@ help_sort_words(help_word_t *w1, /* I - Second word */
/*
* End of "$Id: help-index.c 10996 2013-05-29 11:51:34Z msweet $".
* End of "$Id$".
*/
+2 -2
Ver Arquivo
@@ -1,5 +1,5 @@
/*
* "$Id: help-index.h 10996 2013-05-29 11:51:34Z msweet $"
* "$Id$"
*
* Online help index definitions for CUPS.
*
@@ -83,5 +83,5 @@ extern help_index_t *helpSearchIndex(help_index_t *hi, const char *query,
#endif /* !_CUPS_HELP_INDEX_H_ */
/*
* End of "$Id: help-index.h 10996 2013-05-29 11:51:34Z msweet $".
* End of "$Id$".
*/
+12 -17
Ver Arquivo
@@ -1,5 +1,5 @@
/*
* "$Id: help.c 10996 2013-05-29 11:51:34Z msweet $"
* "$Id$"
*
* Online help CGI for CUPS.
*
@@ -39,8 +39,7 @@ main(int argc, /* I - Number of command-line arguments */
const char *query; /* Search query */
const char *cache_dir; /* CUPS_CACHEDIR environment variable */
const char *docroot; /* CUPS_DOCROOT environment variable */
const char *helpfile, /* Current help file */
*helptitle = NULL; /* Current help title */
const char *helpfile; /* Current help file */
const char *topic; /* Current topic */
char topic_data[1024]; /* Topic form data */
const char *section; /* Current section */
@@ -89,7 +88,7 @@ main(int argc, /* I - Number of command-line arguments */
perror(filename);
cgiStartHTML(cgiText(_("Online Help")));
cgiSetVariable("ERROR", cgiText(_("Unable to load help index.")));
cgiSetVariable("ERROR", "Unable to load help index!");
cgiCopyTemplateLang("error.tmpl");
cgiEndHTML();
@@ -130,7 +129,7 @@ main(int argc, /* I - Number of command-line arguments */
perror(filename);
cgiStartHTML(cgiText(_("Online Help")));
cgiSetVariable("ERROR", cgiText(_("Unable to access help file.")));
cgiSetVariable("ERROR", "Unable to access help file!");
cgiCopyTemplateLang("error.tmpl");
cgiEndHTML();
@@ -140,7 +139,7 @@ main(int argc, /* I - Number of command-line arguments */
if ((n = helpFindNode(hi, helpfile, NULL)) == NULL)
{
cgiStartHTML(cgiText(_("Online Help")));
cgiSetVariable("ERROR", cgiText(_("Help file not in index.")));
cgiSetVariable("ERROR", "Help file not in index!");
cgiCopyTemplateLang("error.tmpl");
cgiEndHTML();
@@ -148,11 +147,12 @@ main(int argc, /* I - Number of command-line arguments */
}
/*
* Save the page title and help file...
* Set the page title and save the help file...
*/
helptitle = n->text;
topic = n->section;
cgiSetVariable("HELPFILE", helpfile);
cgiSetVariable("HELPTITLE", n->text);
cgiSetVariable("TOPIC", n->section);
/*
* Send a standard page header...
@@ -170,8 +170,6 @@ main(int argc, /* I - Number of command-line arguments */
*/
cgiStartHTML(cgiText(_("Online Help")));
topic = cgiGetVariable("TOPIC");
}
/*
@@ -182,6 +180,7 @@ main(int argc, /* I - Number of command-line arguments */
cgiSetVariable("QUERY", "");
query = cgiGetVariable("QUERY");
topic = cgiGetVariable("TOPIC");
si = helpSearchIndex(hi, query, topic, helpfile);
cgiClearVariables();
@@ -189,10 +188,6 @@ main(int argc, /* I - Number of command-line arguments */
cgiSetVariable("QUERY", query);
if (topic)
cgiSetVariable("TOPIC", topic);
if (helpfile)
cgiSetVariable("HELPFILE", helpfile);
if (helptitle)
cgiSetVariable("HELPTITLE", helptitle);
fprintf(stderr, "DEBUG: query=\"%s\", topic=\"%s\"\n",
query ? query : "(null)", topic ? topic : "(null)");
@@ -361,7 +356,7 @@ main(int argc, /* I - Number of command-line arguments */
else
{
perror(filename);
cgiSetVariable("ERROR", cgiText(_("Unable to open help file.")));
cgiSetVariable("ERROR", "Unable to open help file.");
cgiCopyTemplateLang("error.tmpl");
}
}
@@ -393,5 +388,5 @@ main(int argc, /* I - Number of command-line arguments */
/*
* End of "$Id: help.c 10996 2013-05-29 11:51:34Z msweet $".
* End of "$Id$".
*/
+2 -2
Ver Arquivo
@@ -1,5 +1,5 @@
/*
* "$Id: html.c 10996 2013-05-29 11:51:34Z msweet $"
* "$Id$"
*
* HTML support functions for CUPS.
*
@@ -235,5 +235,5 @@ cgi_null_passwd(const char *prompt) /* I - Prompt string (unused) */
/*
* End of "$Id: html.c 10996 2013-05-29 11:51:34Z msweet $".
* End of "$Id$".
*/
+43 -20
Ver Arquivo
@@ -1,16 +1,31 @@
/*
* "$Id: ipp-var.c 11890 2014-05-22 13:59:21Z msweet $"
* "$Id$"
*
* CGI <-> IPP variable routines for CUPS.
* CGI <-> IPP variable routines for CUPS.
*
* Copyright 2007-2014 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products.
* Copyright 2007-2011 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Apple Inc. and are protected by Federal copyright
* law. Distribution and use rights are outlined in the file "LICENSE.txt"
* 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/".
* These coded instructions, statements, and computer programs are the
* property of Apple Inc. and are protected by Federal copyright
* law. Distribution and use rights are outlined in the file "LICENSE.txt"
* 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/".
*
* Contents:
*
* cgiGetAttributes() - Get the list of attributes that are needed by the
* template file.
* cgiGetIPPObjects() - Get the objects in an IPP response.
* cgiMoveJobs() - Move one or more jobs.
* cgiPrintCommand() - Print a CUPS command job.
* cgiPrintTestPage() - Print a test page.
* cgiRewriteURL() - Rewrite a printer URI into a web browser URL...
* cgiSetIPPObjectVars() - Set CGI variables from an IPP object.
* cgiSetIPPVars() - Set CGI variables from an IPP response.
* cgiShowIPPError() - Show the last IPP error message.
* cgiShowJobs() - Show print jobs.
* cgiText() - Return localized text.
*/
/*
@@ -114,7 +129,7 @@ cgiGetAttributes(ipp_t *request, /* I - IPP request */
*nameptr = '\0';
if (!strncmp(name, "printer_state_history", 21))
strlcpy(name, "printer_state_history", sizeof(name));
strcpy(name, "printer_state_history");
/*
* Possibly add it to the list of attributes...
@@ -539,7 +554,7 @@ cgiPrintCommand(http_t *http, /* I - Connection to server */
ipp_t *request, /* Get-Job-Attributes request */
*response; /* Get-Job-Attributes response */
ipp_attribute_t *attr; /* Current job attribute */
static const char * const job_attrs[] =/* Job attributes we want */
static const char const *job_attrs[] =/* Job attributes we want */
{
"job-state",
"job-printer-state-message"
@@ -777,7 +792,7 @@ cgiPrintTestPage(http_t *http, /* I - Connection to server */
cgiStartHTML(cgiText(_("Print Test Page")));
if (cupsLastError() > IPP_OK_CONFLICT)
cgiShowIPPError(_("Unable to print test page"));
cgiShowIPPError(_("Unable to print test page:"));
else
{
cgiSetVariable("PRINTER_NAME", dest);
@@ -943,6 +958,7 @@ cgiSetIPPObjectVars(
*nameptr, /* Pointer into name */
value[16384], /* Value(s) */
*valptr; /* Pointer into value */
struct tm *date; /* Date information */
fprintf(stderr, "DEBUG2: cgiSetIPPObjectVars(obj=%p, prefix=\"%s\", "
@@ -1170,9 +1186,17 @@ cgiSetIPPObjectVars(
case IPP_TAG_INTEGER :
case IPP_TAG_ENUM :
if (strncmp(name, "time_at_", 8) == 0)
_cupsStrDate(valptr, sizeof(value) - (size_t)(valptr - value), (time_t)ippGetInteger(attr, i));
{
time_t t; /* Temporary time value */
t = (time_t)attr->values[i].integer;
date = localtime(&t);
strftime(valptr, sizeof(value) - (valptr - value), "%c", date);
}
else
snprintf(valptr, sizeof(value) - (size_t)(valptr - value), "%d", ippGetInteger(attr, i));
snprintf(valptr, sizeof(value) - (valptr - value),
"%d", attr->values[i].integer);
break;
case IPP_TAG_BOOLEAN :
@@ -1195,7 +1219,7 @@ cgiSetIPPObjectVars(
"%dx%d%s", attr->values[i].resolution.xres,
attr->values[i].resolution.yres,
attr->values[i].resolution.units == IPP_RES_PER_INCH ?
"dpi" : "dpcm");
"dpi" : "dpc");
break;
case IPP_TAG_URI :
@@ -1408,7 +1432,7 @@ cgiShowJobs(http_t *http, /* I - Connection to server */
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri", NULL,
"ipp://localhost/");
if ((which_jobs = cgiGetVariable("which_jobs")) != NULL && *which_jobs)
if ((which_jobs = cgiGetVariable("which_jobs")) != NULL)
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_KEYWORD, "which-jobs",
NULL, which_jobs);
@@ -1456,11 +1480,10 @@ cgiShowJobs(http_t *http, /* I - Connection to server */
if (first < 0)
first = 0;
if ((var = cgiGetVariable("ORDER")) != NULL && *var)
if ((var = cgiGetVariable("ORDER")) != NULL)
ascending = !_cups_strcasecmp(var, "asc");
else
ascending = !which_jobs || !*which_jobs ||
!_cups_strcasecmp(which_jobs, "not-completed");
ascending = !which_jobs || !_cups_strcasecmp(which_jobs, "not-completed");
section = cgiGetVariable("SECTION");
@@ -1565,5 +1588,5 @@ cgiText(const char *message) /* I - Message */
/*
* End of "$Id: ipp-var.c 11890 2014-05-22 13:59:21Z msweet $".
* End of "$Id$".
*/
+5 -5
Ver Arquivo
@@ -1,9 +1,9 @@
/*
* "$Id: jobs.c 10996 2013-05-29 11:51:34Z msweet $"
* "$Id$"
*
* Job status CGI for CUPS.
*
* Copyright 2007-2012 by Apple Inc.
* Copyright 2007-2011 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
@@ -182,7 +182,7 @@ do_job_op(http_t *http, /* I - HTTP connection */
char url[1024]; /* Encoded URL */
strlcpy(url, "5;URL=", sizeof(url));
strcpy(url, "5;URL=");
cgiFormEncode(url + 6, getenv("HTTP_REFERER"), sizeof(url) - 6);
cgiSetVariable("refresh_page", url);
}
@@ -195,7 +195,7 @@ do_job_op(http_t *http, /* I - HTTP connection */
cgiStartHTML(cgiText(_("Jobs")));
if (cupsLastError() > IPP_OK_CONFLICT)
cgiShowIPPError(_("Job operation failed"));
cgiShowIPPError(_("Job operation failed:"));
else if (op == IPP_CANCEL_JOB)
cgiCopyTemplateLang("job-cancel.tmpl");
else if (op == IPP_HOLD_JOB)
@@ -210,5 +210,5 @@ do_job_op(http_t *http, /* I - HTTP connection */
/*
* End of "$Id: jobs.c 10996 2013-05-29 11:51:34Z msweet $".
* End of "$Id$".
*/
+4 -4
Ver Arquivo
@@ -1,9 +1,9 @@
/*
* "$Id: makedocset.c 3833 2012-05-23 22:51:18Z msweet $"
* "$Id$"
*
* Xcode documentation set generator.
*
* Copyright 2007-2012 by Apple Inc.
* Copyright 2007-2011 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
@@ -31,7 +31,7 @@
* Include necessary headers...
*/
#include "cgi-private.h"
#include "cgi.h"
#include <errno.h>
@@ -482,5 +482,5 @@ write_nodes(const char *path, /* I - File to write */
/*
* End of "$Id: makedocset.c 3833 2012-05-23 22:51:18Z msweet $".
* End of "$Id$".
*/
+7 -7
Ver Arquivo
@@ -1,9 +1,9 @@
/*
* "$Id: printers.c 10996 2013-05-29 11:51:34Z msweet $"
* "$Id$"
*
* Printer status CGI for CUPS.
*
* Copyright 2007-2012 by Apple Inc.
* Copyright 2007-2011 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
@@ -266,7 +266,7 @@ do_printer_op(http_t *http, /* I - HTTP connection */
else if (cupsLastError() > IPP_OK_CONFLICT)
{
cgiStartHTML(title);
cgiShowIPPError(_("Unable to do maintenance command"));
cgiShowIPPError(_("Unable to do maintenance command:"));
}
else
{
@@ -397,7 +397,7 @@ show_all_printers(http_t *http, /* I - Connection to server */
sprintf(val, "%d", count);
cgiSetVariable("TOTAL", val);
if ((var = cgiGetVariable("ORDER")) != NULL && *var)
if ((var = cgiGetVariable("ORDER")) != NULL)
ascending = !_cups_strcasecmp(var, "asc");
else
ascending = 1;
@@ -464,7 +464,7 @@ show_all_printers(http_t *http, /* I - Connection to server */
* Show the error...
*/
cgiShowIPPError(_("Unable to get printer list"));
cgiShowIPPError(_("Unable to get printer list:"));
}
cgiEndHTML();
@@ -566,7 +566,7 @@ show_printer(http_t *http, /* I - Connection to server */
*/
cgiStartHTML(printer);
cgiShowIPPError(_("Unable to get printer status"));
cgiShowIPPError(_("Unable to get printer status:"));
}
cgiEndHTML();
@@ -574,5 +574,5 @@ show_printer(http_t *http, /* I - Connection to server */
/*
* End of "$Id: printers.c 10996 2013-05-29 11:51:34Z msweet $".
* End of "$Id$".
*/
+9 -9
Ver Arquivo
@@ -1,9 +1,9 @@
/*
* "$Id: search.c 10996 2013-05-29 11:51:34Z msweet $"
* "$Id$"
*
* Search routines for CUPS.
*
* Copyright 2007-2012 by Apple Inc.
* Copyright 2007-2011 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
@@ -208,7 +208,7 @@ cgiCompileSearch(const char *query) /* I - Query string */
* Add the prefix string...
*/
memcpy(sptr, prefix, strlen(prefix) + 1);
strcpy(sptr, prefix);
sptr += strlen(sptr);
/*
@@ -249,16 +249,16 @@ cgiCompileSearch(const char *query) /* I - Query string */
return (NULL);
}
memcpy(sptr, ".*|.*", 6);
strcpy(sptr, ".*|.*");
sptr += 5;
memcpy(sptr, lword2, strlen(lword2) + 1);
strcpy(sptr, lword2);
sptr += strlen(sptr);
memcpy(sptr, ".*", 3);
strcpy(sptr, ".*");
sptr += 2;
memcpy(sptr, lword, strlen(lword) + 1);
strcpy(sptr, lword);
sptr += strlen(sptr);
free(lword);
@@ -287,7 +287,7 @@ cgiCompileSearch(const char *query) /* I - Query string */
free(lword);
if (sptr > s)
memcpy(sptr, ".*", 3);
strcpy(sptr, ".*");
else
{
/*
@@ -377,5 +377,5 @@ cgiFreeSearch(void *search) /* I - Search context */
/*
* End of "$Id: search.c 10996 2013-05-29 11:51:34Z msweet $".
* End of "$Id$".
*/
+3 -3
Ver Arquivo
@@ -1,5 +1,5 @@
/*
* "$Id: template.c 11688 2014-03-05 21:11:32Z msweet $"
* "$Id$"
*
* CGI template function.
*
@@ -553,7 +553,7 @@ cgi_copy(FILE *out, /* I - Output file */
if (regcomp(&re, compare, REG_EXTENDED | REG_ICASE))
{
fprintf(stderr,
"ERROR: Unable to compile regular expression \"%s\"!\n",
"ERROR: Unable to compile regular expresion \"%s\"!\n",
compare);
result = 0;
}
@@ -729,5 +729,5 @@ cgi_puturi(const char *s, /* I - String to output */
/*
* End of "$Id: template.c 11688 2014-03-05 21:11:32Z msweet $".
* End of "$Id$".
*/
+2 -2
Ver Arquivo
@@ -1,5 +1,5 @@
/*
* "$Id: testcgi.c 10996 2013-05-29 11:51:34Z msweet $"
* "$Id$"
*
* CGI test program for CUPS.
*
@@ -71,5 +71,5 @@ main(int argc, /* I - Number of command-line arguments */
/*
* End of "$Id: testcgi.c 10996 2013-05-29 11:51:34Z msweet $".
* End of "$Id$".
*/
+2 -2
Ver Arquivo
@@ -1,5 +1,5 @@
/*
* "$Id: testhi.c 10996 2013-05-29 11:51:34Z msweet $"
* "$Id$"
*
* Help index test program for CUPS.
*
@@ -109,5 +109,5 @@ list_nodes(const char *title, /* I - Title string */
/*
* End of "$Id: testhi.c 10996 2013-05-29 11:51:34Z msweet $".
* End of "$Id$".
*/
+2 -2
Ver Arquivo
@@ -1,5 +1,5 @@
/*
* "$Id: testtemplate.c 10996 2013-05-29 11:51:34Z msweet $"
* "$Id$"
*
* CGI template test program for CUPS.
*
@@ -99,5 +99,5 @@ main(int argc, /* I - Number of command-line arguments */
/*
* End of "$Id: testtemplate.c 10996 2013-05-29 11:51:34Z msweet $".
* End of "$Id$".
*/
+2 -8
Ver Arquivo
@@ -1,5 +1,5 @@
/*
* "$Id: var.c 10996 2013-05-29 11:51:34Z msweet $"
* "$Id$"
*
* CGI form variable and array functions for CUPS.
*
@@ -167,8 +167,6 @@ cgiClearVariables(void)
_cgi_var_t *v; /* Current variable */
fputs("DEBUG: cgiClearVariables called.\n", stderr);
for (v = form_vars, i = form_count; i > 0; v ++, i --)
{
_cupsStrFree(v->name);
@@ -403,8 +401,6 @@ cgiSetArray(const char *name, /* I - Name of variable */
if (name == NULL || value == NULL || element < 0 || element > 100000)
return;
fprintf(stderr, "DEBUG: cgiSetArray: %s[%d]=\"%s\"\n", name, element, value);
if ((var = cgi_find_variable(name)) == NULL)
{
cgi_add_variable(name, element, value);
@@ -536,8 +532,6 @@ cgiSetVariable(const char *name, /* I - Name of variable */
if (name == NULL || value == NULL)
return;
fprintf(stderr, "cgiSetVariable: %s=\"%s\"\n", name, value);
if ((var = cgi_find_variable(name)) == NULL)
{
cgi_add_variable(name, 0, value);
@@ -1307,5 +1301,5 @@ cgi_unlink_file(void)
/*
* End of "$Id: var.c 10996 2013-05-29 11:51:34Z msweet $".
* End of "$Id$".
*/
+2 -2
Ver Arquivo
@@ -1,5 +1,5 @@
/*
* "$Id: websearch.c 1531 2009-05-22 21:50:50Z msweet $"
* "$Id$"
*
* Web search program for www.cups.org.
*
@@ -112,5 +112,5 @@ list_nodes(help_index_t *hi, /* I - Help index */
/*
* End of "$Id: websearch.c 1531 2009-05-22 21:50:50Z msweet $".
* End of "$Id$".
*/
+4 -4
Ver Arquivo
@@ -1,9 +1,9 @@
#
# "$Id: Makefile 10996 2013-05-29 11:51:34Z msweet $"
# "$Id$"
#
# Configuration file makefile for CUPS.
#
# Copyright 2007-2012 by Apple Inc.
# Copyright 2007-2011 by Apple Inc.
# Copyright 1993-2006 by Easy Software Products.
#
# These coded instructions, statements, and computer programs are the
@@ -19,7 +19,7 @@ include ../Makedefs
# Config files...
#
KEEP = cups-files.conf cupsd.conf snmp.conf
KEEP = cupsd.conf snmp.conf
REPLACE = mime.convs mime.types
@@ -139,5 +139,5 @@ uninstall:
#
# End of "$Id: Makefile 10996 2013-05-29 11:51:34Z msweet $".
# End of "$Id$".
#
-101
Ver Arquivo
@@ -1,101 +0,0 @@
#
# "$Id: cups-files.conf.in 11201 2013-07-26 21:27:27Z msweet $"
#
# Sample file/directory/user/group configuration file for the CUPS scheduler.
# See "man cups-files.conf" for a complete description of this file.
#
# List of events that are considered fatal errors for the scheduler...
#FatalErrors @CUPS_FATAL_ERRORS@
# Do we call fsync() after writing configuration or status files?
#SyncOnClose No
# Default user and group for filters/backends/helper programs; this cannot be
# any user or group that resolves to ID 0 for security reasons...
#User @CUPS_USER@
#Group @CUPS_GROUP@
# Administrator user group, used to match @SYSTEM in cupsd.conf policy rules...
SystemGroup @CUPS_SYSTEM_GROUPS@
@CUPS_SYSTEM_AUTHKEY@
# User that is substituted for unauthenticated (remote) root accesses...
#RemoteRoot remroot
# Do we allow file: device URIs other than to /dev/null?
#FileDevice No
# Permissions for configuration and log files...
#ConfigFilePerm 0@CUPS_CONFIG_FILE_PERM@
#LogFilePerm 0@CUPS_LOG_FILE_PERM@
# Location of the file logging all access to the scheduler; may be the name
# "syslog". If not an absolute path, the value of ServerRoot is used as the
# root directory. Also see the "AccessLogLevel" directive in cupsd.conf.
AccessLog @CUPS_LOGDIR@/access_log
# Location of cache files used by the scheduler...
#CacheDir @CUPS_CACHEDIR@
# Location of data files used by the scheduler...
#DataDir @CUPS_DATADIR@
# Location of the static web content served by the scheduler...
#DocumentRoot @CUPS_DOCROOT@
# Location of the file logging all messages produced by the scheduler and any
# helper programs; may be the name "syslog". If not an absolute path, the value
# of ServerRoot is used as the root directory. Also see the "LogLevel"
# directive in cupsd.conf.
ErrorLog @CUPS_LOGDIR@/error_log
# Location of fonts used by older print filters...
#FontPath @CUPS_FONTPATH@
# Location of LPD configuration
#LPDConfigFile @CUPS_DEFAULT_LPD_CONFIG_FILE@
# Location of the file logging all pages printed by the scheduler and any
# helper programs; may be the name "syslog". If not an absolute path, the value
# of ServerRoot is used as the root directory. Also see the "PageLogFormat"
# directive in cupsd.conf.
PageLog @CUPS_LOGDIR@/page_log
# Location of the file listing all of the local printers...
#Printcap @CUPS_DEFAULT_PRINTCAP@
# Format of the Printcap file...
#PrintcapFormat bsd
#PrintcapFormat plist
#PrintcapFormat solaris
# Location of all spool files...
#RequestRoot @CUPS_REQUESTS@
# Location of helper programs...
#ServerBin @CUPS_SERVERBIN@
# SSL/TLS certificate for the scheduler...
#ServerCertificate @CUPS_SERVERCERT@
# SSL/TLS private key for the scheduler...
#ServerKey @CUPS_SERVERKEY@
# Location of other configuration files...
#ServerRoot @CUPS_SERVERROOT@
# Location of Samba configuration file...
#SMBConfigFile @CUPS_DEFAULT_SMB_CONFIG_FILE@
# Location of scheduler state files...
#StateDir @CUPS_STATEDIR@
# Location of scheduler/helper temporary files. This directory is emptied on
# scheduler startup and cannot be one of the standard (public) temporary
# directory locations for security reasons...
#TempDir @CUPS_REQUESTS@/tmp
#
# End of "$Id: cups-files.conf.in 11201 2013-07-26 21:27:27Z msweet $".
#
+8 -2
Ver Arquivo
@@ -1,5 +1,5 @@
#
# "$Id: cupsd.conf.in 11025 2013-06-07 01:00:33Z msweet $"
# "$Id$"
#
# Sample configuration file for the CUPS scheduler. See "man cupsd.conf" for a
# complete description of this file.
@@ -9,12 +9,18 @@
# for troubleshooting...
LogLevel @CUPS_LOG_LEVEL@
# Administrator user group...
SystemGroup @CUPS_SYSTEM_GROUPS@
@CUPS_SYSTEM_AUTHKEY@
# Only listen for connections from the local machine.
Listen localhost:@DEFAULT_IPP_PORT@
@CUPS_LISTEN_DOMAINSOCKET@
# Show shared printers on the local network.
Browsing On
BrowseOrder allow,deny
BrowseAllow all
BrowseLocalProtocols @CUPS_BROWSE_LOCAL_PROTOCOLS@
# Default authentication type, when authentication is required...
@@ -130,5 +136,5 @@ WebInterface @CUPS_WEBIF@
</Policy>
#
# End of "$Id: cupsd.conf.in 11025 2013-06-07 01:00:33Z msweet $".
# End of "$Id$".
#
+2 -2
Ver Arquivo
@@ -1,5 +1,5 @@
#
# "$Id: mime.convs.in 11025 2013-06-07 01:00:33Z msweet $"
# "$Id$"
#
# DO NOT EDIT THIS FILE, AS IT IS OVERWRITTEN WHEN YOU INSTALL NEW
# VERSIONS OF CUPS. Instead, create a "local.convs" file that
@@ -59,5 +59,5 @@ application/vnd.cups-raster image/pwg-raster 100 rastertopwg
@DEFAULT_RAW_PRINTING@application/octet-stream application/vnd.cups-raw 0 -
#
# End of "$Id: mime.convs.in 11025 2013-06-07 01:00:33Z msweet $".
# End of "$Id$".
#
+15 -15
Ver Arquivo
@@ -1,20 +1,20 @@
#
# "$Id: mime.types 7670 2008-06-17 22:42:08Z mike $"
# "$Id: mime.types 9871 2011-08-06 06:34:46Z mike $"
#
# Base MIME types file for CUPS.
# Base MIME types file for CUPS.
#
# DO NOT EDIT THIS FILE, AS IT IS OVERWRITTEN WHEN YOU INSTALL NEW
# VERSIONS OF CUPS. Instead, create a "local.types" file that
# reflects your local configuration changes.
# DO NOT EDIT THIS FILE, AS IT IS OVERWRITTEN WHEN YOU INSTALL NEW
# VERSIONS OF CUPS. Instead, create a "local.types" file that
# reflects your local configuration changes.
#
# Copyright 2007-2014 by Apple Inc.
# Copyright 1997-2007 by Easy Software Products.
# Copyright 2007-2011 by Apple Inc.
# Copyright 1997-2007 by Easy Software Products.
#
# These coded instructions, statements, and computer programs are the
# property of Apple Inc. and are protected by Federal copyright
# law. Distribution and use rights are outlined in the file "LICENSE.txt"
# 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/".
# These coded instructions, statements, and computer programs are the
# property of Apple Inc. and are protected by Federal copyright
# law. Distribution and use rights are outlined in the file "LICENSE.txt"
# 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/".
#
########################################################################
@@ -92,7 +92,7 @@ image/jpeg jpeg jpg jpe string(0,<FFD8FF>) +\
char(3,0xe4) char(3,0xe5) char(3,0xe6) char(3,0xe7)\
char(3,0xe8) char(3,0xe9) char(3,0xea) char(3,0xeb)\
char(3,0xec) char(3,0xed) char(3,0xee) char(3,0xef))
image/pwg-raster string(0,"RaS2") + string(4,PwgRaster<00>) priority(150)
image/pwg-raster string(0,"RaS2") + string(4,PwgRaster<00>) priority(100)
image/tiff tiff tif string(0,MM<002A>) string(0,II<2A00>)
image/x-photocd pcd string(2048,PCD_IPI)
image/x-portable-anymap pnm
@@ -152,7 +152,7 @@ application/vnd.cups-pdf
application/vnd.cups-postscript
application/vnd.cups-ppd ppd string(0,"*PPD-Adobe:")
application/vnd.cups-raster string(0,"RaSt") string(0,"tSaR") \
(string(0,"RaS2") + !string(4,PwgRaster<00>)) string(0,"2SaR") \
string(0,"RaS2") string(0,"2SaR") \
string(0,"RaS3") string(0,"3SaR")
application/vnd.cups-raw (string(0,<1B>E) + !string(2,<1B>%0B)) \
string(0,<1B>@) \
@@ -170,5 +170,5 @@ application/vnd.cups-raw (string(0,<1B>E) + !string(2,<1B>%0B)) \
application/octet-stream
#
# End of "$Id: mime.types 7670 2008-06-17 22:42:08Z mike $".
# End of "$Id: mime.types 9871 2011-08-06 06:34:46Z mike $".
#
+2 -2
Ver Arquivo
@@ -1,5 +1,5 @@
#
# "$Id: snmp.conf.in 11025 2013-06-07 01:00:33Z msweet $"
# "$Id$"
#
# Sample SNMP configuration file for CUPS. See "man cups-snmp.conf" for a
# complete description of this file.
@@ -9,5 +9,5 @@
@CUPS_SNMP_COMMUNITY@
#
# End of "$Id: snmp.conf.in 11025 2013-06-07 01:00:33Z msweet $".
# End of "$Id$".
#
+48 -61
Ver Arquivo
@@ -1,16 +1,16 @@
dnl
dnl "$Id: cups-common.m4 8781 2009-08-28 17:34:54Z mike $"
dnl "$Id: cups-common.m4 10192 2012-01-20 21:49:02Z mike $"
dnl
dnl Common configuration stuff for CUPS.
dnl Common configuration stuff for CUPS.
dnl
dnl Copyright 2007-2014 by Apple Inc.
dnl Copyright 1997-2007 by Easy Software Products, all rights reserved.
dnl Copyright 2007-2011 by Apple Inc.
dnl Copyright 1997-2007 by Easy Software Products, all rights reserved.
dnl
dnl These coded instructions, statements, and computer programs are the
dnl property of Apple Inc. and are protected by Federal copyright
dnl law. Distribution and use rights are outlined in the file "LICENSE.txt"
dnl which should have been included with this file. If this file is
dnl file is missing or damaged, see the license at "http://www.cups.org/".
dnl These coded instructions, statements, and computer programs are the
dnl property of Apple Inc. and are protected by Federal copyright
dnl law. Distribution and use rights are outlined in the file "LICENSE.txt"
dnl which should have been included with this file. If this file is
dnl file is missing or damaged, see the license at "http://www.cups.org/".
dnl
dnl We need at least autoconf 2.60...
@@ -20,11 +20,11 @@ dnl Set the name of the config header file...
AC_CONFIG_HEADER(config.h)
dnl Version number information...
CUPS_VERSION=1.7.3
CUPS_REVISION=
#if test -z "$CUPS_REVISION" -a -d .svn; then
# CUPS_REVISION="-r`svnversion . | awk -F: '{print $NF}' | sed -e '1,$s/[[a-zA-Z]]*//g'`"
#fi
CUPS_VERSION="1.6svn"
CUPS_REVISION=""
if test -z "$CUPS_REVISION" -a -d .svn; then
CUPS_REVISION="-r`svnversion . | awk -F: '{print $NF}' | sed -e '1,$s/[[a-zA-Z]]*//g'`"
fi
CUPS_BUILD="cups-$CUPS_VERSION"
AC_ARG_WITH(cups_build, [ --with-cups-build set "cups-config --build" string ],
@@ -44,13 +44,13 @@ LDFLAGS="${LDFLAGS:=}"
dnl Checks for programs...
AC_PROG_AWK
AC_PROG_CC(clang cc gcc)
AC_PROG_CC
AC_PROG_CPP
AC_PROG_CXX(clang++ c++ g++)
AC_PROG_CXX
AC_PROG_RANLIB
AC_PATH_PROG(AR,ar)
AC_PATH_PROG(CHMOD,chmod)
AC_PATH_PROG(GZIP,gzip)
AC_PATH_PROG(HTMLDOC,htmldoc)
AC_PATH_PROG(LD,ld)
AC_PATH_PROG(LN,ln)
AC_PATH_PROG(MV,mv)
@@ -92,9 +92,8 @@ dnl Check for pkg-config, which is used for some other tests later on...
AC_PATH_PROG(PKGCONFIG, pkg-config)
dnl Check for libraries...
AC_SEARCH_LIBS(abs, m, AC_DEFINE(HAVE_ABS))
AC_SEARCH_LIBS(crypt, crypt)
AC_SEARCH_LIBS(fmod, m)
AC_SEARCH_LIBS(crypt, crypt)
AC_SEARCH_LIBS(getspent, sec gen)
LIBMALLOC=""
@@ -130,7 +129,6 @@ AC_CHECK_HEADER(crypt.h,AC_DEFINE(HAVE_CRYPT_H))
AC_CHECK_HEADER(langinfo.h,AC_DEFINE(HAVE_LANGINFO_H))
AC_CHECK_HEADER(malloc.h,AC_DEFINE(HAVE_MALLOC_H))
AC_CHECK_HEADER(shadow.h,AC_DEFINE(HAVE_SHADOW_H))
AC_CHECK_HEADER(stdint.h,AC_DEFINE(HAVE_STDINT_H))
AC_CHECK_HEADER(string.h,AC_DEFINE(HAVE_STRING_H))
AC_CHECK_HEADER(strings.h,AC_DEFINE(HAVE_STRINGS_H))
AC_CHECK_HEADER(bstring.h,AC_DEFINE(HAVE_BSTRING_H))
@@ -225,25 +223,21 @@ dnl See if we have libusb...
AC_ARG_ENABLE(libusb, [ --enable-libusb use libusb for USB printing])
LIBUSB=""
USBQUIRKS=""
AC_SUBST(LIBUSB)
AC_SUBST(USBQUIRKS)
if test "x$PKGCONFIG" != x; then
if test x$enable_libusb = xyes -o $uname != Darwin; then
AC_MSG_CHECKING(for libusb-1.0)
if $PKGCONFIG --exists libusb-1.0; then
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_LIBUSB)
CFLAGS="$CFLAGS `$PKGCONFIG --cflags libusb-1.0`"
LIBUSB="`$PKGCONFIG --libs libusb-1.0`"
USBQUIRKS="\$(DATADIR)/usb"
else
AC_MSG_RESULT(no)
fi
fi
elif test x$enable_libusb = xyes; then
AC_MSG_ERROR(Need pkg-config to enable libusb support.)
if test x$enable_libusb = xyes; then
check_libusb=yes
elif test x$enable_libusb != xno -a $uname != Darwin; then
check_libusb=yes
else
check_libusb=no
fi
if test $check_libusb = yes; then
AC_CHECK_LIB(usb, usb_get_string_simple,[
AC_CHECK_HEADER(usb.h,
AC_DEFINE(HAVE_USB_H)
LIBUSB="-lusb")])
fi
dnl See if we have libwrap for TCP wrappers support...
@@ -260,18 +254,12 @@ if test x$enable_tcp_wrappers = xyes; then
fi
dnl ZLIB
INSTALL_GZIP=""
LIBZ=""
AC_CHECK_HEADER(zlib.h,
AC_CHECK_LIB(z, gzgets,
AC_DEFINE(HAVE_LIBZ)
LIBZ="-lz"
LIBS="$LIBS -lz"
AC_CHECK_LIB(z, inflateCopy, AC_DEFINE(HAVE_INFLATECOPY))
if test "x$GZIP" != z; then
INSTALL_GZIP="-z"
fi))
AC_SUBST(INSTALL_GZIP)
LIBS="$LIBS -lz"))
AC_SUBST(LIBZ)
dnl Flags for "ar" command...
@@ -303,11 +291,16 @@ fi
LIBS="$SAVELIBS"
dnl Check for DBUS support
AC_ARG_ENABLE(dbus, [ --disable-dbus build without DBUS support])
if test -d /etc/dbus-1; then
DBUSDIR="/etc/dbus-1"
else
DBUSDIR=""
fi
AC_ARG_ENABLE(dbus, [ --enable-dbus build with DBUS support])
AC_ARG_WITH(dbusdir, [ --with-dbusdir set DBUS configuration directory ],
DBUSDIR="$withval")
DBUSDIR=""
DBUS_NOTIFIER=""
DBUS_NOTIFIERLIBS=""
@@ -324,12 +317,7 @@ if test "x$enable_dbus" != xno -a "x$PKGCONFIG" != x; then
LIBS="$LIBS $DBUS_NOTIFIERLIBS"
AC_CHECK_FUNC(dbus_message_iter_init_append,
AC_DEFINE(HAVE_DBUS_MESSAGE_ITER_INIT_APPEND))
AC_CHECK_FUNC(dbus_threads_init,
AC_DEFINE(HAVE_DBUS_THREADS_INIT))
LIBS="$SAVELIBS"
if test -d /etc/dbus-1; then
DBUSDIR="/etc/dbus-1"
fi
else
AC_MSG_RESULT(no)
fi
@@ -341,7 +329,6 @@ AC_SUBST(DBUS_NOTIFIERLIBS)
dnl Extra platform-specific libraries...
CUPS_DEFAULT_PRINTOPERATOR_AUTH="@SYSTEM"
CUPS_DEFAULT_SYSTEM_AUTHKEY=""
CUPS_SYSTEM_AUTHKEY=""
INSTALLXPC=""
@@ -361,6 +348,12 @@ case $uname in
dnl Check for dynamic store function...
AC_CHECK_FUNCS(SCDynamicStoreCopyComputerName)
dnl Check for new ColorSync APIs...
SAVELIBS="$LIBS"
LIBS="$LIBS -framework ApplicationServices"
AC_CHECK_FUNCS(ColorSyncRegisterDevice)
LIBS="$SAVELIBS"
dnl Check for the new membership functions in MacOSX 10.4...
AC_CHECK_HEADER(membership.h,AC_DEFINE(HAVE_MEMBERSHIP_H))
AC_CHECK_HEADER(membershipPriv.h,AC_DEFINE(HAVE_MEMBERSHIPPRIV_H))
@@ -389,13 +382,10 @@ case $uname in
if test "x$default_adminkey" != xdefault; then
CUPS_SYSTEM_AUTHKEY="SystemGroupAuthKey $default_adminkey"
CUPS_DEFAULT_SYSTEM_AUTHKEY="$default_adminkey"
elif grep -q system.print.operator /etc/authorization; then
CUPS_SYSTEM_AUTHKEY="SystemGroupAuthKey system.print.admin"
CUPS_DEFAULT_SYSTEM_AUTHKEY="system.print.admin"
else
CUPS_SYSTEM_AUTHKEY="SystemGroupAuthKey system.preferences"
CUPS_DEFAULT_SYSTEM_AUTHKEY="system.preferences"
fi
if test "x$default_operkey" != xdefault; then
@@ -411,8 +401,8 @@ case $uname in
if test $uversion -ge 100; then
AC_CHECK_HEADER(sandbox.h,AC_DEFINE(HAVE_SANDBOX_H))
fi
if test $uversion -ge 110 -a $uversion -lt 120; then
# Broken public headers in 10.7.x...
if test $uversion -ge 110; then
# Broken public headers in 10.7...
AC_MSG_CHECKING(for sandbox/private.h presence)
if test -f /usr/local/include/sandbox/private.h; then
AC_MSG_RESULT(yes)
@@ -426,14 +416,11 @@ case $uname in
AC_CHECK_HEADER(xpc/xpc.h,
AC_DEFINE(HAVE_XPC)
INSTALLXPC="install-xpc")
AC_CHECK_HEADER(xpc/private.h,
AC_DEFINE(HAVE_XPC_PRIVATE_H))
;;
esac
AC_SUBST(CUPS_DEFAULT_PRINTOPERATOR_AUTH)
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_PRINTOPERATOR_AUTH, "$CUPS_DEFAULT_PRINTOPERATOR_AUTH")
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_SYSTEM_AUTHKEY, "$CUPS_DEFAULT_SYSTEM_AUTHKEY")
AC_SUBST(CUPS_SYSTEM_AUTHKEY)
AC_SUBST(INSTALLXPC)
@@ -462,5 +449,5 @@ esac
AC_SUBST(BUILDDIRS)
dnl
dnl End of "$Id: cups-common.m4 8781 2009-08-28 17:34:54Z mike $".
dnl End of "$Id: cups-common.m4 10192 2012-01-20 21:49:02Z mike $".
dnl
+39 -40
Ver Arquivo
@@ -1,16 +1,16 @@
dnl
dnl "$Id: cups-compiler.m4 7871 2008-08-27 21:12:43Z mike $"
dnl "$Id: cups-compiler.m4 10190 2012-01-20 16:22:58Z mike $"
dnl
dnl Compiler stuff for CUPS.
dnl Compiler stuff for CUPS.
dnl
dnl Copyright 2007-2014 by Apple Inc.
dnl Copyright 1997-2007 by Easy Software Products, all rights reserved.
dnl Copyright 2007-2012 by Apple Inc.
dnl Copyright 1997-2007 by Easy Software Products, all rights reserved.
dnl
dnl These coded instructions, statements, and computer programs are the
dnl property of Apple Inc. and are protected by Federal copyright
dnl law. Distribution and use rights are outlined in the file "LICENSE.txt"
dnl which should have been included with this file. If this file is
dnl file is missing or damaged, see the license at "http://www.cups.org/".
dnl These coded instructions, statements, and computer programs are the
dnl property of Apple Inc. and are protected by Federal copyright
dnl law. Distribution and use rights are outlined in the file "LICENSE.txt"
dnl which should have been included with this file. If this file is
dnl file is missing or damaged, see the license at "http://www.cups.org/".
dnl
dnl Clear the debugging and non-shared library options unless the user asks
@@ -114,43 +114,29 @@ if test -n "$GCC"; then
OLDCFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -fstack-protector"
AC_TRY_LINK(,,
if test "x$LSB_BUILD" = xy; then
# Can't use stack-protector with LSB binaries...
OPTIM="$OPTIM -fno-stack-protector"
else
OPTIM="$OPTIM -fstack-protector"
fi
OPTIM="$OPTIM -fstack-protector"
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no))
CFLAGS="$OLDCFLAGS"
if test "x$LSB_BUILD" != xy; then
# The -fPIE option is available with some versions of GCC and
# adds randomization of addresses, which avoids another class of
# exploits that depend on a fixed address for common functions.
#
# Not available to LSB binaries...
AC_MSG_CHECKING(if GCC supports -fPIE)
OLDCFLAGS="$CFLAGS"
case "$uname" in
Darwin*)
CFLAGS="$CFLAGS -fPIE -Wl,-pie"
AC_TRY_COMPILE(,,[
PIEFLAGS="-fPIE -Wl,-pie"
AC_MSG_RESULT(yes)],
AC_MSG_RESULT(no))
# The -fPIE option is available with some versions of GCC and adds
# randomization of addresses, which avoids another class of exploits
# that depend on a fixed address for common functions.
AC_MSG_CHECKING(if GCC supports -fPIE)
OLDCFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -fPIE"
AC_TRY_COMPILE(,,
[case "$CC" in
*clang)
PIEFLAGS="-fPIE -Wl,-pie"
;;
*)
CFLAGS="$CFLAGS -fPIE -pie"
AC_TRY_COMPILE(,,[
PIEFLAGS="-fPIE -pie"
AC_MSG_RESULT(yes)],
AC_MSG_RESULT(no))
PIEFLAGS="-fPIE -pie"
;;
esac
CFLAGS="$OLDCFLAGS"
fi
AC_MSG_RESULT(yes)],
AC_MSG_RESULT(no))
CFLAGS="$OLDCFLAGS"
if test "x$with_optim" = x; then
# Add useful warning options for tracking down problems...
@@ -185,7 +171,7 @@ if test -n "$GCC"; then
# The -z relro option is provided by the Linux linker command to
# make relocatable data read-only.
if test x$enable_relro = xyes; then
RELROFLAGS="-Wl,-z,relro,-z,now"
RELROFLAGS="-Wl,-z,relro"
fi
;;
esac
@@ -216,6 +202,19 @@ else
OPTIM="+z $OPTIM"
fi
;;
IRIX)
if test -z "$OPTIM"; then
if test "x$with_optim" = x; then
OPTIM="-O2"
else
OPTIM="$with_optim $OPTIM"
fi
fi
if test "x$with_optim" = x; then
OPTIM="-fullwarn -woff 1183,1209,1349,1506,3201 $OPTIM"
fi
;;
OSF*)
# Tru64 UNIX aka Digital UNIX aka OSF/1
if test -z "$OPTIM"; then
@@ -296,5 +295,5 @@ case $uname in
esac
dnl
dnl End of "$Id: cups-compiler.m4 7871 2008-08-27 21:12:43Z mike $".
dnl End of "$Id: cups-compiler.m4 10190 2012-01-20 16:22:58Z mike $".
dnl
+8 -16
Ver Arquivo
@@ -1,9 +1,9 @@
dnl
dnl "$Id: cups-defaults.m4 7959 2008-09-17 19:30:58Z mike $"
dnl "$Id: cups-defaults.m4 10104 2011-11-04 06:37:03Z mike $"
dnl
dnl Default cupsd configuration settings for CUPS.
dnl
dnl Copyright 2007-2012 by Apple Inc.
dnl Copyright 2007-2011 by Apple Inc.
dnl Copyright 2006-2007 by Easy Software Products, all rights reserved.
dnl
dnl These coded instructions, statements, and computer programs are the
@@ -14,7 +14,7 @@ dnl file is missing or damaged, see the license at "http://www.cups.org/".
dnl
dnl Default languages...
LANGUAGES="`ls -1 locale/cups_*.po 2>/dev/null | sed -e '1,$s/locale\/cups_//' -e '1,$s/\.po//' | tr '\n' ' '`"
LANGUAGES="`ls -1 locale/cups_*.po | sed -e '1,$s/locale\/cups_//' -e '1,$s/\.po//' | tr '\n' ' '`"
AC_ARG_WITH(languages, [ --with-languages set installed languages, default=all ],[
case "$withval" in
@@ -24,8 +24,8 @@ AC_ARG_WITH(languages, [ --with-languages set installed languages, defau
esac])
AC_SUBST(LANGUAGES)
dnl OS X bundle-based localization support
AC_ARG_WITH(bundledir, [ --with-bundledir set OS X localization bundle directory ],
dnl Mac OS X bundle-based localization support
AC_ARG_WITH(bundledir, [ --with-bundledir set Mac OS X localization bundle directory ],
CUPS_BUNDLEDIR="$withval",
if test "x$uname" = xDarwin -a $uversion -ge 100; then
CUPS_BUNDLEDIR="/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A"
@@ -50,12 +50,6 @@ AC_ARG_WITH(config_file_perm, [ --with-config-file-perm set default ConfigFileP
AC_SUBST(CUPS_CONFIG_FILE_PERM)
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_CONFIG_FILE_PERM, 0$CUPS_CONFIG_FILE_PERM)
dnl Default permissions for cupsd
AC_ARG_WITH(cupsd_file_perm, [ --with-cupsd-file-perm set default cupsd permissions, default=0500],
CUPS_CUPSD_FILE_PERM="$withval",
CUPS_CUPSD_FILE_PERM="500")
AC_SUBST(CUPS_CUPSD_FILE_PERM)
dnl Default LogFilePerm
AC_ARG_WITH(log_file_perm, [ --with-log-file-perm set default LogFilePerm value, default=0644],
CUPS_LOG_FILE_PERM="$withval",
@@ -102,7 +96,7 @@ AC_ARG_WITH(local_protocols, [ --with-local-protocols set default BrowseLocalP
if test x$with_local_protocols != xno; then
if test "x$default_local_protocols" = "xdefault"; then
if test "x$DNSSD_BACKEND" != "x"; then
if test "x$DNSSDLIBS" != "x"; then
CUPS_BROWSE_LOCAL_PROTOCOLS="dnssd"
else
CUPS_BROWSE_LOCAL_PROTOCOLS=""
@@ -305,7 +299,6 @@ else
fi
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_LPD_CONFIG_FILE, "$CUPS_DEFAULT_LPD_CONFIG_FILE")
AC_SUBST(CUPS_DEFAULT_LPD_CONFIG_FILE)
dnl Default SMB config file...
AC_ARG_WITH(smbconfigfile, [ --with-smbconfigfile set default SMBConfigFile URI],
@@ -327,7 +320,6 @@ else
fi
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_SMB_CONFIG_FILE, "$CUPS_DEFAULT_SMB_CONFIG_FILE")
AC_SUBST(CUPS_DEFAULT_SMB_CONFIG_FILE)
dnl Default MaxCopies value...
AC_ARG_WITH(max-copies, [ --with-max-copies set default max copies value, default=9999 ],
@@ -375,7 +367,7 @@ AC_SUBST(DEFAULT_IPP_PORT)
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_IPP_PORT,$DEFAULT_IPP_PORT)
dnl Web interface...
AC_ARG_ENABLE(webif, [ --enable-webif enable the web interface by default, default=no for OS X])
AC_ARG_ENABLE(webif, [ --enable-webif enable the web interface by default, default=no for Mac OS X])
case "x$enable_webif" in
xno)
CUPS_WEBIF=No
@@ -400,5 +392,5 @@ AC_SUBST(CUPS_WEBIF)
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_WEBIF, $CUPS_DEFAULT_WEBIF)
dnl
dnl End of "$Id: cups-defaults.m4 7959 2008-09-17 19:30:58Z mike $".
dnl End of "$Id: cups-defaults.m4 10104 2011-11-04 06:37:03Z mike $".
dnl
+24 -15
Ver Arquivo
@@ -1,9 +1,9 @@
dnl
dnl "$Id: cups-directories.m4 7799 2008-07-25 20:06:08Z mike $"
dnl "$Id: cups-directories.m4 9771 2011-05-12 05:21:56Z mike $"
dnl
dnl Directory stuff for CUPS.
dnl
dnl Copyright 2007-2013 by Apple Inc.
dnl Copyright 2007-2011 by Apple Inc.
dnl Copyright 1997-2007 by Easy Software Products, all rights reserved.
dnl
dnl These coded instructions, statements, and computer programs are the
@@ -102,8 +102,11 @@ fi
dnl Fix "libdir" variable...
if test "$libdir" = "\${exec_prefix}/lib"; then
case "$uname" in
IRIX*)
libdir="$exec_prefix/lib32"
;;
Linux*)
if test -d /usr/lib64 -a ! -d /usr/lib64/fakeroot; then
if test -d /usr/lib64; then
libdir="$exec_prefix/lib64"
fi
;;
@@ -166,6 +169,13 @@ if test x$rcdir = x; then
RCSTOP="620"
;;
IRIX*)
# IRIX
INITDIR="/etc"
RCSTART="60"
RCSTOP="25"
;;
Linux | GNU | GNU/k*BSD*)
# Linux/HURD seems to choose an init.d directory at random...
if test -d /sbin/init.d; then
@@ -412,20 +422,19 @@ AC_DEFINE_UNQUOTED(CUPS_SERVERROOT, "$sysconfdir/cups")
AC_SUBST(CUPS_SERVERROOT)
# Transient run-time state
AC_ARG_WITH(rundir, [ --with-rundir set transient run-time state directory],CUPS_STATEDIR="$withval",[
case "$uname" in
Darwin*)
# Darwin (OS X)
CUPS_STATEDIR="$CUPS_SERVERROOT"
;;
*)
# All others
CUPS_STATEDIR="$localstatedir/run/cups"
;;
esac])
case "$uname" in
Darwin*)
# Darwin (Mac OS X)
CUPS_STATEDIR="$CUPS_SERVERROOT"
;;
*)
# All others
CUPS_STATEDIR="$localstatedir/run/cups"
;;
esac
AC_DEFINE_UNQUOTED(CUPS_STATEDIR, "$CUPS_STATEDIR")
AC_SUBST(CUPS_STATEDIR)
dnl
dnl End of "$Id: cups-directories.m4 7799 2008-07-25 20:06:08Z mike $".
dnl End of "$Id: cups-directories.m4 9771 2011-05-12 05:21:56Z mike $".
dnl
+7 -29
Ver Arquivo
@@ -1,9 +1,9 @@
dnl
dnl "$Id: cups-dnssd.m4 7890 2008-08-29 22:19:39Z mike $"
dnl "$Id: cups-dnssd.m4 9771 2011-05-12 05:21:56Z mike $"
dnl
dnl DNS Service Discovery (aka Bonjour) stuff for CUPS.
dnl
dnl Copyright 2007-2012 by Apple Inc.
dnl Copyright 2007-2011 by Apple Inc.
dnl
dnl These coded instructions, statements, and computer programs are the
dnl property of Apple Inc. and are protected by Federal copyright
@@ -12,8 +12,7 @@ dnl which should have been included with this file. If this file is
dnl file is missing or damaged, see the license at "http://www.cups.org/".
dnl
AC_ARG_ENABLE(avahi, [ --disable-avahi disable DNS Service Discovery support using Avahi])
AC_ARG_ENABLE(dnssd, [ --disable-dnssd disable DNS Service Discovery support using mDNSResponder])
AC_ARG_ENABLE(dnssd, [ --disable-dnssd disable DNS Service Discovery support])
AC_ARG_WITH(dnssd-libs, [ --with-dnssd-libs set directory for DNS Service Discovery library],
LDFLAGS="-L$withval $LDFLAGS"
DSOFLAGS="-L$withval $DSOFLAGS",)
@@ -23,34 +22,17 @@ AC_ARG_WITH(dnssd-includes, [ --with-dnssd-includes set directory for DNS Ser
DNSSDLIBS=""
DNSSD_BACKEND=""
IPPFIND_BIN=""
IPPFIND_MAN=""
if test "x$PKGCONFIG" != x -a x$enable_avahi != xno; then
AC_MSG_CHECKING(for Avahi)
if $PKGCONFIG --exists avahi-client; then
AC_MSG_RESULT(yes)
CFLAGS="$CFLAGS `$PKGCONFIG --cflags avahi-client`"
DNSSDLIBS="`$PKGCONFIG --libs avahi-client`"
DNSSD_BACKEND="dnssd"
IPPFIND_BIN="ippfind"
IPPFIND_MAN="ippfind.\$(MAN1EXT)"
AC_DEFINE(HAVE_AVAHI)
else
AC_MSG_RESULT(no)
fi
fi
if test "x$DNSSD_BACKEND" = x -a x$enable_dnssd != xno; then
if test x$enable_dnssd != xno; then
AC_CHECK_HEADER(dns_sd.h, [
case "$uname" in
Darwin*)
# Darwin and MacOS X...
AC_DEFINE(HAVE_DNSSD)
AC_DEFINE(HAVE_COREFOUNDATION)
AC_DEFINE(HAVE_SYSTEMCONFIGURATION)
DNSSDLIBS="-framework CoreFoundation -framework SystemConfiguration"
DNSSD_BACKEND="dnssd"
IPPFIND_BIN="ippfind"
IPPFIND_MAN="ippfind.\$(MAN1EXT)"
;;
*)
# All others...
@@ -67,8 +49,6 @@ if test "x$DNSSD_BACKEND" = x -a x$enable_dnssd != xno; then
AC_DEFINE(HAVE_DNSSD)
DNSSDLIBS="-ldns_sd"
DNSSD_BACKEND="dnssd",
IPPFIND_BIN="ippfind"
IPPFIND_MAN="ippfind.\$(MAN1EXT)"
AC_MSG_RESULT(no))
LIBS="$SAVELIBS"
;;
@@ -78,9 +58,7 @@ fi
AC_SUBST(DNSSDLIBS)
AC_SUBST(DNSSD_BACKEND)
AC_SUBST(IPPFIND_BIN)
AC_SUBST(IPPFIND_MAN)
dnl
dnl End of "$Id: cups-dnssd.m4 7890 2008-08-29 22:19:39Z mike $".
dnl End of "$Id: cups-dnssd.m4 9771 2011-05-12 05:21:56Z mike $".
dnl
+45 -7
Ver Arquivo
@@ -1,9 +1,9 @@
dnl
dnl "$Id: cups-gssapi.m4 11324 2013-10-04 03:11:42Z msweet $"
dnl "$Id: cups-gssapi.m4 10137 2011-12-02 04:04:49Z mike $"
dnl
dnl GSSAPI/Kerberos library detection for CUPS.
dnl
dnl Copyright 2007-2013 by Apple Inc.
dnl Copyright 2007-2011 by Apple Inc.
dnl Copyright 2006-2007 by Easy Software Products.
dnl
dnl This file contains Kerberos support code, copyright 2006 by
@@ -26,7 +26,7 @@ if test x$enable_gssapi != xno; then
if test "x$KRB5CONFIG" != x; then
case "$uname" in
Darwin)
# OS X weak-links to the Kerberos framework...
# Mac OS X weak-links to the Kerberos framework...
LIBGSSAPI="-weak_framework Kerberos"
AC_MSG_CHECKING(for GSS framework)
if test -d /System/Library/Frameworks/GSS.framework; then
@@ -71,12 +71,50 @@ if test x$enable_gssapi != xno; then
if test "x$LIBGSSAPI" != x; then
AC_CHECK_HEADER(krb5.h, AC_DEFINE(HAVE_KRB5_H))
if test -d /System/Library/Frameworks/GSS.framework; then
AC_CHECK_HEADER(GSS/gssapi.h, AC_DEFINE(HAVE_GSS_GSSAPI_H))
AC_CHECK_HEADER(GSS/gssapi_generic.h, AC_DEFINE(HAVE_GSS_GSSAPI_GENERIC_H))
AC_CHECK_HEADER(GSS/gssapi_spi.h, AC_DEFINE(HAVE_GSS_GSSAPI_SPI_H))
gssdir="/System/Library/Frameworks/GSS.framework"
AC_MSG_CHECKING(for GSS/gssapi.h presence)
if test -f $gssdir/Headers/gssapi.h; then
AC_DEFINE(HAVE_GSS_GSSAPI_H)
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
AC_MSG_CHECKING(for GSS/gssapi_generic.h presence)
if test -f $gssdir/Headers/gssapi_generic.h; then
AC_DEFINE(HAVE_GSSAPI_GENERIC_H)
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
AC_MSG_CHECKING(for GSS/gssapi_krb5.h presence)
if test -f $gssdir/Headers/gssapi_krb5.h; then
AC_DEFINE(HAVE_GSSAPI_KRB5_H)
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
AC_MSG_CHECKING(for GSS/gssapi_spi.h presence)
if test -f $gssdir/PrivateHeaders/gssapi_spi.h; then
AC_MSG_RESULT(yes)
AC_MSG_CHECKING(for GSS/gssapi_spi.h usability)
if test -s $gssdir/PrivateHeaders/gssapi_spi.h; then
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_GSS_GSSAPI_SPI_H)
else
AC_MSG_RESULT(no)
fi
else
AC_MSG_RESULT(no)
if test $uversion -ge 110; then
# Broken public headers in 10.7...
AC_MSG_ERROR(Run 'sudo mkdir -p $gssdir/PrivateHeaders' and 'sudo touch $gssdir/PrivateHeaders/gssapi_spi.h' to build CUPS.)
fi
fi
else
AC_CHECK_HEADER(gssapi.h, AC_DEFINE(HAVE_GSSAPI_H))
AC_CHECK_HEADER(gssapi/gssapi.h, AC_DEFINE(HAVE_GSSAPI_GSSAPI_H))
AC_CHECK_HEADER(gssapi/gssapi_generic.h, AC_DEFINE(HAVE_GSSAPI_GENERIC_H))
AC_CHECK_HEADER(gssapi/gssapi_krb5.h, AC_DEFINE(HAVE_GSSAPI_KRB5_H))
fi
SAVELIBS="$LIBS"
@@ -129,5 +167,5 @@ AC_SUBST(CUPS_DEFAULT_GSSSERVICENAME)
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_GSSSERVICENAME, "$CUPS_DEFAULT_GSSSERVICENAME")
dnl
dnl End of "$Id: cups-gssapi.m4 11324 2013-10-04 03:11:42Z msweet $".
dnl End of "$Id: cups-gssapi.m4 10137 2011-12-02 04:04:49Z mike $".
dnl
+2 -2
Ver Arquivo
@@ -1,5 +1,5 @@
dnl
dnl "$Id: cups-largefile.m4 6649 2007-07-11 21:46:42Z mike $"
dnl "$Id: cups-largefile.m4 9771 2011-05-12 05:21:56Z mike $"
dnl
dnl Large file support stuff for CUPS.
dnl
@@ -48,5 +48,5 @@ fi
AC_CHECK_FUNC(strtoll, AC_DEFINE(HAVE_STRTOLL))
dnl
dnl End of "$Id: cups-largefile.m4 6649 2007-07-11 21:46:42Z mike $".
dnl End of "$Id: cups-largefile.m4 9771 2011-05-12 05:21:56Z mike $".
dnl
+2 -2
Ver Arquivo
@@ -1,5 +1,5 @@
dnl
dnl "$Id: cups-launchd.m4 6649 2007-07-11 21:46:42Z mike $"
dnl "$Id: cups-launchd.m4 8983 2010-02-13 02:20:23Z mike $"
dnl
dnl launchd stuff for CUPS.
dnl
@@ -39,5 +39,5 @@ AC_SUBST(DEFAULT_LAUNCHD_CONF)
AC_SUBST(LAUNCHDLIBS)
dnl
dnl End of "$Id: cups-launchd.m4 6649 2007-07-11 21:46:42Z mike $".
dnl End of "$Id: cups-launchd.m4 8983 2010-02-13 02:20:23Z mike $".
dnl
+2 -2
Ver Arquivo
@@ -1,5 +1,5 @@
dnl
dnl "$Id: cups-libtool.m4 6649 2007-07-11 21:46:42Z mike $"
dnl "$Id: cups-libtool.m4 9771 2011-05-12 05:21:56Z mike $"
dnl
dnl Libtool stuff for CUPS.
dnl
@@ -35,5 +35,5 @@ if test x$LIBTOOL != x; then
fi
dnl
dnl End of "$Id: cups-libtool.m4 6649 2007-07-11 21:46:42Z mike $".
dnl End of "$Id: cups-libtool.m4 9771 2011-05-12 05:21:56Z mike $".
dnl
+18 -4
Ver Arquivo
@@ -1,9 +1,9 @@
dnl
dnl "$Id: cups-manpages.m4 6649 2007-07-11 21:46:42Z mike $"
dnl "$Id: cups-manpages.m4 9771 2011-05-12 05:21:56Z mike $"
dnl
dnl Manpage stuff for CUPS.
dnl
dnl Copyright 2007-2012 by Apple Inc.
dnl Copyright 2007-2011 by Apple Inc.
dnl Copyright 1997-2006 by Easy Software Products, all rights reserved.
dnl
dnl These coded instructions, statements, and computer programs are the
@@ -28,6 +28,12 @@ if test "$mandir" = "\${prefix}/man" -a "$prefix" = "/"; then
AMANDIR="/usr/share/man"
PMANDIR="/usr/share/man"
;;
IRIX)
# SGI IRIX
mandir="/usr/share/catman/u_man"
AMANDIR="/usr/share/catman/a_man"
PMANDIR="/usr/share/catman/p_man"
;;
*)
# All others
mandir="/usr/man"
@@ -45,6 +51,14 @@ AC_SUBST(PMANDIR)
dnl Setup manpage extensions...
case "$uname" in
IRIX*)
# SGI IRIX
MAN1EXT=1
MAN5EXT=5
MAN7EXT=7
MAN8EXT=1m
MAN8DIR=1
;;
SunOS* | HP-UX*)
# Solaris and HP-UX
MAN1EXT=1
@@ -54,7 +68,7 @@ case "$uname" in
MAN8DIR=1m
;;
Linux* | GNU* | Darwin*)
# Linux, GNU Hurd, and OS X
# Linux, GNU Hurd, and Mac OS X
MAN1EXT=1.gz
MAN5EXT=5.gz
MAN7EXT=7.gz
@@ -78,5 +92,5 @@ AC_SUBST(MAN8EXT)
AC_SUBST(MAN8DIR)
dnl
dnl End of "$Id: cups-manpages.m4 6649 2007-07-11 21:46:42Z mike $".
dnl End of "$Id: cups-manpages.m4 9771 2011-05-12 05:21:56Z mike $".
dnl
+2 -2
Ver Arquivo
@@ -1,5 +1,5 @@
dnl
dnl "$Id: cups-network.m4 7918 2008-09-08 22:03:01Z mike $"
dnl "$Id: cups-network.m4 9771 2011-05-12 05:21:56Z mike $"
dnl
dnl Networking stuff for CUPS.
dnl
@@ -70,5 +70,5 @@ AC_CHECK_HEADERS(AppleTalk/at_proto.h,AC_DEFINE(HAVE_APPLETALK_AT_PROTO_H),,
[#include <netat/appletalk.h>])
dnl
dnl End of "$Id: cups-network.m4 7918 2008-09-08 22:03:01Z mike $".
dnl End of "$Id: cups-network.m4 9771 2011-05-12 05:21:56Z mike $".
dnl
+6 -10
Ver Arquivo
@@ -1,9 +1,9 @@
dnl
dnl "$Id: cups-opsys.m4 6649 2007-07-11 21:46:42Z mike $"
dnl "$Id: cups-opsys.m4 9771 2011-05-12 05:21:56Z mike $"
dnl
dnl Operating system stuff for CUPS.
dnl
dnl Copyright 2007-2012 by Apple Inc.
dnl Copyright 2007-2011 by Apple Inc.
dnl Copyright 1997-2006 by Easy Software Products, all rights reserved.
dnl
dnl These coded instructions, statements, and computer programs are the
@@ -19,21 +19,17 @@ uversion=`uname -r | sed -e '1,$s/^[[^0-9]]*\([[0-9]]*\)\.\([[0-9]]*\).*/\1\2/'`
uarch=`uname -m`
case "$uname" in
Darwin*)
uname="Darwin"
if test $uversion -lt 120; then
AC_MSG_ERROR([Sorry, this version of CUPS requires OS X 10.8 or higher.])
fi
;;
GNU* | GNU/*)
uname="GNU"
;;
IRIX*)
uname="IRIX"
;;
Linux*)
uname="Linux"
;;
esac
dnl
dnl "$Id: cups-opsys.m4 6649 2007-07-11 21:46:42Z mike $"
dnl "$Id: cups-opsys.m4 9771 2011-05-12 05:21:56Z mike $"
dnl
+4 -4
Ver Arquivo
@@ -1,9 +1,9 @@
dnl
dnl "$Id: cups-pam.m4 7960 2008-09-17 19:42:02Z mike $"
dnl "$Id: cups-pam.m4 9771 2011-05-12 05:21:56Z mike $"
dnl
dnl PAM stuff for CUPS.
dnl
dnl Copyright 2007-2012 by Apple Inc.
dnl Copyright 2007-2011 by Apple Inc.
dnl Copyright 1997-2005 by Easy Software Products, all rights reserved.
dnl
dnl These coded instructions, statements, and computer programs are the
@@ -61,7 +61,7 @@ if test x$enable_pam != xno; then
case "$uname" in
Darwin*)
# Darwin/OS X
# Darwin/Mac OS X
if test "x$with_pam_module" != x; then
PAMFILE="pam.$with_pam_module"
elif test -f /usr/lib/pam/pam_opendirectory.so.2; then
@@ -98,5 +98,5 @@ AC_SUBST(PAMMOD)
AC_SUBST(PAMMODAUTH)
dnl
dnl End of "$Id: cups-pam.m4 7960 2008-09-17 19:42:02Z mike $".
dnl End of "$Id: cups-pam.m4 9771 2011-05-12 05:21:56Z mike $".
dnl
+2 -2
Ver Arquivo
@@ -1,5 +1,5 @@
dnl
dnl "$Id$"
dnl "$Id: cups-poll.m4 9771 2011-05-12 05:21:56Z mike $"
dnl
dnl Select/poll stuff for CUPS.
dnl
@@ -18,5 +18,5 @@ AC_CHECK_FUNC(epoll_create, AC_DEFINE(HAVE_EPOLL))
AC_CHECK_FUNC(kqueue, AC_DEFINE(HAVE_KQUEUE))
dnl
dnl End of "$Id$".
dnl End of "$Id: cups-poll.m4 9771 2011-05-12 05:21:56Z mike $".
dnl
+2 -2
Ver Arquivo
@@ -1,5 +1,5 @@
dnl
dnl "$Id: cups-scripting.m4 7915 2008-09-07 22:18:29Z mike $"
dnl "$Id: cups-scripting.m4 9927 2011-08-27 09:28:30Z mike $"
dnl
dnl Scripting configuration stuff for CUPS.
dnl
@@ -85,5 +85,5 @@ if test "x$CUPS_PYTHON" != x; then
fi
dnl
dnl End of "$Id: cups-scripting.m4 7915 2008-09-07 22:18:29Z mike $".
dnl End of "$Id: cups-scripting.m4 9927 2011-08-27 09:28:30Z mike $".
dnl
+4 -4
Ver Arquivo
@@ -1,5 +1,5 @@
dnl
dnl "$Id: cups-sharedlibs.m4 7630 2008-06-09 22:31:44Z mike $"
dnl "$Id: cups-sharedlibs.m4 10190 2012-01-20 16:22:58Z mike $"
dnl
dnl Shared library support for CUPS.
dnl
@@ -215,8 +215,8 @@ if test "$DSO" != ":"; then
EXPORT_LDFLAGS="-Wl,-R$libdir"
fi
;;
Linux | GNU)
# Linux, and HURD...
IRIX | Linux | GNU)
# IRIX, Linux, and HURD...
if test $exec_prefix != /usr; then
DSOFLAGS="-Wl,-rpath,$libdir $DSOFLAGS"
LDFLAGS="$LDFLAGS -Wl,-rpath,$libdir"
@@ -234,5 +234,5 @@ AC_SUBST(IMGLIBS)
AC_SUBST(EXPORT_LDFLAGS)
dnl
dnl End of "$Id: cups-sharedlibs.m4 7630 2008-06-09 22:31:44Z mike $".
dnl End of "$Id: cups-sharedlibs.m4 10190 2012-01-20 16:22:58Z mike $".
dnl
+43 -25
Ver Arquivo
@@ -1,9 +1,9 @@
dnl
dnl "$Id: cups-ssl.m4 7241 2008-01-22 22:34:52Z mike $"
dnl "$Id: cups-ssl.m4 9837 2011-06-16 20:12:16Z mike $"
dnl
dnl OpenSSL/GNUTLS stuff for CUPS.
dnl
dnl Copyright 2007-2012 by Apple Inc.
dnl Copyright 2007-2011 by Apple Inc.
dnl Copyright 1997-2007 by Easy Software Products, all rights reserved.
dnl
dnl These coded instructions, statements, and computer programs are the
@@ -27,8 +27,6 @@ AC_ARG_WITH(openssl-includes, [ --with-openssl-includes set directory for OpenS
SSLFLAGS=""
SSLLIBS=""
have_ssl=0
CUPS_SERVERCERT=""
CUPS_SERVERKEY=""
if test x$enable_ssl != xno; then
dnl Look for CDSA...
@@ -38,7 +36,6 @@ if test x$enable_ssl != xno; then
have_ssl=1
AC_DEFINE(HAVE_SSL)
AC_DEFINE(HAVE_CDSASSL)
CUPS_SERVERCERT="/Library/Keychains/System.keychain"
dnl Check for the various security headers...
AC_CHECK_HEADER(Security/SecureTransportPriv.h,
@@ -59,7 +56,40 @@ if test x$enable_ssl != xno; then
AC_CHECK_HEADER(Security/SecIdentitySearchPriv.h,
AC_DEFINE(HAVE_SECIDENTITYSEARCHPRIV_H))
AC_DEFINE(HAVE_CSSMERRORSTRING)])
dnl Check for SSLSetProtocolVersionMax...
SAVELIBS="$LIBS"
LIBS="$LIBS -framework Security"
AC_CHECK_FUNC(SSLSetProtocolVersionMax)
LIBS="$SAVELIBS"
dnl Check for SecCertificateCopyData..
AC_MSG_CHECKING(for SecCertificateCopyData)
if test $uversion -ge 100; then
AC_DEFINE(HAVE_SECCERTIFICATECOPYDATA)
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
dnl Check for SecIdentitySearchCreateWithPolicy...
AC_MSG_CHECKING(for SecIdentitySearchCreateWithPolicy)
if test $uversion -ge 80; then
AC_DEFINE(HAVE_SECIDENTITYSEARCHCREATEWITHPOLICY)
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
dnl Check for SecPolicyCreateSSL...
AC_MSG_CHECKING(for SecPolicyCreateSSL)
if test $uversion -ge 110; then
AC_DEFINE(HAVE_SECPOLICYCREATESSL)
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi])
AC_DEFINE(HAVE_CSSMERRORSTRING)
fi
fi
@@ -82,9 +112,6 @@ if test x$enable_ssl != xno; then
fi
if test $have_ssl = 1; then
CUPS_SERVERCERT="ssl/server.crt"
CUPS_SERVERKEY="ssl/server.key"
if $PKGCONFIG --exists gcrypt; then
SSLLIBS="$SSLLIBS `$PKGCONFIG --libs gcrypt`"
SSLFLAGS="$SSLFLAGS `$PKGCONFIG --cflags gcrypt`"
@@ -97,7 +124,7 @@ if test x$enable_ssl != xno; then
dnl Check for the OpenSSL library last...
if test $have_ssl = 0 -a "x$enable_openssl" != "xno"; then
AC_CHECK_HEADER(openssl/ssl.h,[
AC_CHECK_HEADER(openssl/ssl.h,
dnl Save the current libraries so the crypto stuff isn't always
dnl included...
SAVELIBS="$LIBS"
@@ -109,9 +136,9 @@ if test x$enable_ssl != xno; then
dnl case the RSAREF libraries are needed.
for libcrypto in \
"-lcrypto" \
"-lcrypto -lrsaref" \
"-lcrypto -lRSAglue -lrsaref"
"-lcrypto" \
"-lcrypto -lrsaref" \
"-lcrypto -lRSAglue -lrsaref"
do
AC_CHECK_LIB(ssl,SSL_new,
[have_ssl=1
@@ -126,15 +153,7 @@ if test x$enable_ssl != xno; then
fi
done
if test "x${SSLLIBS}" != "x"; then
CUPS_SERVERCERT="ssl/server.crt"
CUPS_SERVERKEY="ssl/server.key"
LIBS="$SAVELIBS $SSLLIBS"
AC_CHECK_FUNCS(SSL_set_tlsext_host_name)
fi
LIBS="$SAVELIBS"])
LIBS="$SAVELIBS")
fi
fi
@@ -147,8 +166,6 @@ elif test x$enable_cdsa = xyes -o x$enable_gnutls = xyes -o x$enable_openssl = x
AC_MSG_ERROR([Unable to enable SSL support.])
fi
AC_SUBST(CUPS_SERVERCERT)
AC_SUBST(CUPS_SERVERKEY)
AC_SUBST(IPPALIASES)
AC_SUBST(SSLFLAGS)
AC_SUBST(SSLLIBS)
@@ -156,6 +173,7 @@ AC_SUBST(SSLLIBS)
EXPORT_SSLLIBS="$SSLLIBS"
AC_SUBST(EXPORT_SSLLIBS)
dnl
dnl End of "$Id: cups-ssl.m4 7241 2008-01-22 22:34:52Z mike $".
dnl End of "$Id: cups-ssl.m4 9837 2011-06-16 20:12:16Z mike $".
dnl
+2 -2
Ver Arquivo
@@ -1,5 +1,5 @@
dnl
dnl "$Id: cups-threads.m4 6649 2007-07-11 21:46:42Z mike $"
dnl "$Id: cups-threads.m4 9771 2011-05-12 05:21:56Z mike $"
dnl
dnl Threading stuff for CUPS.
dnl
@@ -50,5 +50,5 @@ fi
AC_SUBST(PTHREAD_FLAGS)
dnl
dnl End of "$Id: cups-threads.m4 6649 2007-07-11 21:46:42Z mike $".
dnl End of "$Id: cups-threads.m4 9771 2011-05-12 05:21:56Z mike $".
dnl
+85 -45
Ver Arquivo
@@ -1,9 +1,9 @@
/*
* "$Id: config.h.in 11642 2014-02-27 15:57:59Z msweet $"
* "$Id$"
*
* Configuration file for CUPS.
*
* Copyright 2007-2013 by Apple Inc.
* Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
@@ -32,7 +32,6 @@
#define CUPS_DEFAULT_GROUP "sys"
#define CUPS_DEFAULT_SYSTEM_GROUPS "sys root system"
#define CUPS_DEFAULT_PRINTOPERATOR_AUTH "@SYSTEM"
#define CUPS_DEFAULT_SYSTEM_AUTHKEY "system.print.admin"
/*
@@ -132,11 +131,13 @@
/*
* Do we have ZLIB?
* Do we have various image libraries?
*/
#undef HAVE_LIBPNG
#undef HAVE_LIBZ
#undef HAVE_INFLATECOPY
#undef HAVE_LIBJPEG
#undef HAVE_LIBTIFF
/*
@@ -167,10 +168,10 @@
/*
* Use <stdint.h>?
* Do we have <scsi/sg.h>?
*/
#undef HAVE_STDINT_H
#undef HAVE_SCSI_SG_H
/*
@@ -294,13 +295,6 @@
#undef HAVE_SSL
/*
* Do we have the SSL_set_tlsext_host_name function?
*/
#undef HAVE_SSL_SET_TLSEXT_HOST_NAME
/*
* What Security framework headers do we have?
*/
@@ -316,6 +310,41 @@
#undef HAVE_SECURETRANSPORTPRIV_H
/*
* Do we have the SecCertificateCopyData function?
*/
#undef HAVE_SECCERTIFICATECOPYDATA
/*
* Do we have the SecIdentitySearchCreateWithPolicy function?
*/
#undef HAVE_SECIDENTITYSEARCHCREATEWITHPOLICY
/*
* Do we have the SecPolicyCreateSSL function?
*/
#undef HAVE_SECPOLICYCREATESSL
/*
* Do we have the SecPolicyCreateSSL function?
*/
#undef HAVE_SECPOLICYCREATESSL
/*
* Do we have the SSLSetProtocolVersionMax function?
*/
#undef HAVE_SSLSETPROTOCOLVERSIONMAX
/*
* Do we have the cssmErrorString function?
*/
@@ -323,6 +352,25 @@
#undef HAVE_CSSMERRORSTRING
/*
* Do we have the SLP library?
*/
#undef HAVE_LIBSLP
/*
* Do we have an LDAP library?
*/
#undef HAVE_LDAP
#undef HAVE_OPENLDAP
#undef HAVE_MOZILLA_LDAP
#undef HAVE_LDAP_SSL_H
#undef HAVE_LDAP_SSL
#undef HAVE_LDAP_REBIND_PROC
/*
* Do we have libpaper?
*/
@@ -331,19 +379,12 @@
/*
* Do we have mDNSResponder for DNS Service Discovery (aka Bonjour)?
* Do we have DNS Service Discovery (aka Bonjour)?
*/
#undef HAVE_DNSSD
/*
* Do we have Avahi for DNS Service Discovery (aka Bonjour)?
*/
#undef HAVE_AVAHI
/*
* Do we have <sys/ioctl.h>?
*/
@@ -482,6 +523,14 @@
#define CUPS_GHOSTSCRIPT "/usr/bin/gs"
/*
* Do we have Darwin's CoreFoundation and SystemConfiguration frameworks?
*/
#undef HAVE_COREFOUNDATION
#undef HAVE_SYSTEMCONFIGURATION
/*
* Do we have CoreFoundation public and private headers?
*/
@@ -506,7 +555,7 @@
/*
* Do we have OS X 10.4's mbr_XXX functions?
* Do we have Mac OS X 10.4's mbr_XXX functions?
*/
#undef HAVE_MEMBERSHIP_H
@@ -535,7 +584,6 @@
#undef HAVE_DBUS
#undef HAVE_DBUS_MESSAGE_ITER_INIT_APPEND
#undef HAVE_DBUS_THREADS_INIT
/*
@@ -547,8 +595,11 @@
#undef HAVE_GSS_GSSAPI_H
#undef HAVE_GSS_GSSAPI_SPI_H
#undef HAVE_GSSAPI
#undef HAVE_GSSAPI_GENERIC_H
#undef HAVE_GSSAPI_GSSAPI_H
#undef HAVE_GSSAPI_H
#undef HAVE_GSSAPI_KRB5_H
#undef HAVE_KRB5_H
/*
@@ -636,7 +687,7 @@
* Do we have libusb?
*/
#undef HAVE_LIBUSB
#undef HAVE_USB_H
/*
@@ -666,18 +717,24 @@
/*
* Location of OS X localization bundle, if any.
* Location of Mac OS X localization bundle, if any.
*/
#undef CUPS_BUNDLEDIR
/*
* Do we have the ColorSyncRegisterDevice function?
*/
#undef HAVE_COLORSYNCREGISTERDEVICE
/*
* Do we have XPC?
*/
#undef HAVE_XPC
#undef HAVE_XPC_PRIVATE_H
/*
@@ -687,25 +744,8 @@
#undef HAVE_MXML_H
/*
* Do we have the C99 abs() function?
*/
#undef HAVE_ABS
#if !defined(HAVE_ABS) && !defined(abs)
# if defined(__GNUC__) || __STDC_VERSION__ >= 199901L
# define abs(x) _cups_abs(x)
static inline int _cups_abs(int i) { return (i < 0 ? -i : i); }
# elif defined(_MSC_VER)
# define abs(x) _cups_abs(x)
static __inline int _cups_abs(int i) { return (i < 0 ? -i : i); }
# else
# define abs(x) ((x) < 0 ? -(x) : (x))
# endif /* __GNUC__ || __STDC_VERSION__ */
#endif /* !HAVE_ABS && !abs */
#endif /* !_CUPS_CONFIG_H_ */
/*
* End of "$Id: config.h.in 11642 2014-02-27 15:57:59Z msweet $".
* End of "$Id$".
*/
externo
-11405
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+3 -6
Ver Arquivo
@@ -1,5 +1,5 @@
dnl
dnl "$Id: configure.in 11109 2013-07-08 21:15:13Z msweet $"
dnl "$Id$"
dnl
dnl Configuration script for CUPS.
dnl
@@ -60,7 +60,6 @@ AC_SUBST(INSTALL_LANGUAGES)
AC_SUBST(UNINSTALL_LANGUAGES)
AC_OUTPUT(Makedefs
conf/cups-files.conf
conf/cupsd.conf
conf/mime.convs
conf/pam.std
@@ -68,15 +67,13 @@ AC_OUTPUT(Makedefs
cups-config
data/testprint
desktop/cups.desktop
doc/help/ref-cups-files-conf.html
doc/help/ref-cupsd-conf.html
doc/help/standard.html
doc/index.html
man/client.conf.man
man/cups-deviced.man
man/cups-driverd.man
man/cups-files.conf.man
man/cups-lpd.man
man/cups-snmp.man
man/cupsaddsmb.man
man/cupsd.conf.man
man/cupsd.man
@@ -92,5 +89,5 @@ AC_OUTPUT(Makedefs
chmod +x cups-config
dnl
dnl End of "$Id: configure.in 11109 2013-07-08 21:15:13Z msweet $".
dnl End of "$Id$".
dnl
+2 -2
Ver Arquivo
@@ -1,6 +1,6 @@
#! /bin/sh
#
# "$Id: cups-config.in 10996 2013-05-29 11:51:34Z msweet $"
# "$Id$"
#
# CUPS configuration utility.
#
@@ -142,5 +142,5 @@ while test $# -gt 0; do
done
#
# End of "$Id: cups-config.in 10996 2013-05-29 11:51:34Z msweet $".
# End of "$Id$".
#
+210 -220
Ver Arquivo
@@ -1,221 +1,211 @@
adminutil.o: adminutil.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h adminutil.h
adminutil.o: adminutil.c cups-private.h ../cups/cups.h file.h \
versioning.h ipp.h http.h array.h language.h string-private.h \
../config.h debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h adminutil.h
array.o: array.c string-private.h ../config.h debug-private.h \
../cups/versioning.h array-private.h ../cups/array.h
attr.o: attr.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h
auth.o: auth.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h
attr.o: attr.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h \
http.h array.h language.h string-private.h ../config.h debug-private.h \
ppd-private.h ../cups/ppd.h pwg-private.h http-private.h md5-private.h \
ipp-private.h language-private.h ../cups/transcode.h thread-private.h
auth.o: auth.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h \
http.h array.h language.h string-private.h ../config.h debug-private.h \
ppd-private.h ../cups/ppd.h pwg-private.h http-private.h md5-private.h \
ipp-private.h language-private.h ../cups/transcode.h thread-private.h
backchannel.o: backchannel.c cups.h file.h versioning.h ipp.h http.h \
array.h language.h
backend.o: backend.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h backend.h
conflicts.o: conflicts.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h
custom.o: custom.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h
debug.o: debug.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h
dest.o: dest.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h
dest-job.o: dest-job.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h
dest-localization.o: dest-localization.c cups-private.h string-private.h \
../config.h debug-private.h ../cups/versioning.h ipp-private.h \
../cups/ipp.h http.h array.h http-private.h md5-private.h \
language-private.h ../cups/transcode.h language.h pwg-private.h \
../cups/cups.h file.h ppd-private.h ../cups/ppd.h thread-private.h
dest-options.o: dest-options.c cups-private.h string-private.h \
../config.h debug-private.h ../cups/versioning.h ipp-private.h \
../cups/ipp.h http.h array.h http-private.h md5-private.h \
language-private.h ../cups/transcode.h language.h pwg-private.h \
../cups/cups.h file.h ppd-private.h ../cups/ppd.h thread-private.h
backend.o: backend.c cups-private.h ../cups/cups.h file.h versioning.h \
ipp.h http.h array.h language.h string-private.h ../config.h \
debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h backend.h
conflicts.o: conflicts.c cups-private.h ../cups/cups.h file.h \
versioning.h ipp.h http.h array.h language.h string-private.h \
../config.h debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
custom.o: custom.c cups-private.h ../cups/cups.h file.h versioning.h \
ipp.h http.h array.h language.h string-private.h ../config.h \
debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
debug.o: debug.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h \
http.h array.h language.h string-private.h ../config.h debug-private.h \
ppd-private.h ../cups/ppd.h pwg-private.h http-private.h md5-private.h \
ipp-private.h language-private.h ../cups/transcode.h thread-private.h
dest.o: dest.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h \
http.h array.h language.h string-private.h ../config.h debug-private.h \
ppd-private.h ../cups/ppd.h pwg-private.h http-private.h md5-private.h \
ipp-private.h language-private.h ../cups/transcode.h thread-private.h
dest-job.o: dest-job.c cups-private.h ../cups/cups.h file.h versioning.h \
ipp.h http.h array.h language.h string-private.h ../config.h \
debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
dest-localization.o: dest-localization.c cups-private.h ../cups/cups.h \
file.h versioning.h ipp.h http.h array.h language.h string-private.h \
../config.h debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
dest-options.o: dest-options.c cups-private.h ../cups/cups.h file.h \
versioning.h ipp.h http.h array.h language.h string-private.h \
../config.h debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
dir.o: dir.c string-private.h ../config.h debug-private.h \
../cups/versioning.h dir.h
emit.o: emit.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h
encode.o: encode.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h
file.o: file.c file-private.h cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h
getdevices.o: getdevices.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h
emit.o: emit.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h \
http.h array.h language.h string-private.h ../config.h debug-private.h \
ppd-private.h ../cups/ppd.h pwg-private.h http-private.h md5-private.h \
ipp-private.h language-private.h ../cups/transcode.h thread-private.h
encode.o: encode.c cups-private.h ../cups/cups.h file.h versioning.h \
ipp.h http.h array.h language.h string-private.h ../config.h \
debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
file.o: file.c file-private.h cups-private.h ../cups/cups.h file.h \
versioning.h ipp.h http.h array.h language.h string-private.h \
../config.h debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
getdevices.o: getdevices.c cups-private.h ../cups/cups.h file.h \
versioning.h ipp.h http.h array.h language.h string-private.h \
../config.h debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
getifaddrs.o: getifaddrs.c http-private.h ../config.h ../cups/http.h \
versioning.h array.h md5-private.h ipp-private.h ../cups/ipp.h
getputfile.o: getputfile.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h
globals.o: globals.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h
http.o: http.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h
http-addr.o: http-addr.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h
http-addrlist.o: http-addrlist.c cups-private.h string-private.h \
../config.h debug-private.h ../cups/versioning.h ipp-private.h \
../cups/ipp.h http.h array.h http-private.h md5-private.h \
language-private.h ../cups/transcode.h language.h pwg-private.h \
../cups/cups.h file.h ppd-private.h ../cups/ppd.h thread-private.h
http-support.o: http-support.c cups-private.h string-private.h \
../config.h debug-private.h ../cups/versioning.h ipp-private.h \
../cups/ipp.h http.h array.h http-private.h md5-private.h \
language-private.h ../cups/transcode.h language.h pwg-private.h \
../cups/cups.h file.h ppd-private.h ../cups/ppd.h thread-private.h
ipp.o: ipp.c cups-private.h string-private.h ../config.h debug-private.h \
../cups/versioning.h ipp-private.h ../cups/ipp.h http.h array.h \
http-private.h md5-private.h language-private.h ../cups/transcode.h \
language.h pwg-private.h ../cups/cups.h file.h ppd-private.h \
../cups/ppd.h thread-private.h
ipp-support.o: ipp-support.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h
langprintf.o: langprintf.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h
language.o: language.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h
localize.o: localize.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h
mark.o: mark.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h
getputfile.o: getputfile.c cups-private.h ../cups/cups.h file.h \
versioning.h ipp.h http.h array.h language.h string-private.h \
../config.h debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
globals.o: globals.c cups-private.h ../cups/cups.h file.h versioning.h \
ipp.h http.h array.h language.h string-private.h ../config.h \
debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
http.o: http.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h \
http.h array.h language.h string-private.h ../config.h debug-private.h \
ppd-private.h ../cups/ppd.h pwg-private.h http-private.h md5-private.h \
ipp-private.h language-private.h ../cups/transcode.h thread-private.h
http-addr.o: http-addr.c cups-private.h ../cups/cups.h file.h \
versioning.h ipp.h http.h array.h language.h string-private.h \
../config.h debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
http-addrlist.o: http-addrlist.c cups-private.h ../cups/cups.h file.h \
versioning.h ipp.h http.h array.h language.h string-private.h \
../config.h debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
http-support.o: http-support.c cups-private.h ../cups/cups.h file.h \
versioning.h ipp.h http.h array.h language.h string-private.h \
../config.h debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
ipp.o: ipp.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h \
http.h array.h language.h string-private.h ../config.h debug-private.h \
ppd-private.h ../cups/ppd.h pwg-private.h http-private.h md5-private.h \
ipp-private.h language-private.h ../cups/transcode.h thread-private.h
ipp-support.o: ipp-support.c cups-private.h ../cups/cups.h file.h \
versioning.h ipp.h http.h array.h language.h string-private.h \
../config.h debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
langprintf.o: langprintf.c cups-private.h ../cups/cups.h file.h \
versioning.h ipp.h http.h array.h language.h string-private.h \
../config.h debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
language.o: language.c cups-private.h ../cups/cups.h file.h versioning.h \
ipp.h http.h array.h language.h string-private.h ../config.h \
debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
localize.o: localize.c cups-private.h ../cups/cups.h file.h versioning.h \
ipp.h http.h array.h language.h string-private.h ../config.h \
debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
mark.o: mark.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h \
http.h array.h language.h string-private.h ../config.h debug-private.h \
ppd-private.h ../cups/ppd.h pwg-private.h http-private.h md5-private.h \
ipp-private.h language-private.h ../cups/transcode.h thread-private.h
md5.o: md5.c md5-private.h string-private.h ../config.h
md5passwd.o: md5passwd.c http-private.h ../config.h ../cups/http.h \
versioning.h array.h md5-private.h ipp-private.h ../cups/ipp.h \
string-private.h
notify.o: notify.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h
options.o: options.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h
notify.o: notify.c cups-private.h ../cups/cups.h file.h versioning.h \
ipp.h http.h array.h language.h string-private.h ../config.h \
debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
options.o: options.c cups-private.h ../cups/cups.h file.h versioning.h \
ipp.h http.h array.h language.h string-private.h ../config.h \
debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
page.o: page.c string-private.h ../config.h debug-private.h \
../cups/versioning.h ppd.h cups.h file.h ipp.h http.h array.h \
language.h
ppd.o: ppd.c cups-private.h string-private.h ../config.h debug-private.h \
../cups/versioning.h ipp-private.h ../cups/ipp.h http.h array.h \
http-private.h md5-private.h language-private.h ../cups/transcode.h \
language.h pwg-private.h ../cups/cups.h file.h ppd-private.h \
../cups/ppd.h thread-private.h
ppd-cache.o: ppd-cache.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h
pwg-media.o: pwg-media.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h
request.o: request.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h
ppd.o: ppd.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h \
http.h array.h language.h string-private.h ../config.h debug-private.h \
ppd-private.h ../cups/ppd.h pwg-private.h http-private.h md5-private.h \
ipp-private.h language-private.h ../cups/transcode.h thread-private.h
ppd-cache.o: ppd-cache.c cups-private.h ../cups/cups.h file.h \
versioning.h ipp.h http.h array.h language.h string-private.h \
../config.h debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
pwg-media.o: pwg-media.c cups-private.h ../cups/cups.h file.h \
versioning.h ipp.h http.h array.h language.h string-private.h \
../config.h debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
request.o: request.c cups-private.h ../cups/cups.h file.h versioning.h \
ipp.h http.h array.h language.h string-private.h ../config.h \
debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
sidechannel.o: sidechannel.c sidechannel.h versioning.h cups-private.h \
string-private.h ../config.h debug-private.h ipp-private.h \
../cups/ipp.h http.h array.h http-private.h md5-private.h \
language-private.h ../cups/transcode.h language.h pwg-private.h \
../cups/cups.h file.h ppd-private.h ../cups/ppd.h thread-private.h
snmp.o: snmp.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h snmp-private.h
../cups/cups.h file.h ipp.h http.h array.h language.h string-private.h \
../config.h debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
snmp.o: snmp.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h \
http.h array.h language.h string-private.h ../config.h debug-private.h \
ppd-private.h ../cups/ppd.h pwg-private.h http-private.h md5-private.h \
ipp-private.h language-private.h ../cups/transcode.h thread-private.h \
snmp-private.h
snprintf.o: snprintf.c string-private.h ../config.h
string.o: string.c string-private.h ../config.h debug-private.h \
../cups/versioning.h thread-private.h array.h
tempfile.o: tempfile.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h
thread.o: thread.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h
transcode.o: transcode.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h
usersys.o: usersys.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h
util.o: util.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h
tempfile.o: tempfile.c cups-private.h ../cups/cups.h file.h versioning.h \
ipp.h http.h array.h language.h string-private.h ../config.h \
debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
thread.o: thread.c cups-private.h ../cups/cups.h file.h versioning.h \
ipp.h http.h array.h language.h string-private.h ../config.h \
debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
transcode.o: transcode.c cups-private.h ../cups/cups.h file.h \
versioning.h ipp.h http.h array.h language.h string-private.h \
../config.h debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
usersys.o: usersys.c cups-private.h ../cups/cups.h file.h versioning.h \
ipp.h http.h array.h language.h string-private.h ../config.h \
debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
util.o: util.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h \
http.h array.h language.h string-private.h ../config.h debug-private.h \
ppd-private.h ../cups/ppd.h pwg-private.h http-private.h md5-private.h \
ipp-private.h language-private.h ../cups/transcode.h thread-private.h
testadmin.o: testadmin.c adminutil.h cups.h file.h versioning.h ipp.h \
http.h array.h language.h string-private.h ../config.h
testarray.o: testarray.c string-private.h ../config.h debug-private.h \
@@ -233,28 +223,28 @@ testi18n.o: testi18n.c string-private.h ../config.h language-private.h \
../cups/transcode.h language.h array.h versioning.h
testipp.o: testipp.c file.h versioning.h string-private.h ../config.h \
ipp-private.h ../cups/ipp.h http.h array.h
testoptions.o: testoptions.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h
testlang.o: testlang.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h
testppd.o: testppd.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h
testoptions.o: testoptions.c cups-private.h ../cups/cups.h file.h \
versioning.h ipp.h http.h array.h language.h string-private.h \
../config.h debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
testlang.o: testlang.c cups-private.h ../cups/cups.h file.h versioning.h \
ipp.h http.h array.h language.h string-private.h ../config.h \
debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
testppd.o: testppd.c cups-private.h ../cups/cups.h file.h versioning.h \
ipp.h http.h array.h language.h string-private.h ../config.h \
debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
testpwg.o: testpwg.c ppd-private.h ../cups/cups.h file.h versioning.h \
ipp.h http.h array.h language.h ../cups/ppd.h pwg-private.h \
file-private.h cups-private.h string-private.h ../config.h \
debug-private.h ipp-private.h http-private.h md5-private.h \
debug-private.h http-private.h md5-private.h ipp-private.h \
language-private.h ../cups/transcode.h thread-private.h
testsnmp.o: testsnmp.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
http.h array.h http-private.h md5-private.h language-private.h \
../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
ppd-private.h ../cups/ppd.h thread-private.h snmp-private.h
testsnmp.o: testsnmp.c cups-private.h ../cups/cups.h file.h versioning.h \
ipp.h http.h array.h language.h string-private.h ../config.h \
debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h snmp-private.h
+8 -26
Ver Arquivo
@@ -1,9 +1,9 @@
#
# "$Id: Makefile 10996 2013-05-29 11:51:34Z msweet $"
# "$Id$"
#
# API library Makefile for CUPS.
#
# Copyright 2007-2013 by Apple Inc.
# Copyright 2007-2012 by Apple Inc.
# Copyright 1997-2006 by Easy Software Products, all rights reserved.
#
# These coded instructions, statements, and computer programs are the
@@ -17,14 +17,6 @@
include ../Makedefs
#
# Options to build libcups without the use of deprecated APIs...
#
OPTIONS = -D_CUPS_NO_DEPRECATED=1 -D_PPD_DEPRECATED=""
#
# Object files...
#
@@ -113,7 +105,6 @@ HEADERS = \
ipp.h \
language.h \
ppd.h \
pwg.h \
raster.h \
sidechannel.h \
transcode.h \
@@ -201,14 +192,6 @@ depend:
$(CC) -MM $(ALL_CFLAGS) $(OBJS:.o=.c) >Dependencies
#
# Run oclint to check code coverage...
#
oclint:
oclint -o=oclint.html -html $(LIBOBJS:.o=.c) -- $(ALL_CFLAGS)
#
# Install all targets...
#
@@ -268,7 +251,6 @@ install-libs: $(INSTALLSTATIC)
if test "x$(SYMROOT)" != "x"; then \
$(INSTALL_DIR) $(SYMROOT); \
cp $(LIBCUPS) $(SYMROOT); \
dsymutil $(SYMROOT)/$(LIBCUPS); \
fi
installstatic:
@@ -322,7 +304,7 @@ libcups.2.dylib: $(LIBOBJS) $(LIBCUPSORDER)
echo Linking $@...
$(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ \
-install_name $(libdir)/$@ \
-current_version 2.10.0 \
-current_version 2.9.0 \
-compatibility_version 2.0.0 \
-exported_symbols_list t.exp \
$(LIBOBJS) $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) \
@@ -351,7 +333,7 @@ libcups_s.a: $(LIBOBJS) libcups_s.exp
libcups.la: $(LIBOBJS)
echo Linking $@...
$(CC) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS:.o=.lo) \
-rpath $(LIBDIR) -version-info 2:10 $(LIBGSSAPI) $(SSLLIBS) \
-rpath $(LIBDIR) -version-info 2:9 $(LIBGSSAPI) $(SSLLIBS) \
$(DNSSDLIBS) $(COMMONLIBS) $(LIBZ)
@@ -536,8 +518,8 @@ apihelp:
--css ../doc/cups-printable.css \
--header api-cups.header --intro api-cups.shtml \
api-cups.xml \
cups.h pwg.h adminutil.c dest*.c language.c notify.c \
options.c pwg-media.c tempfile.c usersys.c \
cups.h adminutil.c dest.c language.c notify.c \
options.c tempfile.c usersys.c \
util.c >../doc/help/api-cups.html
mxmldoc --tokens help/api-cups.html api-cups.xml >../doc/help/api-cups.tokens
$(RM) api-cups.xml
@@ -591,7 +573,7 @@ framedhelp:
--section "Programming" --title "CUPS API" \
--css ../doc/cups-printable.css \
--header api-cups.header --intro api-cups.shtml \
cups.h adminutil.c dest*.c language.c notify.c \
cups.h adminutil.c dest.c language.c notify.c \
options.c tempfile.c usersys.c \
util.c
mxmldoc --framed api-filedir \
@@ -639,5 +621,5 @@ include Dependencies
#
# End of "$Id: Makefile 10996 2013-05-29 11:51:34Z msweet $".
# End of "$Id$".
#
+49 -49
Ver Arquivo
@@ -1,9 +1,9 @@
/*
* "$Id: adminutil.c 10996 2013-05-29 11:51:34Z msweet $"
* "$Id$"
*
* Administration utility API definitions for CUPS.
*
* Copyright 2007-2013 by Apple Inc.
* Copyright 2007-2011 by Apple Inc.
* Copyright 2001-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
@@ -65,7 +65,7 @@ static void write_option(cups_file_t *dstfp, int order,
/*
* 'cupsAdminCreateWindowsPPD()' - Create the Windows PPD file for a printer.
*
* @deprecated@
* @since CUPS 1.2/Mac OS X 10.5@
*/
char * /* O - PPD file or NULL */
@@ -129,7 +129,7 @@ cupsAdminCreateWindowsPPD(
* Get the supported banner pages, etc. for the printer...
*/
request = ippNewRequest(IPP_OP_GET_PRINTER_ATTRIBUTES);
request = ippNewRequest(IPP_GET_PRINTER_ATTRIBUTES);
httpAssembleURIf(HTTP_URI_CODING_ALL, uri, sizeof(uri), "ipp", NULL,
"localhost", 0, "/printers/%s", dest);
@@ -145,7 +145,7 @@ cupsAdminCreateWindowsPPD(
*/
response = cupsDoRequest(http, request, "/");
if (!response || cupsLastError() > IPP_STATUS_OK_CONFLICTING)
if (!response || cupsLastError() > IPP_OK_CONFLICT)
{
unlink(src);
return (NULL);
@@ -253,7 +253,7 @@ cupsAdminCreateWindowsPPD(
snprintf(line, sizeof(line),
_cupsLangString(language, _("Missing value on line %d.")),
linenum);
_cupsSetError(IPP_STATUS_ERROR_DOCUMENT_FORMAT_ERROR, line, 0);
_cupsSetError(IPP_DOCUMENT_FORMAT_ERROR, line, 0);
cupsFileClose(srcfp);
cupsFileClose(dstfp);
@@ -272,7 +272,7 @@ cupsAdminCreateWindowsPPD(
_cupsLangString(language,
_("Missing double quote on line %d.")),
linenum);
_cupsSetError(IPP_STATUS_ERROR_DOCUMENT_FORMAT_ERROR, line, 0);
_cupsSetError(IPP_DOCUMENT_FORMAT_ERROR, line, 0);
cupsFileClose(srcfp);
cupsFileClose(dstfp);
@@ -291,7 +291,7 @@ cupsAdminCreateWindowsPPD(
_cupsLangString(language,
_("Bad option + choice on line %d.")),
linenum);
_cupsSetError(IPP_STATUS_ERROR_DOCUMENT_FORMAT_ERROR, line, 0);
_cupsSetError(IPP_DOCUMENT_FORMAT_ERROR, line, 0);
cupsFileClose(srcfp);
cupsFileClose(dstfp);
@@ -334,7 +334,7 @@ cupsAdminCreateWindowsPPD(
if (linenum == 0)
{
_cupsSetError(IPP_STATUS_ERROR_DOCUMENT_FORMAT_ERROR, _("Empty PPD file."), 1);
_cupsSetError(IPP_DOCUMENT_FORMAT_ERROR, _("Empty PPD file."), 1);
cupsFileClose(dstfp);
unlink(buffer);
@@ -393,7 +393,7 @@ cupsAdminCreateWindowsPPD(
/*
* 'cupsAdminExportSamba()' - Export a printer to Samba.
*
* @deprecated@
* @since CUPS 1.2/Mac OS X 10.5@
*/
int /* O - 1 on success, 0 on failure */
@@ -424,7 +424,7 @@ cupsAdminExportSamba(
if (!dest || !ppd || !samba_server || !samba_user || !samba_password)
{
_cupsSetError(IPP_STATUS_ERROR_INTERNAL, strerror(EINVAL), 0);
_cupsSetError(IPP_INTERNAL_ERROR, strerror(EINVAL), 0);
return (0);
}
@@ -434,7 +434,7 @@ cupsAdminExportSamba(
if ((fp = cupsTempFile2(authfile, sizeof(authfile))) == NULL)
{
_cupsSetError(IPP_STATUS_ERROR_INTERNAL, NULL, 0);
_cupsSetError(IPP_INTERNAL_ERROR, NULL, 0);
return (0);
}
@@ -487,7 +487,7 @@ cupsAdminExportSamba(
_("Unable to copy Windows 2000 printer "
"driver files (%d).")), status);
_cupsSetError(IPP_STATUS_ERROR_INTERNAL, message, 0);
_cupsSetError(IPP_INTERNAL_ERROR, message, 0);
if (logfile)
_cupsLangPuts(logfile, message);
@@ -522,7 +522,7 @@ cupsAdminExportSamba(
_("Unable to copy CUPS printer driver "
"files (%d).")), status);
_cupsSetError(IPP_STATUS_ERROR_INTERNAL, message, 0);
_cupsSetError(IPP_INTERNAL_ERROR, message, 0);
if (logfile)
_cupsLangPuts(logfile, message);
@@ -565,7 +565,7 @@ cupsAdminExportSamba(
_("Unable to install Windows 2000 printer "
"driver files (%d).")), status);
_cupsSetError(IPP_STATUS_ERROR_INTERNAL, message, 0);
_cupsSetError(IPP_INTERNAL_ERROR, message, 0);
if (logfile)
_cupsLangPuts(logfile, message);
@@ -610,7 +610,7 @@ cupsAdminExportSamba(
_("Unable to copy Windows 9x printer "
"driver files (%d).")), status);
_cupsSetError(IPP_STATUS_ERROR_INTERNAL, message, 0);
_cupsSetError(IPP_INTERNAL_ERROR, message, 0);
if (logfile)
_cupsLangPuts(logfile, message);
@@ -639,7 +639,7 @@ cupsAdminExportSamba(
_("Unable to install Windows 9x printer "
"driver files (%d).")), status);
_cupsSetError(IPP_STATUS_ERROR_INTERNAL, message, 0);
_cupsSetError(IPP_INTERNAL_ERROR, message, 0);
if (logfile)
_cupsLangPuts(logfile, message);
@@ -691,7 +691,7 @@ cupsAdminExportSamba(
_("Unable to copy 64-bit Windows printer "
"driver files (%d).")), status);
_cupsSetError(IPP_STATUS_ERROR_INTERNAL, message, 0);
_cupsSetError(IPP_INTERNAL_ERROR, message, 0);
if (logfile)
_cupsLangPuts(logfile, message);
@@ -726,7 +726,7 @@ cupsAdminExportSamba(
_("Unable to copy 64-bit CUPS printer driver "
"files (%d).")), status);
_cupsSetError(IPP_STATUS_ERROR_INTERNAL, message, 0);
_cupsSetError(IPP_INTERNAL_ERROR, message, 0);
if (logfile)
_cupsLangPuts(logfile, message);
@@ -769,7 +769,7 @@ cupsAdminExportSamba(
_("Unable to install Windows 2000 printer "
"driver files (%d).")), status);
_cupsSetError(IPP_STATUS_ERROR_INTERNAL, message, 0);
_cupsSetError(IPP_INTERNAL_ERROR, message, 0);
if (logfile)
_cupsLangPuts(logfile, message);
@@ -794,13 +794,13 @@ cupsAdminExportSamba(
"are installed.")),
sizeof(message));
_cupsSetError(IPP_STATUS_ERROR_NOT_FOUND, message, 0);
_cupsSetError(IPP_NOT_FOUND, message, 0);
_cupsLangPuts(logfile, message);
}
if (have_drivers == 0)
{
_cupsSetError(IPP_STATUS_ERROR_NOT_FOUND, message, 0);
_cupsSetError(IPP_NOT_FOUND, message, 0);
unlink(authfile);
@@ -821,7 +821,7 @@ cupsAdminExportSamba(
_("Unable to set Windows printer driver (%d).")),
status);
_cupsSetError(IPP_STATUS_ERROR_INTERNAL, message, 0);
_cupsSetError(IPP_INTERNAL_ERROR, message, 0);
if (logfile)
_cupsLangPuts(logfile, message);
@@ -843,7 +843,7 @@ cupsAdminExportSamba(
* The returned settings should be freed with cupsFreeOptions() when
* you are done with them.
*
* @since CUPS 1.3/OS X 10.5@
* @since CUPS 1.3/Mac OS X 10.5@
*/
int /* O - 1 on success, 0 on failure */
@@ -882,9 +882,9 @@ cupsAdminGetServerSettings(
*/
if (strcmp(cg->http->hostname, cg->server) ||
cg->ipp_port != httpAddrPort(cg->http->hostaddr) ||
cg->ipp_port != _httpAddrPort(cg->http->hostaddr) ||
(cg->http->encryption != cg->encryption &&
cg->http->encryption == HTTP_ENCRYPTION_NEVER))
cg->http->encryption == HTTP_ENCRYPT_NEVER))
{
/*
* Need to close the current connection because something has changed...
@@ -901,13 +901,13 @@ cupsAdminGetServerSettings(
if (!cg->http)
{
if ((cg->http = httpConnect2(cupsServer(), ippPort(), NULL, AF_UNSPEC,
cupsEncryption(), 1, 0, NULL)) == NULL)
if ((cg->http = _httpCreate(cupsServer(), ippPort(), NULL,
cupsEncryption(), AF_UNSPEC)) == NULL)
{
if (errno)
_cupsSetError(IPP_STATUS_ERROR_SERVICE_UNAVAILABLE, NULL, 0);
_cupsSetError(IPP_SERVICE_UNAVAILABLE, NULL, 0);
else
_cupsSetError(IPP_STATUS_ERROR_SERVICE_UNAVAILABLE,
_cupsSetError(IPP_SERVICE_UNAVAILABLE,
_("Unable to connect to host."), 1);
if (num_settings)
@@ -925,7 +925,7 @@ cupsAdminGetServerSettings(
if (!http || !num_settings || !settings)
{
_cupsSetError(IPP_STATUS_ERROR_INTERNAL, strerror(EINVAL), 0);
_cupsSetError(IPP_INTERNAL_ERROR, strerror(EINVAL), 0);
if (num_settings)
*num_settings = 0;
@@ -944,7 +944,7 @@ cupsAdminGetServerSettings(
*/
if ((status = get_cupsd_conf(http, cg, cg->cupsd_update, cupsdconf,
sizeof(cupsdconf), &remote)) == HTTP_STATUS_OK)
sizeof(cupsdconf), &remote)) == HTTP_OK)
{
if ((cupsd = cupsFileOpen(cupsdconf, "r")) == NULL)
{
@@ -954,7 +954,7 @@ cupsAdminGetServerSettings(
snprintf(message, sizeof(message),
_cupsLangString(cupsLangDefault(), _("Open of %s failed: %s")),
cupsdconf, strerror(errno));
_cupsSetError(IPP_STATUS_ERROR_INTERNAL, message, 0);
_cupsSetError(IPP_INTERNAL_ERROR, message, 0);
}
}
else
@@ -1136,7 +1136,7 @@ cupsAdminGetServerSettings(
cg->cupsd_num_settings,
&(cg->cupsd_settings));
}
else if (status != HTTP_STATUS_NOT_MODIFIED)
else if (status != HTTP_NOT_MODIFIED)
invalidate_cupsd_cache(cg);
/*
@@ -1159,7 +1159,7 @@ cupsAdminGetServerSettings(
/*
* 'cupsAdminSetServerSettings()' - Set settings on the server.
*
* @since CUPS 1.3/OS X 10.5@
* @since CUPS 1.3/Mac OS X 10.5@
*/
int /* O - 1 on success, 0 on failure */
@@ -1220,7 +1220,7 @@ cupsAdminSetServerSettings(
if (!http || !num_settings || !settings)
{
_cupsSetError(IPP_STATUS_ERROR_INTERNAL, strerror(EINVAL), 0);
_cupsSetError(IPP_INTERNAL_ERROR, strerror(EINVAL), 0);
return (0);
}
@@ -1230,11 +1230,11 @@ cupsAdminSetServerSettings(
*/
if (get_cupsd_conf(http, cg, 0, cupsdconf, sizeof(cupsdconf),
&remote) == HTTP_STATUS_OK)
&remote) == HTTP_OK)
{
if ((cupsd = cupsFileOpen(cupsdconf, "r")) == NULL)
{
_cupsSetError(IPP_STATUS_ERROR_INTERNAL, NULL, 0);
_cupsSetError(IPP_INTERNAL_ERROR, NULL, 0);
return (0);
}
}
@@ -1398,7 +1398,7 @@ cupsAdminSetServerSettings(
if (remote)
unlink(cupsdconf);
_cupsSetError(IPP_STATUS_ERROR_INTERNAL, NULL, 0);
_cupsSetError(IPP_INTERNAL_ERROR, NULL, 0);
return (0);
}
@@ -1954,7 +1954,7 @@ cupsAdminSetServerSettings(
status = cupsPutFile(http, "/admin/conf/cupsd.conf", tempfile);
if (status == HTTP_STATUS_CREATED)
if (status == HTTP_CREATED)
{
/*
* Updated OK, add the basic settings...
@@ -2024,7 +2024,7 @@ cupsAdminSetServerSettings(
unlink(tempfile);
return (status == HTTP_STATUS_CREATED);
return (status == HTTP_CREATED);
}
@@ -2158,16 +2158,16 @@ get_cupsd_conf(
snprintf(message, sizeof(message),
_cupsLangString(cupsLangDefault(), _("stat of %s failed: %s")),
name, strerror(errno));
_cupsSetError(IPP_STATUS_ERROR_INTERNAL, message, 0);
_cupsSetError(IPP_INTERNAL_ERROR, message, 0);
*name = '\0';
return (HTTP_STATUS_SERVER_ERROR);
return (HTTP_SERVER_ERROR);
}
else if (last_update && info.st_mtime <= last_update)
status = HTTP_STATUS_NOT_MODIFIED;
status = HTTP_NOT_MODIFIED;
else
status = HTTP_STATUS_OK;
status = HTTP_OK;
}
else
#endif /* !WIN32 */
@@ -2180,11 +2180,11 @@ get_cupsd_conf(
{
*name = '\0';
_cupsSetError(IPP_STATUS_ERROR_INTERNAL, NULL, 0);
_cupsSetError(IPP_INTERNAL_ERROR, NULL, 0);
invalidate_cupsd_cache(cg);
return (HTTP_STATUS_SERVER_ERROR);
return (HTTP_SERVER_ERROR);
}
*remote = 1;
@@ -2199,7 +2199,7 @@ get_cupsd_conf(
close(fd);
if (status != HTTP_STATUS_OK)
if (status != HTTP_OK)
{
unlink(name);
*name = '\0';
@@ -2337,5 +2337,5 @@ write_option(cups_file_t *dstfp, /* I - PPD file */
/*
* End of "$Id: adminutil.c 10996 2013-05-29 11:51:34Z msweet $".
* End of "$Id$".
*/
+7 -10
Ver Arquivo
@@ -1,9 +1,9 @@
/*
* "$Id: adminutil.h 10996 2013-05-29 11:51:34Z msweet $"
* "$Id$"
*
* Administration utility API definitions for CUPS.
*
* Copyright 2007-2012 by Apple Inc.
* Copyright 2007-2011 by Apple Inc.
* Copyright 2001-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
@@ -55,19 +55,16 @@ extern int cupsAdminExportSamba(const char *dest, const char *ppd,
const char *samba_server,
const char *samba_user,
const char *samba_password,
FILE *logfile) _CUPS_DEPRECATED;
FILE *logfile) _CUPS_API_1_2;
extern char *cupsAdminCreateWindowsPPD(http_t *http, const char *dest,
char *buffer, int bufsize)
_CUPS_DEPRECATED;
char *buffer, int bufsize) _CUPS_API_1_2;
extern int cupsAdminGetServerSettings(http_t *http,
int *num_settings,
cups_option_t **settings)
_CUPS_API_1_3;
cups_option_t **settings) _CUPS_API_1_3;
extern int cupsAdminSetServerSettings(http_t *http,
int num_settings,
cups_option_t *settings)
_CUPS_API_1_3;
cups_option_t *settings) _CUPS_API_1_3;
# ifdef __cplusplus
@@ -77,5 +74,5 @@ extern int cupsAdminSetServerSettings(http_t *http,
#endif /* !_CUPS_ADMINUTIL_H_ */
/*
* End of "$Id: adminutil.h 10996 2013-05-29 11:51:34Z msweet $".
* End of "$Id$".
*/
+1 -1
Ver Arquivo
@@ -1,5 +1,5 @@
<!--
"$Id: api-array.header 7266 2008-01-29 02:15:29Z mike $"
"$Id: api-array.header 9771 2011-05-12 05:21:56Z mike $"
Array API header for CUPS.
+1 -1
Ver Arquivo
@@ -1,5 +1,5 @@
<!--
"$Id: api-array.shtml 7616 2008-05-28 00:34:13Z mike $"
"$Id: api-array.shtml 9727 2011-04-28 21:20:12Z mike $"
Array API introduction for CUPS.
+1 -1
Ver Arquivo
@@ -1,5 +1,5 @@
<!--
"$Id: api-cups.header 7279 2008-01-31 01:50:44Z mike $"
"$Id: api-cups.header 9771 2011-05-12 05:21:56Z mike $"
CUPS API header for CUPS.
+5 -5
Ver Arquivo
@@ -1,9 +1,9 @@
<!--
"$Id: api-cups.shtml 7337 2008-02-22 04:44:04Z mike $"
"$Id: api-cups.shtml 9727 2011-04-28 21:20:12Z mike $"
API introduction for CUPS.
Copyright 2007-2013 by Apple Inc.
Copyright 2007-2011 by Apple Inc.
Copyright 1997-2006 by Easy Software Products, all rights reserved.
These coded instructions, statements, and computer programs are the
@@ -183,7 +183,7 @@ int num_options = 0;
<a href='#cups_option_t'>cups_option_t</a> *options = NULL;
<a href='#cups_dest_t'>cups_dest_t</a> *dest;
for (i = 0; i &lt; dest->num_options; i ++)
for (i = 0; i < dest->num_options; i ++)
num_options = <a href='#cupsAddOption'>cupsAddOption</a>(dest->options[i].name, dest->options[i].value,
num_options, &amp;options);
</pre>
@@ -235,7 +235,7 @@ job_id = <a href='#cupsPrintFiles'>cupsPrintFiles</a>(dest->name, 3, files, "Tes
<p>Finally, the <a href='#cupsCreateJob'><code>cupsCreateJob</code></a>
function creates a new job with no files in it. Files are added using the
<a href='#cupsStartDocument'><code>cupsStartDocument</code></a>,
<a href='#cupsStartDocument'><code>cupsStartDocument</code></a>,
<a href='api-httpipp.html#cupsWriteRequestData'><code>cupsWriteRequestData</code></a>,
and <a href='#cupsFinishDocument'><code>cupsFinishDocument</code></a> functions.
The following example creates a job with 10 text files for printing:</p>
@@ -299,7 +299,7 @@ int num_jobs;
<a href='#cups_job_t'>cups_job_t</a> *jobs;
int i;
ipp_jstate_t job_state = IPP_JOB_PENDING;
while (job_state &lt; IPP_JOB_STOPPED)
{
/* Get my jobs (1) with any state (-1) */
+1 -1
Ver Arquivo
@@ -1,5 +1,5 @@
<!--
"$Id: api-filedir.header 7279 2008-01-31 01:50:44Z mike $"
"$Id: api-filedir.header 9771 2011-05-12 05:21:56Z mike $"
File and Directory API header for CUPS.
+1 -1
Ver Arquivo
@@ -1,5 +1,5 @@
<!--
"$Id: api-filedir.shtml 7279 2008-01-31 01:50:44Z mike $"
"$Id: api-filedir.shtml 9727 2011-04-28 21:20:12Z mike $"
File and directory API introduction for CUPS.
+2 -2
Ver Arquivo
@@ -1,9 +1,9 @@
<!--
"$Id: api-filter.header 7616 2008-05-28 00:34:13Z mike $"
"$Id: api-filter.header 9771 2011-05-12 05:21:56Z mike $"
Filter and backend programming header for CUPS.
Copyright 2008-2014 by Apple Inc.
Copyright 2008-2011 by Apple Inc.
These coded instructions, statements, and computer programs are the
property of Apple Inc. and are protected by Federal copyright
+15 -104
Ver Arquivo
@@ -1,9 +1,9 @@
<!--
"$Id: api-filter.shtml 7677 2008-06-19 23:22:19Z mike $"
"$Id: api-filter.shtml 9799 2011-05-20 18:09:22Z mike $"
Filter and backend programming introduction for CUPS.
Copyright 2007-2013 by Apple Inc.
Copyright 2007-2011 by Apple Inc.
Copyright 1997-2006 by Easy Software Products, all rights reserved.
These coded instructions, statements, and computer programs are the
@@ -81,7 +81,7 @@ directory to write to.</p>
<p>In addition, some operating systems provide additional security mechanisms
that further limit file system access, even for backends running as root. On
OS X, for example, no backend may write to a user's home directory.</p>
Mac OS X, for example, no backend may write to a user's home directory.</p>
</blockquote>
<h3><a name="SIGNALS">Canceled Jobs and Signal Handling</a></h3>
@@ -153,7 +153,7 @@ when running print filters and backends:</p>
<dt>APPLE_LANGUAGE</dt>
<dd>The Apple language identifier associated with the job
(OS X only).</dd>
(Mac OS X only).</dd>
<dt>CHARSET</dt>
<dd>The job character set, typically "utf-8".</dd>
@@ -237,7 +237,7 @@ prefix strings:</p>
<code>marker-types</code>, <code>printer-alert</code>, and
<code>printer-alert-description</code> printer attributes. Standard
<code>marker-types</code> values are listed in <a href='#TABLE1'>Table
1</a>. String values need special handling - see <a href="#ATTR_STRINGS">Reporting Attribute String Values</a> below.</dd>
1</a>.</dd>
<dt>CRIT: message</dt>
<dd>Sets the printer-state-message attribute and adds the specified
@@ -320,11 +320,11 @@ the "DEBUG:" prefix string.</p>
<td>Fuser unit</td>
</tr>
<tr>
<td>fuser-cleaning-pad</td>
<td>fuserCleaningPad</td>
<td>Fuser cleaning pad</td>
</tr>
<tr>
<td>fuser-oil</td>
<td>fuserOil</td>
<td>Fuser oil</td>
</tr>
<tr>
@@ -336,7 +336,7 @@ the "DEBUG:" prefix string.</p>
<td>Photo conductor</td>
</tr>
<tr>
<td>solid-wax</td>
<td>solidWax</td>
<td>Wax supply</td>
</tr>
<tr>
@@ -348,19 +348,19 @@ the "DEBUG:" prefix string.</p>
<td>Toner supply</td>
</tr>
<tr>
<td>transfer-unit</td>
<td>transferUnit</td>
<td>Transfer unit</td>
</tr>
<tr>
<td>waste-ink</td>
<td>wasteInk</td>
<td>Waste ink tank</td>
</tr>
<tr>
<td>waste-toner</td>
<td>wasteToner</td>
<td>Waste toner tank</td>
</tr>
<tr>
<td>waste-wax</td>
<td>wasteWax</td>
<td>Waste wax tank</td>
</tr>
</tbody>
@@ -440,95 +440,6 @@ the "DEBUG:" prefix string.</p>
</tbody>
</table></div>
<h4><a name="ATTR_STRINGS">Reporting Attribute String Values</a></h4>
<p>When reporting string values using "ATTR:" messages, a filter or backend must take special care to appropriately quote those values. The scheduler uses the CUPS option parsing code for attributes, so the general syntax is:</p>
<pre class="example">
name=simple
name=simple,simple,...
name='complex value'
name="complex value"
name='"complex value"','"complex value"',...
</pre>
<p>Simple values are strings that do not contain spaces, quotes, backslashes, or the comma and can be placed verbatim in the "ATTR:" message, for example:</p>
<pre class="example">
int levels[4] = { 40, 50, 60, 70 }; /* CMYK */
fputs("ATTR: marker-colors=#00FFFF,#FF00FF,#FFFF00,#000000\n", stderr);
fputs("ATTR: marker-high-levels=100,100,100,100\n", stderr);
fprintf(stderr, "ATTR: marker-levels=%d,%d,%d,%d\n", levels[0], levels[1],
levels[2], levels[3], levels[4]);
fputs("ATTR: marker-low-levels=5,5,5,5\n", stderr);
fputs("ATTR: marker-types=toner,toner,toner,toner\n", stderr);
</pre>
<p>Complex values that contains spaces, quotes, backslashes, or the comma must be quoted. For a single value a single set of quotes is sufficient:</p>
<pre class="example">
fputs("ATTR: marker-message='Levels shown are approximate.'\n", stderr);
</pre>
<p>When multiple values are reported, each value must be enclosed by a set of single and double quotes:</p>
<pre class="example">
fputs("ATTR: marker-names='\"Cyan Toner\"','\"Magenta Toner\"',"
"'\"Yellow Toner\"','\"Black Toner\"'\n", stderr);
</pre>
<p>The IPP backend includes a <var>quote_string</var> function that may be used to properly quote a complex value in an "ATTR:" message:</p>
<pre class="example">
static const char * /* O - Quoted string */
quote_string(const char *s, /* I - String */
char *q, /* I - Quoted string buffer */
size_t qsize) /* I - Size of quoted string buffer */
{
char *qptr, /* Pointer into string buffer */
*qend; /* End of string buffer */
qptr = q;
qend = q + qsize - 5;
if (qend &lt; q)
{
*q = '\0';
return (q);
}
*qptr++ = '\'';
*qptr++ = '\"';
while (*s && qptr &lt; qend)
{
if (*s == '\\' || *s == '\"' || *s == '\'')
{
if (qptr &lt; (qend - 4))
{
*qptr++ = '\\';
*qptr++ = '\\';
*qptr++ = '\\';
}
else
break;
}
*qptr++ = *s++;
}
*qptr++ = '\"';
*qptr++ = '\'';
*qptr = '\0';
return (q);
}
</pre>
<h4><a name="MANAGING_STATE">Managing Printer State in a Filter</a></h4>
<p>Filters are responsible for managing the state keywords they set using
@@ -563,7 +474,7 @@ sub-state and not an issue that applies when a job is not printing.</p>
<blockquote><b>Note:</b>
<p>"STATE:" messages often provide visible alerts to the user. For example,
on OS X setting a printer-state-reason value with an "-error" or
on Mac OS X setting a printer-state-reason value with an "-error" or
"-warning" suffix will cause the printer's dock item to bounce if the
corresponding reason is localized with a cupsIPPReason keyword in the
printer's PPD file.</p>
@@ -577,7 +488,7 @@ from localizing the vendor-prefixed keyword in the PPD file - otherwise both
the generic and vendor-specific keyword will be shown in the user
interface.</p>
</blockquote>
</blockquote></dd>
<h4><a name="REPORTING_SUPPLIES">Reporting Supply Levels</a></h4>
@@ -702,7 +613,7 @@ datalen = sizeof(data) - 1;
status = <a href="#cupsSideChannelDoRequest">cupsSideChannelDoRequest</a>(CUPS_SC_CMD_GET_DEVICE_ID, data, &amp;datalen, 1.0);
/* Use the returned value if OK was returned and the length is non-zero */
if (status == CUPS_SC_STATUS_OK &amp;&amp; datalen > 0)
if (status == CUPS_SC_STATUS_OK && datalen > 0)
data[datalen] = '\0';
else
data[0] = '\0';
+1 -1
Ver Arquivo
@@ -1,5 +1,5 @@
<!--
"$Id: api-httpipp.header 7258 2008-01-28 00:15:05Z mike $"
"$Id: api-httpipp.header 9771 2011-05-12 05:21:56Z mike $"
HTTP and IPP API header for CUPS.
+52 -46
Ver Arquivo
@@ -1,9 +1,9 @@
<!--
"$Id: api-httpipp.shtml 7684 2008-06-23 16:47:38Z mike $"
"$Id: api-httpipp.shtml 9727 2011-04-28 21:20:12Z mike $"
HTTP and IPP API introduction for CUPS.
Copyright 2007-2012 by Apple Inc.
Copyright 2007-2011 by Apple Inc.
Copyright 1997-2006 by Easy Software Products, all rights reserved.
These coded instructions, statements, and computer programs are the
@@ -29,20 +29,35 @@ The constant <code>CUPS_HTTP_DEFAULT</code> can be used with all of the
<code>cups</code> functions to refer to the default CUPS server - the functions
create a per-thread <a href='#http_t'><code>http_t</code></a> as needed.</p>
<p>The IPP APIs use two opaque structures for requests (messages sent to the CUPS scheduler) and responses (messages sent back to your application from the scheduler). The <a href='#ipp_t'><code>ipp_t</code></a> type holds a complete request or response and is allocated using the <a href='#ippNew'><code>ippNew</code></a> or <a href='#ippNewRequest'><code>ippNewRequest</code></a> functions and freed using the <a href='#ippDelete'><code>ippDelete</code></a> function.</p>
<p>The IPP APIs use two structures for requests (messages sent to the CUPS
scheduler) and responses (messages sent back to your application from the
scheduler). The <a href='#ipp_t'><code>ipp_t</code></a> structure holds a
complete request or response and is allocated using the
<a href='#ippNew'><code>ippNew</code></a> or
<a href='#ippNewRequest'><code>ippNewRequest</code></a> functions and
freed using the <a href='#ippDelete'><code>ippDelete</code></a> function.</p>
<p>The second opaque structure is called <a href='#ipp_attribute_t'><code>ipp_attribute_t</code></a> and holds a single IPP attribute which consists of a group tag (<a href='#ippGetGroupTag'><code>ippGetGroupTag</code></a>), a value type tag (<a href='#ippGetValueTag'><code>ippGetValueTag</code></a>), the attribute name (<a href='#ippGetName'><code>ippGetName</code></a>), and 1 or more values (<a href='#ippGetCount'><code>ippGetCount</code></a>, <a href='#ippGetBoolean'><code>ippGetBoolean</code></a>, <a href='#ippGetCollection'><code>ippGetCollection</code></a>, <a href='#ippGetDate'><code>ippGetDate</code></a>, <a href='#ippGetInteger'><code>ippGetInteger</code></a>, <a href='#ippGetRange'><code>ippGetRange</code></a>, <a href='#ippGetResolution'><code>ippGetResolution</code></a>, and <a href='#ippGetString'><code>ippGetString</code></a>). Attributes are added to an <a href='#ipp_t'><code>ipp_t</code></a> pointer using one of the <code>ippAdd</code> functions. For example, use <a href='#ippAddString'><code>ippAddString</code></a> to add the "printer-uri" and "requesting-user-name" string attributes to a request:</p>
<p>The second structure is called
<a href='#ipp_attribute_t'><code>ipp_attribute_t</code></a> and holds a
single IPP attribute which consists of a group tag (<code>group_tag</code>), a
value type tag (<code>value_tag</code>), the attribute name (<code>name</code>),
and 1 or more values (<code>values[]</code>). Attributes are added to an
<a href='#ipp_t'><code>ipp_t</code></a> structure using one of the
<code>ippAdd</code> functions. For example, use
<a href='#ippAddString'><code>ippAddString</code></a> to add a
"requesting-user-name" string attribute to a request:</p>
<pre class='example'>
<a href='#ipp_t'>ipp_t</a> *request = <a href='#ippNewRequest'>ippNewRequest</a>(IPP_GET_JOBS);
<a href='#ippAddString'>ippAddString</a>(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri",
NULL, "ipp://localhost/printers/");
<a href='#ippAddString'>ippAddString</a>(request, IPP_TAG_OPERATION, IPP_TAG_NAME, "requesting-user-name",
NULL, cupsUser());
</pre>
<p>Once you have created an IPP request, use the <code>cups</code> functions to send the request to and read the response from the server. For example, the <a href='#cupsDoRequest'><code>cupsDoRequest</code></a> function can be used for simple query operations that do not involve files:</p>
<p>Once you have created an IPP request, use the <code>cups</code>
functions to send the request to and read the response from the server.
For example, the <a href='#cupsDoRequest'><code>cupsDoRequest</code></a>
function can be used for simple query operations that do not involve files:</p>
<pre class='example'>
#include &lt;cups/cups.h&gt;
@@ -52,8 +67,6 @@ create a per-thread <a href='#http_t'><code>http_t</code></a> as needed.</p>
{
<a href='#ipp_t'>ipp_t</a> *request = <a href='#ippNewRequest'>ippNewRequest</a>(IPP_GET_JOBS);
<a href='#ippAddString'>ippAddString</a>(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri",
NULL, "ipp://localhost/printers/");
<a href='#ippAddString'>ippAddString</a>(request, IPP_TAG_OPERATION, IPP_TAG_NAME, "requesting-user-name",
NULL, cupsUser());
@@ -61,7 +74,13 @@ create a per-thread <a href='#http_t'><code>http_t</code></a> as needed.</p>
}
</pre>
<p>The <a href='#cupsDoRequest'><code>cupsDoRequest</code></a> function frees the request and returns an IPP response or <code>NULL</code> pointer if the request could not be sent to the server. Once you have a response from the server, you can either use the <a href='#ippFindAttribute'><code>ippFindAttribute</code></a> and <a href='#ippFindNextAttribute'><code>ippFindNextAttribute</code></a> functions to find specific attributes, for example:</p>
<p>The <a href='#cupsDoRequest'><code>cupsDoRequest</code></a> function frees
the request structure and returns an IPP response structure or NULL pointer if
the request could not be sent to the server. Once you have a response from
the server, you can either use the
<a href='#ippFindAttribute'><code>ippFindAttribute</code></a> and
<a href='#ippFindNextAttribute'><code>ippFindNextAttribute</code></a> functions
to find specific attributes, for example:</p>
<pre class='example'>
<a href='#ipp_t'>ipp_t</a> *response;
@@ -70,20 +89,25 @@ create a per-thread <a href='#http_t'><code>http_t</code></a> as needed.</p>
attr = <a href='#ippFindAttribute'>ippFindAttribute</a>(response, "printer-state", IPP_TAG_ENUM);
</pre>
<p>You can also walk the list of attributes with a simple <code>for</code> loop like this:</p>
<p>You can also walk the list of attributes with a simple <code>for</code> loop
like this:</p>
<pre class='example'>
<a href='#ipp_t'>ipp_t</a> *response;
<a href='#ipp_attribute_t'>ipp_attribute_t</a> *attr;
for (attr = <a href='#ippFirstAttribute'>ippFirstAttribute</a>(response); attr != NULL; attr = <a href='#ippNextAttribute'>ippNextAttribute</a>(response))
if (ippGetName(attr) == NULL)
for (attr = response->attrs; attr != NULL; attr = attr->next)
if (attr->name == NULL)
puts("--SEPARATOR--");
else
puts(ippGetName(attr));
puts(attr->name);
</pre>
<p>The <code>for</code> loop approach is normally used when collecting attributes for multiple objects (jobs, printers, etc.) in a response. Attributes with <code>NULL</code> names indicate a separator between the attributes of each object. For example, the following code will list the jobs returned from our previous <a href='#get_jobs'><code>get_jobs</code></a> example code:</p>
<p>The <code>for</code> loop approach is normally used when collecting
attributes for multiple objects (jobs, printers, etc.) in a response. Attributes
with <code>NULL</code> names indicate a separator between the attributes of
each object. For example, the following code will list the jobs returned from
our previous <a href='#get_jobs'><code>get_jobs</code></a> example code:</p>
<pre class='example'>
<a href='#ipp_t'>ipp_t</a> *response = <a href='#get_jobs'>get_jobs</a>();
@@ -91,55 +115,37 @@ for (attr = <a href='#ippFirstAttribute'>ippFirstAttribute</a>(response); attr !
if (response != NULL)
{
<a href='#ipp_attribute_t'>ipp_attribute_t</a> *attr;
const char *attrname;
int job_id = 0;
const char *job_name = NULL;
const char *job_originating_user_name = NULL;
char *job_name = NULL;
char *job_originating_user_name = NULL;
puts("Job ID Owner Title");
puts("------ ---------------- ---------------------------------");
for (attr = <a href='#ippFirstAttribute'>ippFirstAttribute</a>(response); attr != NULL; attr = <a href='#ippNextAttribute'>ippNextAttribute</a>(response))
for (attr = response->attrs; attr != NULL; attr = attr->next)
{
/* Attributes without names are separators between jobs */
attrname = ippGetName(attr);
if (attrname == NULL)
if (attr->name == NULL)
{
if (job_id > 0)
{
if (job_name == NULL)
job_name = "(withheld)";
if (job_originating_user_name == NULL)
job_originating_user_name = "(withheld)";
if (job_id > 0 &amp;&amp; job_name != NULL &amp;&amp; job_originating_user_name != NULL)
printf("%5d %-16s %s\n", job_id, job_originating_user_name, job_name);
}
job_id = 0;
job_name = NULL;
job_originating_user_name = NULL;
continue;
}
else if (!strcmp(attrname, "job-id") &amp;&amp; ippGetValueTag(attr) == IPP_TAG_INTEGER)
job_id = ippGetInteger(attr, 0);
else if (!strcmp(attrname, "job-name") &amp;&amp; ippGetValueTag(attr) == IPP_TAG_NAME)
job_name = ippGetString(attr, 0, NULL);
else if (!strcmp(attrname, "job-originating-user-name") &amp;&amp;
ippGetValueTag(attr) == IPP_TAG_NAME)
job_originating_user_name = ippGetString(attr, 0, NULL);
else if (!strcmp(attr->name, "job-id") &amp;&amp; attr->value_tag == IPP_TAG_INTEGER)
job_id = attr->values[0].integer;
else if (!strcmp(attr->name, "job-name") &amp;&amp; attr->value_tag == IPP_TAG_NAME)
job_name = attr->values[0].string.text;
else if (!strcmp(attr->name, "job-originating-user-name") &amp;&amp;
attr->value_tag == IPP_TAG_NAME)
job_originating_user_name = attr->values[0].string.text;
}
if (job_id > 0)
{
if (job_name == NULL)
job_name = "(withheld)";
if (job_originating_user_name == NULL)
job_originating_user_name = "(withheld)";
if (job_id > 0 &amp;&amp; job_name != NULL &amp;&amp; job_originating_user_name != NULL)
printf("%5d %-16s %s\n", job_id, job_originating_user_name, job_name);
}
}
</pre>

Alguns arquivos não foram exibidos porque demasiados arquivos foram alterados neste diff Mostrar Mais