]> git.ipfire.org Git - thirdparty/cups.git/blobdiff - cups/api-filter.shtml
Fix implementation of _cupsCondWait with timeout.
[thirdparty/cups.git] / cups / api-filter.shtml
index eb08da3b0469061fe4227c273e70f741f434d321..0a1e429849cd7e5b3facf8f6ef94629835ac4d4f 100644 (file)
@@ -1,16 +1,11 @@
 <!--
-  "$Id: api-filter.shtml 7677 2008-06-19 23:22:19Z mike $"
-
   Filter and backend programming introduction for CUPS.
 
-  Copyright 2007-2014 by Apple Inc.
-  Copyright 1997-2006 by Easy Software Products, all rights reserved.
+  Copyright © 2007-2016 by Apple Inc.
+  Copyright © 1997-2006 by Easy Software Products, all rights reserved.
 
-  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/".
+  Licensed under Apache License v2.0.  See the file "LICENSE" for more
+  information.
 -->
 
 <h2 class='title'><a name="OVERVIEW">Overview</a></h2>
@@ -81,7 +76,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. See the <a href="#SANDBOXING">Sandboxing on OS X</a> section for more information.</p>
+macOS, for example, no backend may write to a user's home directory. See the <a href="#SANDBOXING">Sandboxing on macOS</a> section for more information.</p>
 </blockquote>
 
 <h3><a name="SIGNALS">Canceled Jobs and Signal Handling</a></h3>
@@ -96,7 +91,7 @@ being printed.</p>
 <p>Filters and backends may also receive <code>SIGPIPE</code> when an upstream or downstream filter/backend exits with a non-zero status. Developers should generally ignore <code>SIGPIPE</code> at the beginning of <code>main()</code> with the following function call:</p>
 
 <pre class="example">
-#include &lt;signal.h&gt;>
+#include &lt;signal.h&gt;
 
 ...
 
@@ -153,7 +148,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>
+       (macOS only).</dd>
 
        <dt>CHARSET</dt>
        <dd>The job character set, typically "utf-8".</dd>
@@ -287,7 +282,7 @@ prefix strings:</p>
        <dd>Sets or clears printer-state-reason keywords for the current queue.
        Typically this is used to indicate persistent media, ink, toner, and
        configuration conditions or errors on a printer.
-       <a href='#TABLE2'>Table 2</a> lists the standard state keywords -
+       <a href='#TABLE2'>Table 2</a> lists some of the standard "printer-state-reasons" keywords from the <a href="http://www.iana.org/assignments/ipp-registrations/ipp-registrations.xhtml#ipp-registrations-4">IANA IPP Registry</a> -
        use vendor-prefixed ("com.example.foo") keywords for custom states. See
        <a href="#MANAGING_STATE">Managing Printer State in a Filter</a> for more
        information.
@@ -563,7 +558,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 macOS 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>
@@ -853,9 +848,9 @@ void *my_data;
 <a href="#cupsSideChannelSNMPWalk">cupsSNMPSideChannelWalk</a>(".1.3.6.1.2.1.43", 5.0, my_callback, my_data);
 </pre>
 
-<h2><a name="SANDBOXING">Sandboxing on OS X</a></h2>
+<h2><a name="SANDBOXING">Sandboxing on macOS</a></h2>
 
-<p>Starting with OS X 10.6, filters and backends are run inside a security "sandbox" which further limits (beyond the normal UNIX user/group permissions) what a filter or backend can do. This helps to both secure the printing system from malicious software and enforce the functional separation of components in the CUPS filter chain. What follows is a list of actions that are explicitly allowed for all filters and backends:</p>
+<p>Starting with macOS 10.6, filters and backends are run inside a security "sandbox" which further limits (beyond the normal UNIX user/group permissions) what a filter or backend can do. This helps to both secure the printing system from malicious software and enforce the functional separation of components in the CUPS filter chain. What follows is a list of actions that are explicitly allowed for all filters and backends:</p>
 
 <ol>
 
@@ -867,7 +862,7 @@ void *my_data;
 
        <li>Bluetooth and USB: backends can access Bluetooth and USB printers through IOKit. <em>Filters cannot access Bluetooth and USB printers directly.</em></li>
 
-       <li>Network: filters and backends can access UNIX domain sockets under the <var>/private/var/run</var> and <var>/private/var/tmp</var> directories. Backends can also create IPv4 and IPv6 TCP (outgoing) and UDP (incoming and outgoing) socket, and bind to local source ports. <em>Filters cannot directly create IPv4 and IPv6 TCP or UDP sockets.</em></li>
+       <li>Network: filters and backends can access UNIX domain sockets under the <var>/private/tmp</var>, <var>/private/var/run</var>, and <var>/private/var/tmp</var> directories. Backends can also create IPv4 and IPv6 TCP (outgoing) and UDP (incoming and outgoing) socket, and bind to local source ports. <em>Filters cannot directly create IPv4 and IPv6 TCP or UDP sockets.</em></li>
 
        <li>Notifications: filters and backends can send notifications via the Darwin <code>notify_post()</code> API.</li>