• Wayne Davison's avatar
    - Unified the formerly separate user & group name-lists into a single · 030820d5
    Wayne Davison authored
      name-list.  On POSIX systems, this list will be sorted with the user
      names first, so the code will work essentially the same way it did
      before for the currently supported OSes.  However, the code will now
      more easily support non-POSIX ACL setups such as (hopefully) the one
      used in OS X.
    - Increased the (potentially) available access-bit storage for name
      elements from 3 to 31 bits.  For non-name elements, the access bits
      now have the potential to store 7 bits instead of 3.  (All the
      current POSIX implementations still error-check their values at 3
      bits, but this will allow adding non-POSIX ACL setups more easily.)
    - The protocol that transmits the ACL information was changed to send
      names in a single list, and to use {read,write}_varint() functions
      instead of {read,write}_byte().  This supports sending access-bit
      values up to 32-bits (minus any bits reserved for xmit flags).
    - The construction of the internal access-bit value was moved into the
      lib/sysacls.c code, so that it could be handled in an appropriate
      manner for each OS.
    
    (Aside: the code still does not support transmitting incompatible ACL
    information between systems, but I envision improving --fake-super to
    store the ACL information that is received as xattr information, and
    this would allow a system that supports extended attributes to backup
    a source system that had an incompatible ACL method.)
    030820d5
acls.c 27.5 KB