home *** CD-ROM | disk | FTP | other *** search
- /* AuditLibrary.c */
- /*
- * AuditLibrary.c
- * Copyright © 1992-93 Apple Computer Inc. All Rights Reserved.
- *
- * Auditing for a few of the low-level AOCE directory service routines.
- */
- #include "SKEL•CSAM.h"
- #include <string.h>
-
- #if AUDIT
-
- void AuditCString(AuditPtr auditPtr , OSType ID, char * cStr) {
- Str31 pStr;
- short cLen = strlen(cStr);
-
- if (cLen > 31) cLen = 31;
- pStr[0] = cLen;
- BlockMove(cStr, &pStr[1], cLen);
- Audit(auditPtr, ID, kAuditFormatString, pStr);
- }
-
- void AuditRString(AuditPtr auditPtr, OSType ID, RStringPtr rStr) {
- Audit(auditPtr, ID, kAuditFormatString, OCERToPString(rStr));
- }
-
- void AuditRecordList(AuditPtr auditPtr, RecordIDPtr * aRecordList, unsigned long recordIDCount) {
- unsigned long i;
-
- AuditStatusString(auditPtr, 'RL-n', recordIDCount, "\pRecord List");
- for (i = 0; i < recordIDCount; i++)
- AuditRecordID(auditPtr, aRecordList[i]);
- }
-
- void AuditAttributeTypeList(AuditPtr auditPtr, RStringPtr * attrTypeList, unsigned long attrTypeCount) {
- unsigned long i;
-
- AuditStatusString(auditPtr, 'AT-n', attrTypeCount, "\pAttribute Type List");
- for (i = 0; i < attrTypeCount; i++)
- AuditRString(auditPtr, 'AT-t', attrTypeList[i]);
- }
-
- void AuditRecordID(AuditPtr auditPtr, RecordIDPtr recordIDPtr) {
- if (recordIDPtr == NULL)
- Audit(auditPtr, 'rcID', kAuditFormatString, "\pNull recordID Ptr");
- else {
- AuditPackedRLIPtr(auditPtr, recordIDPtr->rli);
- AuditLocalRecordID(auditPtr, &recordIDPtr->local);
- }
- }
-
-
- void AuditPackedRLIPtr(AuditPtr auditPtr, PackedRLIPtr rliPtr) {
- RLI theRLI;
-
- if (rliPtr == NULL)
- Audit(auditPtr, 'PRLI', kAuditFormatString, "\pNull RLI Ptr");
- else if (OCEValidPackedRLI(rliPtr)) {
- OCEUnpackRLI(rliPtr, &theRLI);
- Audit(auditPtr, 'PRLI', kAuditFormatString, OCERToPString((RString *) theRLI.directoryName));
- Audit(auditPtr, 'PRLI', AuditFormat3(kAuditFormatHex, kAuditFormatAddress, kAuditFormatUnsigned),
- theRLI.discriminator.signature,
- theRLI.discriminator.misc,
- theRLI.dNodeNumber);
- AuditPath(auditPtr, theRLI.path);
- }
- else {
- Audit(auditPtr, 'PRLI', kAuditFormatString, "\pInvalid RLI Ptr");
- Audit(auditPtr, 'PRLI', AuditFormat1(kAuditFormatAddress), rliPtr);
- }
- }
-
- void AuditLocalRecordID(AuditPtr auditPtr, LocalRecordIDPtr localRecordIDPtr) {
- Audit(auditPtr, 'LRid', kAuditFormatString, "\pLocal record id");
- Audit(auditPtr, 'LRid', AuditFormat2(kAuditFormatUnsigned, kAuditFormatUnsigned),
- localRecordIDPtr->cid.source,
- localRecordIDPtr->cid.seq);
- AuditRString(auditPtr, 'LRid', localRecordIDPtr->recordName);
- AuditRString(auditPtr, 'LRid', localRecordIDPtr->recordType);
- }
-
-
- void AuditPath(AuditPtr auditPtr, PackedPathNamePtr thePath) {
- RStringPtr Parts[32];
- short Parts_Total;
-
- if (nil == thePath)
- Audit(auditPtr, 'Path', kAuditFormatString, "\pNull path");
- else {
- Parts_Total = OCEUnpackPathName(thePath, Parts, 8);
- AuditParts(auditPtr, Parts_Total, Parts);
- }
- }
-
-
- void AuditAttribute(AuditPtr auditPtr, AttributePtr attr_Ptr) {
- if (nil == attr_Ptr)
- Audit(auditPtr, 'Attr', kAuditFormatString, "\pNull Attribute Ptr");
- else {
- AuditRString(auditPtr , 'Attr', (RStringPtr)&attr_Ptr->attributeType);
- Audit(auditPtr, 'Attr', AuditFormat2(kAuditFormatUnsigned, kAuditFormatUnsigned),
- attr_Ptr->cid.source,
- attr_Ptr->cid.seq);
- Audit(auditPtr, 'Attr', AuditFormat3(kAuditFormatHex, kAuditFormatSigned, kAuditFormatHex),
- attr_Ptr->value.tag,
- attr_Ptr->value.dataLength,
- *(attr_Ptr->value.bytes));
- }
- }
-
-
- void AuditDSSpec(AuditPtr auditPtr, DSSpec * Object_Ptr) {
- if (nil == Object_Ptr)
- Audit(auditPtr, 'DSSp', kAuditFormatString, "\pNull DSSpec Ptr");
- else {
- Audit(auditPtr, 'DSSp', kAuditFormatString, "\pDS Specifier");
-
- AuditPackedRLIPtr(auditPtr, Object_Ptr->entitySpecifier->rli);
- AuditLocalRecordID(auditPtr, &Object_Ptr->entitySpecifier->local);
-
- Audit(auditPtr, 'DSSp', AuditFormat1(kAuditFormatHex),
- Object_Ptr->extensionType);
- if (Object_Ptr->extensionSize > 0)
- Audit(auditPtr, 'DSSp', AuditFormat2(kAuditFormatUnsigned, kAuditFormatAddress),
- Object_Ptr->extensionSize,
- Object_Ptr->extensionValue);
- }
- }
-
- void AuditDirEnumSpec(AuditPtr auditPtr, DirEnumSpec * DirEnumSpec_Ptr) {
- if (nil == DirEnumSpec_Ptr)
- Audit(auditPtr, 'DirN', kAuditFormatString, "\pNull DirEnumSpec Ptr");
- else {
- AuditStatusString(auditPtr, 'DirN', DirEnumSpec_Ptr->enumFlag, "\penumFlag");
- AuditStatusString(auditPtr, 'DirN', DirEnumSpec_Ptr->indexRatio, "\pindexRatio");
- if (kEnumDNodeMask == DirEnumSpec_Ptr->enumFlag) {
- AuditStatusString(auditPtr, 'DirN', DirEnumSpec_Ptr->u.dNodeIdentifier.dNodeNumber, "\pdNodeNum");
- }
- else {
- AuditLocalRecordID(auditPtr, &DirEnumSpec_Ptr->u.recordIdentifier);
- }
- }
- }
-
- void AuditParts(AuditPtr auditPtr, short Parts_Count, RString * Parts[]) {
- if (Parts_Count == 0)
- Audit(auditPtr, 'Path', kAuditFormatString, "\pParts_Count = 0");
- else {
- while (Parts_Count != 0)
- Audit(auditPtr, 'Path', kAuditFormatString, OCERToPString(Parts[--Parts_Count]));
- }
- }
-
- #endif
-