+//
+// We override getAcl to provide PIN state feedback
+//
+void Token::getAcl(const char *tag, uint32 &count, AclEntryInfo *&acls)
+{
+ if (pinFromAclTag(tag, "?")) { // read from tokend - do not cache
+ AclEntryInfo *racls;
+ token().tokend().getAcl(aclKind(), tokenHandle(), tag, count, racls);
+ // make a chunk-copy because that's the contract we have with the caller
+ acls = Allocator::standard().alloc<AclEntryInfo>(count * sizeof(AclEntryInfo));
+ memcpy(acls, racls, count * sizeof(AclEntryInfo));
+ ChunkCopyWalker copy;
+ for (uint32 n = 0; n < count; n++)
+ walk(copy, acls[n]);
+ return;
+ }
+
+ TokenAcl::cssmGetAcl(tag, count, acls);
+}
+
+