<def-group>
  <definition class="compliance" id="cups_disable_browsing" version="1">
    {{{ oval_metadata("The CUPS print service can be configured to broadcast a list
      of available printers to the network. Other machines on the network, also
      running the CUPS print service, can be configured to listen to these
      broadcasts and add and configure these printers for immediate use. By
      disabling this browsing capability, the machine will no longer generate
      or receive such broadcasts.") }}}
    <criteria operator="AND">
      <criterion comment="Ensure remote printer browsing is off"
      test_ref="test_cups_disable_browsing_browsing_off" />
      <criterion comment="Ensure no incoming printer information packets are allowed"
      test_ref="test_cups_disable_browsing_browseallow" />
    </criteria>
  </definition>

  <ind:textfilecontent54_test check="all" check_existence="all_exist"
  comment="Disable Browsing" id="test_cups_disable_browsing_browsing_off"
  version="2">
    <ind:object object_ref="obj_cups_disable_browsing_browsing_off" />
  </ind:textfilecontent54_test>
  <ind:textfilecontent54_object id="obj_cups_disable_browsing_browsing_off" version="2">
    <ind:filepath>/etc/cups/cupsd.conf</ind:filepath>
    <ind:pattern operation="pattern match">^[\s]*Browsing[\s]+(?:Off|No)</ind:pattern>
    <ind:instance datatype="int">1</ind:instance>
  </ind:textfilecontent54_object>

  <ind:textfilecontent54_test check="all" check_existence="all_exist"
  comment="Do not allow incoming printer information packets"
  id="test_cups_disable_browsing_browseallow" version="2">
    <ind:object object_ref="obj_cups_disable_browsing_browseallow" />
  </ind:textfilecontent54_test>
  <ind:textfilecontent54_object id="obj_cups_disable_browsing_browseallow" version="2">
    <ind:filepath>/etc/cups/cupsd.conf</ind:filepath>
    <ind:pattern operation="pattern match">^[\s]*BrowseAllow[\s]+(?:none)</ind:pattern>
    <ind:instance datatype="int">1</ind:instance>
  </ind:textfilecontent54_object>
</def-group>
