mirror of
https://github.com/darlinghq/darling.git
synced 2025-02-22 19:01:36 +00:00
Stub CFOpenDirectory
The public headers are imported from the macOS SDK and from the last released OpenDirectory (version 146); it's ok to import them from the SDK because they're still APSL licensed
This commit is contained in:
parent
00fc01add3
commit
7819ca3ece
@ -0,0 +1 @@
|
||||
Versions/Current/Frameworks
|
@ -0,0 +1 @@
|
||||
Versions/Current/Headers
|
@ -0,0 +1 @@
|
||||
../../../../../../../../../../../../../../../../src/frameworks/CFOpenDirectory/include/CFOpenDirectory
|
@ -0,0 +1 @@
|
||||
A
|
1
framework-include/CFOpenDirectory
Symbolic link
1
framework-include/CFOpenDirectory
Symbolic link
@ -0,0 +1 @@
|
||||
../Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/OpenDirectory.framework/Frameworks/CFOpenDirectory.framework/Headers
|
18
src/frameworks/CFOpenDirectory/CMakeLists.txt
Normal file
18
src/frameworks/CFOpenDirectory/CMakeLists.txt
Normal file
@ -0,0 +1,18 @@
|
||||
project(CFOpenDirectory)
|
||||
|
||||
set(DYLIB_COMPAT_VERSION "1.0.0")
|
||||
set(DYLIB_CURRENT_VERSION "1.0.0")
|
||||
|
||||
add_framework(CFOpenDirectory
|
||||
FAT
|
||||
CURRENT_VERSION
|
||||
VERSION "A"
|
||||
|
||||
SOURCES
|
||||
src/CFOpenDirectory.c
|
||||
src/constants.c
|
||||
|
||||
DEPENDENCIES
|
||||
system
|
||||
CoreFoundation
|
||||
)
|
@ -0,0 +1,42 @@
|
||||
/*
|
||||
* Copyright (c) 2009 Apple Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this
|
||||
* file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_END@
|
||||
*/
|
||||
|
||||
#if !defined(__OPENDIRECTORY_CFODCONTEXT__)
|
||||
#define __OPENDIRECTORY_CFODCONTEXT__ 1
|
||||
|
||||
#include <CFOpenDirectory/CFOpenDirectory.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/*!
|
||||
@function ODContextGetTypeID
|
||||
@abstract Standard GetTypeID function support for CF-based objects
|
||||
@discussion Returns the typeID for the ODContext object
|
||||
@result a valid CFTypeID for the ODContext object
|
||||
*/
|
||||
CF_EXPORT
|
||||
CFTypeID ODContextGetTypeID(void);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* ! __OPENDIRECTORY_CFODCONTEXT__ */
|
@ -0,0 +1,442 @@
|
||||
/*
|
||||
* Copyright (c) 2009-2012 Apple Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this
|
||||
* file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_END@
|
||||
*/
|
||||
|
||||
#if !defined(__OPENDIRECTORY_CFODNODE__)
|
||||
#define __OPENDIRECTORY_CFODNODE__ 1
|
||||
|
||||
#include <CFOpenDirectory/CFOpenDirectory.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/*!
|
||||
@function ODNodeGetTypeID
|
||||
@abstract Standard GetTypeID function support for CF-based objects
|
||||
@discussion Returns the typeID for the ODNode objects
|
||||
@result a valid CFTypeID for the ODNode object
|
||||
*/
|
||||
CF_EXPORT
|
||||
CFTypeID ODNodeGetTypeID(void) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODNodeCreateWithNodeType
|
||||
@abstract Creates an ODNodeRef based on a specific node type
|
||||
@discussion Creates an ODNodeRef based on a specific node type
|
||||
@param allocator a memory allocator to use for this object
|
||||
@param session an ODSessionRef, either kODSessionDefault or a valid ODSessionRef can be passed
|
||||
@param nodeType an ODNodeType of the node to open
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result a valid ODNodeRef if successful, otherwise returns NULL. outError can be checked for details upon
|
||||
failure.
|
||||
*/
|
||||
CF_EXPORT
|
||||
ODNodeRef ODNodeCreateWithNodeType(CFAllocatorRef allocator, ODSessionRef session, ODNodeType nodeType, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODNodeCreateWithName
|
||||
@abstract Creates an ODNodeRef based on a partciular node name
|
||||
@discussion Creates an ODNodeRef based on a particular node name
|
||||
@param allocator a memory allocator to use for this object
|
||||
@param session an ODSessionRef, either kODSessionDefault or a valid ODSessionRef can be passed
|
||||
@param nodeName a CFStringRef of the name of the node to open
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result a valid ODNodeRef if successful, otherwise returns NULL. outError can be checked for specific
|
||||
error
|
||||
*/
|
||||
CF_EXPORT
|
||||
ODNodeRef ODNodeCreateWithName(CFAllocatorRef allocator, ODSessionRef session, CFStringRef nodeName, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODNodeCreateCopy
|
||||
@abstract Creates a copy, including any remote credentials used for Proxy and/or Node authentication
|
||||
@discussion Creates a copy of the object including all credentials used for the original. Can be used for future
|
||||
references to the same node setup.
|
||||
@param allocator a memory allocator to use for this object
|
||||
@param node an ODNodeRef to make a copy of
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result a valid ODNodeRef if successful, otherwise returns NULL, with outError set to a CFErrorRef
|
||||
*/
|
||||
CF_EXPORT
|
||||
ODNodeRef ODNodeCreateCopy(CFAllocatorRef allocator, ODNodeRef node, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODNodeCopySubnodeNames
|
||||
@abstract Returns a CFArray of subnode names for this node, which may contain sub-nodes or search policy nodes
|
||||
@discussion Returns a CFArray of subnode names for this node, which may contain sub-nodes or search policy nodes.
|
||||
Commonly used with Search policy nodes.
|
||||
@param node an ODNodeRef to use
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result a CFArrayRef with the list of nodes, otherwise NULL, with outError set to a CFErrorRef
|
||||
*/
|
||||
CF_EXPORT
|
||||
CFArrayRef ODNodeCopySubnodeNames(ODNodeRef node, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODNodeCopyUnreachableSubnodeNames
|
||||
@abstract Will return names of subnodes that are not currently reachable.
|
||||
@discussion Will return names of subnodes that are not currently reachable. Commonly used with Search policy nodes
|
||||
to determine if any nodes are currently unreachable, but may also return other subnodes if the
|
||||
Open Directory plugin supports.
|
||||
@param node an ODNodeRef to use
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result a CFArrayRef with the list of unreachable nodes or NULL if no bad nodes
|
||||
*/
|
||||
CF_EXPORT
|
||||
CFArrayRef ODNodeCopyUnreachableSubnodeNames(ODNodeRef node, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODNodeGetName
|
||||
@abstract Returns the node name of the node that was opened
|
||||
@discussion Returns the node name of the node that was opened
|
||||
@param node an ODNodeRef to use
|
||||
@result a CFStringRef of the node name that is current or NULL if no open node
|
||||
*/
|
||||
CF_EXPORT
|
||||
CFStringRef ODNodeGetName(ODNodeRef node) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODNodeCopyDetails
|
||||
@abstract Returns a dictionary with details about the node in dictionary form
|
||||
@discussion Returns a dictionary with details about the node in dictionary form.
|
||||
@param node an ODNodeRef to use
|
||||
@param keys a CFArrayRef listing the keys the user wants returned, such as
|
||||
kODAttributeTypeStreet
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result a CFDictionaryRef containing the requested key and values in form of a CFArray
|
||||
*/
|
||||
CF_EXPORT
|
||||
CFDictionaryRef ODNodeCopyDetails(ODNodeRef node, CFArrayRef keys, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODNodeCopySupportedRecordTypes
|
||||
@abstract Returns a CFArrayRef of the record types supported by this node.
|
||||
@discussion Returns a CFArrayRef of the record types supported by this node. If node does not support the check
|
||||
then all possible types will be returned.
|
||||
@param node an ODNodeRef to use
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result a valid CFArrayRef of CFStrings listing the supported Record types on this node.
|
||||
*/
|
||||
CF_EXPORT
|
||||
CFArrayRef ODNodeCopySupportedRecordTypes(ODNodeRef node, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODNodeCopySupportedAttributes
|
||||
@abstract Will return a list of attribute types supported for that attribute if possible
|
||||
@discussion Will return a list of attribute types supported for that attribute if possible. If no specific
|
||||
types are available, then all possible values will be returned instead.
|
||||
@param node an ODNodeRef to use
|
||||
@param recordType a ODRecordTypeRef with the type of record to check attribute types. If NULL is passed it will
|
||||
return all possible attributes that are available.
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result a valid CFArrayRef of CFStrings listing the attributes supported for the requested record type
|
||||
*/
|
||||
CF_EXPORT
|
||||
CFArrayRef ODNodeCopySupportedAttributes(ODNodeRef node, ODRecordType recordType, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODNodeSetCredentials
|
||||
@abstract Sets the credentials for interaction with the ODNode
|
||||
@discussion Sets the credentials for interaction with the ODNode. Record references, etc. will use these credentials
|
||||
to query or change data. Setting the credentials on a node referenced by other OD object types will
|
||||
change the credentials for all for all references.
|
||||
@param node an ODNodeRef to use
|
||||
@param recordType a ODRecordTypeRef of the Record Type to use, if NULL is passed, defaults to a
|
||||
kODRecordTypeUsers
|
||||
@param recordName a CFString of the username to be used for this node authentication
|
||||
@param password a CFString of the password to be used for this node authentication
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result returns true on success, otherwise outError can be checked for details. If the authentication failed,
|
||||
the previous credentials are used.
|
||||
*/
|
||||
CF_EXPORT
|
||||
bool ODNodeSetCredentials(ODNodeRef node, ODRecordType recordType, CFStringRef recordName, CFStringRef password, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODNodeSetCredentialsExtended
|
||||
@abstract Allows use of other Open Directory types of authentications to set the credentials for an ODNode
|
||||
@discussion Allows the caller to use other types of authentications that are available in Open Directory, that may
|
||||
require response-request loops, etc. Not all OD plugins will support this call, look for
|
||||
kODErrorCredentialsMethodNotSupported in outError.
|
||||
@param node an ODNodeRef to use
|
||||
@param recordType a ODRecordType of the type of record to do the authentication with
|
||||
@param authType a ODAuthenticationType of the type of authentication to be used (e.g., kDSStdAuthNTLMv2)
|
||||
@param authItems a CFArray of CFData or CFString items that will be sent in order to the auth process
|
||||
@param outAuthItems will be assigned to a pointer of a CFArray of CFData items if there are returned values
|
||||
@param outContext will return a pointer to a context if caller supplies a container, and the call requires a
|
||||
context. If a non-NULL value is returned, then more calls must be made with the Context to continue
|
||||
the authorization.
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result a bool will be returned with the result of the operation and outAuthItems set with response items
|
||||
and outContext set for any needed continuation.
|
||||
*/
|
||||
CF_EXPORT
|
||||
bool ODNodeSetCredentialsExtended(ODNodeRef node, ODRecordType recordType, ODAuthenticationType authType, CFArrayRef authItems, CFArrayRef *outAuthItems, ODContextRef *outContext, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODNodeSetCredentialsUsingKerberosCache
|
||||
@abstract Unsupported function.
|
||||
@discussion Unsupported function.
|
||||
*/
|
||||
CF_EXPORT
|
||||
bool ODNodeSetCredentialsUsingKerberosCache(ODNodeRef node, CFStringRef cacheName, CFErrorRef *error) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_7, __IPHONE_NA, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODNodeCreateRecord
|
||||
@abstract Takes a record and all of the provided attributes and creates the record in the node
|
||||
@discussion Takes all the provided attributes and type to create an entire record. The function will assign a
|
||||
UUID to the record automatically. This UUID can be overwritten by the client by passing with the
|
||||
other attributes.
|
||||
@param node an ODNodeRef to use
|
||||
@param recordType a ODRecordTypeRef of the type of record (e.g., kODRecordTypeUsers, etc.)
|
||||
@param recordName a CFStringRef of the name of record
|
||||
@param attributeDict a CFDictionaryRef of key-value pairs for attribute values. The key is a CFStringRef of the
|
||||
attribute name or ODRecordType constant such as kODAttributeTypeRecordName. The value must be a CFArrayRef of
|
||||
CFDataRef or CFStringRef. If additional kODAttributeTypeRecordName are to be set, they can be passed in the
|
||||
inAttributes list. This parameter is optional and can be NULL. If any of the attributes passed
|
||||
fail to be set, the record will be deleted and outError will be set with the appropriate error.
|
||||
If a password is not supplied with a user account, then a random password will be set automatically. If
|
||||
an empty password is expected, then the kODAttributeTypePassword should be set to an empty CFArray.
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result returns a valid ODRecordRef. If the add fails, outError can be checked for details.
|
||||
*/
|
||||
CF_EXPORT
|
||||
ODRecordRef ODNodeCreateRecord(ODNodeRef node, ODRecordType recordType, CFStringRef recordName, CFDictionaryRef attributeDict, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODNodeCopyRecord
|
||||
@abstract Simple API to open / create a references to a particular record on a Node
|
||||
@discussion Simple API to open / create a references to a particular record on a Node
|
||||
@param node an ODNodeRef to use
|
||||
@param recordType a ODRecordTypeRef of the record type to copy
|
||||
@param recordName a CFStringRef of the record name to copy
|
||||
@param attributes (optional) a CFArrayRef (or single ODAttributeType) of the attributes to copy from the directory. Can be NULL when no
|
||||
attributes are needed. Any standard types can be passed, for example
|
||||
kODAttributeTypeAllAttributes will fetch all attributes up front. If just standard attributes are needed, then
|
||||
kODAttributeTypeStandardOnly can be passed.
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result returns a valid ODRecordRef. If the record copy fails, the error can be checked for details.
|
||||
If the record is not found, will return NULL with a NULL error.
|
||||
*/
|
||||
CF_EXPORT
|
||||
ODRecordRef ODNodeCopyRecord(ODNodeRef node, ODRecordType recordType, CFStringRef recordName, CFTypeRef attributes, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODNodeCustomCall
|
||||
@abstract Sends a custom call to a node.
|
||||
@discussion This will send a custom call to a node along with the specified data, returning the result.
|
||||
@param node an ODNodeRef to use
|
||||
@param customCode the custom code to be sent to the node
|
||||
@param data a data blob expected by the custom code, can be NULL of no send data
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result a CFDataRef with the result of the operation, otherwise outError can be checked for specific details
|
||||
*/
|
||||
CF_EXPORT CF_RETURNS_RETAINED
|
||||
CFDataRef ODNodeCustomCall(ODNodeRef node, CFIndex customCode, CFDataRef data, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
* @function ODNodeCustomCall
|
||||
*
|
||||
* @abstract
|
||||
* Sends a named custom function call to a node.
|
||||
*
|
||||
* @discussion
|
||||
* Sends a named custom function call to a node. Custom functions are defined by the modules that implement them
|
||||
* and the parameter is defined by the module.
|
||||
*
|
||||
* @param node
|
||||
* An ODNodeRef to use
|
||||
*
|
||||
* @param function
|
||||
* A CFStringRef that specifies the name of the function
|
||||
*
|
||||
* @param payload
|
||||
* A CFType appropriate for the custom function. The type is dictated by the module implementing the function.
|
||||
*
|
||||
* @param error
|
||||
* An optional CFErrorRef reference to receive any errors from the custom function call.
|
||||
*
|
||||
* @result
|
||||
* Returns a CFType appropriate for the function.
|
||||
*/
|
||||
CF_EXPORT CF_RETURNS_RETAINED
|
||||
CFTypeRef
|
||||
ODNodeCustomFunction(ODNodeRef node, CFStringRef function, CFTypeRef payload, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODNodeCopyPolicies
|
||||
@abstract This will copy any policies configured for the node.
|
||||
@discussion This will copy any policies configured for the node.
|
||||
@param node an ODNodeRef to use
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result a CFDictionaryRef containing all currently set policies
|
||||
*/
|
||||
CF_EXPORT
|
||||
CFDictionaryRef ODNodeCopyPolicies(ODNodeRef node, CFErrorRef *error) __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_9, __MAC_10_10, __IPHONE_NA, __IPHONE_NA, "use ODNodeCopyAccountPolicies");
|
||||
|
||||
/*!
|
||||
@function ODNodeCopySupportedPolicies
|
||||
@abstract This will return a dictionary of supported policies.
|
||||
@discussion This will return a dictionary of supported policies, if appropriate, the value will be the maximum value allowed
|
||||
for the policy in question. For example, if password history is available, it will state how much history is
|
||||
supported.
|
||||
@param node an ODNodeRef to use
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result a CFDictionaryRef containing all currently supported policies. The values will be the maximum value allowed.
|
||||
*/
|
||||
CF_EXPORT
|
||||
CFDictionaryRef ODNodeCopySupportedPolicies(ODNodeRef node, CFErrorRef *error) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_10, __IPHONE_NA, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODNodeSetPolicies
|
||||
@abstract This will set the policy for the node.
|
||||
@discussion This will set the policy for the node. Policies are evaluated in combination with record-level policies.
|
||||
@param node an ODNodeRef to use
|
||||
@param policies a CFDictionary of policies to be set
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result a bool which signifies if the policy set succeeded, otherwise error is set.
|
||||
*/
|
||||
CF_EXPORT
|
||||
bool ODNodeSetPolicies(ODNodeRef node, CFDictionaryRef policies, CFErrorRef *error) __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_9, __MAC_10_10, __IPHONE_NA, __IPHONE_NA, "use ODNodeSetAccountPolicies");
|
||||
|
||||
/*!
|
||||
@function ODNodeSetPolicy
|
||||
@abstract This will set a specific policy setting for the node.
|
||||
@discussion This will set a specific policy setting for the node.
|
||||
@param node an ODNodeRef to use
|
||||
@param policy a valid ODPolicyType
|
||||
@param value a CFTypeRef to be set (should be of appropriate type for the policy)
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result a bool which signifies if the policy set succeeded, otherwise error is set.
|
||||
*/
|
||||
CF_EXPORT
|
||||
bool ODNodeSetPolicy(ODNodeRef node, ODPolicyType policyType, CFTypeRef value, CFErrorRef *error) __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_9, __MAC_10_10, __IPHONE_NA, __IPHONE_NA, "use ODNodeAddAccountPolicy");
|
||||
|
||||
/*!
|
||||
@function ODNodeRemovePolicy
|
||||
@abstract This will remove a specific policy setting from the node.
|
||||
@discussion This will remove a specific policy setting from the node.
|
||||
@param node an ODNodeRef to use
|
||||
@param policy a valid ODPolicyType
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result a bool which signifies if the policy removal succeeded, otherwise error is set.
|
||||
*/
|
||||
CF_EXPORT
|
||||
bool ODNodeRemovePolicy(ODNodeRef node, ODPolicyType policyType, CFErrorRef *error) __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_9, __MAC_10_10, __IPHONE_NA, __IPHONE_NA, "use ODNodeRemoveAccountPolicy");
|
||||
|
||||
/*!
|
||||
@function ODNodeAddAccountPolicy
|
||||
@abstract This will add an account policy to the node for the specified category.
|
||||
@discussion This will add an account policy to the node for the specified category.
|
||||
The specified policy will be applied to all users in the
|
||||
specified node when policies are evaluated.
|
||||
@param node an ODNodeRef to use.
|
||||
@param policy a dictionary containing the specific policy to be added.
|
||||
The dictionary may contain the following keys:
|
||||
kODPolicyKeyIdentifier a required key identifying the policy.
|
||||
kODPolicyKeyParameters an optional key containing a dictionary of
|
||||
parameters that can be used for informational purposes or in
|
||||
the policy format string.
|
||||
kODPolicyKeyContent a required key specifying the policy,
|
||||
from which a predicate will be created for evaluating
|
||||
the policy.
|
||||
@param category a valid ODPolicyCategoryType to which the specified policy will be added.
|
||||
@param error an optional CFErrorRef reference for error details.
|
||||
@result a bool which signifies if the policy addition succeeded, otherwise error is set.
|
||||
*/
|
||||
CF_EXPORT
|
||||
bool ODNodeAddAccountPolicy(ODNodeRef node, CFDictionaryRef policy, ODPolicyCategoryType category, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODNodeRemoveAccountPolicy
|
||||
@abstract This will remove an account policy from the node for the specified category.
|
||||
@discussion This will remove an account policy from the node for the specified category.
|
||||
@param node an ODNodeRef to use.
|
||||
@param policy a dictionary containing the specific policy to be
|
||||
removed, with the same format as described in ODNodeAddAccountPolicy.
|
||||
@param category a valid ODPolicyCategoryType from which the specified policy will be removed.
|
||||
@param error an optional CFErrorRef reference for error details.
|
||||
@result a bool which signifies if the policy removal succeeded, otherwise error is set.
|
||||
*/
|
||||
CF_EXPORT
|
||||
bool ODNodeRemoveAccountPolicy(ODNodeRef node, CFDictionaryRef policy, ODPolicyCategoryType category, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODNodeSetAccountPolicies
|
||||
@abstract This will set the policies for the node.
|
||||
@discussion This will set the policies for the node, replacing any existing
|
||||
policies.
|
||||
@param node an ODNodeRef to use.
|
||||
@param policies a dictionary containing all of the policies to be set
|
||||
for the node. The dictionary may contain the following keys:
|
||||
kODPolicyCategoryAuthentication an optional key with a value
|
||||
of an array of policy dictionaries that specify when
|
||||
authentications should be allowed.
|
||||
kODPolicyCategoryPasswordContent an optional key with a
|
||||
value of an array of policy dictionaries the specify the
|
||||
required content of passwords.
|
||||
kODPolicyCategoryPasswordChange an optional key with a value
|
||||
of an array of policy dictionaries that specify when
|
||||
passwords are required to be changed.
|
||||
@param error an optional CFErrorRef reference for error details.
|
||||
@result a bool which signifies if the policy set succeeded, otherwise error is set.
|
||||
*/
|
||||
CF_EXPORT
|
||||
bool ODNodeSetAccountPolicies(ODNodeRef node, CFDictionaryRef policies, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODNodeCopyAccountPolicies
|
||||
@abstract This will copy any policies configured for the node.
|
||||
@discussion This will copy any policies configured for the node.
|
||||
@param node an ODNodeRef to use.
|
||||
@param error an optional CFErrorRef reference for error details.
|
||||
@result a CFDictionaryRef containing all currently set policies. The
|
||||
format of the dictionary is the same as described in
|
||||
ODNodeSetAccountPolicies().
|
||||
*/
|
||||
CF_EXPORT CF_RETURNS_RETAINED
|
||||
CFDictionaryRef ODNodeCopyAccountPolicies(ODNodeRef node, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODNodePasswordContentCheck
|
||||
@abstract Validates a password against the node's password content policies.
|
||||
@discussion Validates a password against the node's password content policies.
|
||||
The node's password content policies will be evaluated to
|
||||
determine if the password is acceptable. May be used prior to
|
||||
creating the record.
|
||||
|
||||
This check is only definitive at the time it was requested. The
|
||||
policy or the environment could change before the password change
|
||||
is actually requested. Errors from the password change request
|
||||
should be consulted.
|
||||
|
||||
@param node an ODNodeRef to use.
|
||||
@param password the password to be evaluated against the content policies.
|
||||
@param recordName the name of the record.
|
||||
@param error an optional CFErrorRef reference for error details.
|
||||
@result a bool which signifies if the password passes all content policies, otherwise error is set.
|
||||
*/
|
||||
CF_EXPORT
|
||||
bool ODNodePasswordContentCheck(ODNodeRef node, CFStringRef password, CFStringRef recordName, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* ! __OPENDIRECTORY_CFODNODE__ */
|
@ -0,0 +1,180 @@
|
||||
/*
|
||||
* Copyright (c) 2009 Apple Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this
|
||||
* file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_END@
|
||||
*/
|
||||
|
||||
#if !defined(__OPENDIRECTORY_CFODQUERY__)
|
||||
#define __OPENDIRECTORY_CFODQUERY__ 1
|
||||
|
||||
#include <CFOpenDirectory/CFOpenDirectory.h>
|
||||
|
||||
/*!
|
||||
@header CFODQuery
|
||||
@abstract ODQuery functions
|
||||
@discussion This header describes functions for working with ODQueryRefs.
|
||||
*/
|
||||
|
||||
/*!
|
||||
@typedef ODQueryCallback
|
||||
@abstract Is called as results are returned from a query. The incoming result must be retained or copied.
|
||||
@discussion Is called as results are returned from an CFRunLoop-based query. These results are only partial
|
||||
and the callback is called repeatedly as results are available. The incoming result must be retained or copied. The
|
||||
array will be released by the CFRunLoop upon return. Incoming results do not include previous results,
|
||||
only the most recent results are returned. inResults can be NULL if an error occurs or the query is complete. If
|
||||
inError and inResults are NULL then the query has completed.
|
||||
*/
|
||||
typedef void (*ODQueryCallback)(ODQueryRef query, CFArrayRef results, CFErrorRef error, void *context);
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/*!
|
||||
@function ODQueryGetTypeID
|
||||
@abstract Standard GetTypeID function support for CF-based objects
|
||||
@discussion Returns the typeID for the ODQuery object
|
||||
@result a valid CFTypeID for the ODQuery object
|
||||
*/
|
||||
CF_EXPORT
|
||||
CFTypeID ODQueryGetTypeID(void) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODQueryCreateWithNode
|
||||
@abstract Creates a query with the node using the parameters provided
|
||||
@discussion Creates a query with the node using the supplied query parameters. Some parameters can either be CFString or
|
||||
CFData or a CFArray of either CFString or CFData.
|
||||
@param allocator a memory allocator to use for this object
|
||||
@param node an ODNodeRef to use
|
||||
@param recordTypeOrList a CFString of a type or CFArray with a list of record types
|
||||
@param attribute a CFStringRef of the attribute name to query
|
||||
@param matchType an ODMatchType value that signifies the type of query
|
||||
@param queryValueOrList a CFStringRef, CFDataRef or CFArrayRef of either type for values to query in attribute
|
||||
@param returnAttributeOrList a CFStringRef or CFArrayRef of CFStrings with the list of attributes to be returned
|
||||
from the query. Passing NULL is equivalent to passing kODAttributeTypeStandardOnly.
|
||||
@param maxResults a CFIndex of the total number of values the caller wants to be returned
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result an ODQueryRef which should be passed into ODQueryCopyResults for immediate results or
|
||||
ODQueryScheduleWithRunLoop for background behavior
|
||||
*/
|
||||
CF_EXPORT
|
||||
ODQueryRef ODQueryCreateWithNode(CFAllocatorRef allocator, ODNodeRef node, CFTypeRef recordTypeOrList, ODAttributeType attribute, ODMatchType matchType, CFTypeRef queryValueOrList, CFTypeRef returnAttributeOrList, CFIndex maxResults, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODQueryCreateWithNodeType
|
||||
@abstract Creates a query object that is initialized to a particular node type.
|
||||
@discussion Creates a query object that is initialized to a particular node type using the supplied
|
||||
query options.
|
||||
@param allocator a memory allocator to use for this object
|
||||
@param nodeType an ODNodeType to use when doing a query
|
||||
@param recordTypeOrList a ODRecordType of a type or CFArray with a list of record types
|
||||
@param attribute a ODAttributeType or CFStringRef of the attribute name to query
|
||||
@param matchType an ODMatchType value that signifies the type of query
|
||||
@param queryValueOrList a CFStringRef, CFDataRef or CFArrayRef of either type for values to query in attribute
|
||||
@param returnAttributeOrList a CFStringRef or CFArrayRef of CFStrings with the list of attributes to be returned
|
||||
from the query. Passing NULL is equivalent to passing kODAttributeTypeStandardOnly.
|
||||
@param maxResults a CFIndex of the total number of values the caller wants to be returned
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result an ODQueryRef which should be passed into ODQueryCopyResults for immediate results or
|
||||
ODQueryScheduleWithRunLoop for background behavior, see ODQueryCallback for details on RunLoop
|
||||
behavior.
|
||||
*/
|
||||
CF_EXPORT
|
||||
ODQueryRef ODQueryCreateWithNodeType(CFAllocatorRef allocator, ODNodeType nodeType, CFTypeRef recordTypeOrList, ODAttributeType attribute, ODMatchType matchType, CFTypeRef queryValueOrList, CFTypeRef returnAttributeOrList, CFIndex maxResults, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODQueryCopyResults
|
||||
@abstract Returns results from a provided ODQueryRef synchronously
|
||||
@discussion Returns results from a provided ODQueryRef synchronously. Passing false to inAllowPartialResults
|
||||
will block the call until all results are returned or an error occurs. true can be passed at any time
|
||||
even if previous calls were made with false.
|
||||
@param query an ODQueryRef to use
|
||||
@param allowPartialResults a bool, passing true to retrieve any currently available results, or false to
|
||||
wait for all results
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result a CFArrayRef comprised of ODRecord objects. If partial results were requested but are complete, then
|
||||
NULL will be returned with outError set to NULL. If an error occurs, NULL will be returned and
|
||||
outError should be checked accordingly.
|
||||
*/
|
||||
CF_EXPORT
|
||||
CFArrayRef ODQueryCopyResults(ODQueryRef query, bool allowPartialResults, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODQuerySynchronize
|
||||
@abstract Will dispose of any results and restart the query.
|
||||
@discussion Will dispose of any results and restart the query for subsequent ODQueryCopyResults. If the query
|
||||
is currently scheduled on a RunLoop, then the callback function will be called with inResults == NULL and
|
||||
inError.error == kODErrorQuerySynchronize and inError.domain == kODErrorDomainFramework, signifying that
|
||||
all existing results should be thrown away in preparation for new results.
|
||||
@param query an ODQueryRef to use
|
||||
*/
|
||||
CF_EXPORT
|
||||
void ODQuerySynchronize(ODQueryRef query) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODQuerySetCallback
|
||||
@abstract This call is used to set the callback function for an asynchronous query
|
||||
@discussion This call is used to set the callback function for an asynchronous query, using a
|
||||
CFRunLoop or a dispatch queue.
|
||||
@param query an ODQueryRef to use
|
||||
@param callback a function to call when a query has results to return
|
||||
@param userInfo a user-defined pointer to be passed back to the Query callback function
|
||||
*/
|
||||
CF_EXPORT
|
||||
void ODQuerySetCallback(ODQueryRef query, ODQueryCallback callback, void *userInfo) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODQueryScheduleWithRunLoop
|
||||
@abstract Allows a query to run off of a runloop, though it will spawn a thread to handle the work
|
||||
@discussion Allows a query to run off of a runloop, though it will spawn a thread to handle the work.
|
||||
When query is complete or stopped the callback function will be called with NULL results
|
||||
and inError set to NULL. ODQueryUnscheduleFromRunLoop() must be called to remove this query
|
||||
from Runloops if necessary.
|
||||
@param query an ODQueryRef to put on the runloop
|
||||
@param runLoop a CFRunLoopRef to put the ODQueryRef source onto
|
||||
@param runLoopMode a CFStringRef with the runloop mode to add the ODQueryRef to
|
||||
*/
|
||||
CF_EXPORT
|
||||
void ODQueryScheduleWithRunLoop(ODQueryRef query, CFRunLoopRef runLoop, CFStringRef runLoopMode) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODQueryUnscheduleFromRunLoop
|
||||
@abstract Removes the ODQueryRef from the provided runloop
|
||||
@discussion Removes the ODQueryRef from the provided runloop
|
||||
@param query an ODQueryRef to remove from the runloop
|
||||
@param runLoop a CFRunLoopRef to remove the ODQuery source from
|
||||
@param runLoopMode a CFStringRef of the mode to remove the ODQuery from
|
||||
*/
|
||||
CF_EXPORT
|
||||
void ODQueryUnscheduleFromRunLoop(ODQueryRef query, CFRunLoopRef runLoop, CFStringRef runLoopMode) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODQuerySetDispatchQueue
|
||||
@abstract Performs the query and sends the results using the specified dispatch queue
|
||||
@discussion Schedule the query to run and deliver its results using the specified dispatch queue.
|
||||
The previously set callback will be called using the same semantics as
|
||||
ODQueryScheduleWithRunLoop
|
||||
@param query an ODQueryRef to perform
|
||||
@param queue a dispatch queue to receive the query results
|
||||
*/
|
||||
CF_EXPORT
|
||||
void ODQuerySetDispatchQueue(ODQueryRef query, dispatch_queue_t queue) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* ! __OPENDIRECTORY_CFODQUERY__ */
|
@ -0,0 +1,578 @@
|
||||
/*
|
||||
* Copyright (c) 2009 Apple Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this
|
||||
* file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_END@
|
||||
*/
|
||||
|
||||
#if !defined(__OPENDIRECTORY_CFODRECORD__)
|
||||
#define __OPENDIRECTORY_CFODRECORD__
|
||||
|
||||
#include <CFOpenDirectory/CFOpenDirectory.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/*!
|
||||
@function ODRecordGetTypeID
|
||||
@abstract Standard GetTypeID function support for CF-based objects
|
||||
@discussion Returns the typeID for the ODRecord object
|
||||
@result a valid CFTypeID for the ODRecord object
|
||||
*/
|
||||
CF_EXPORT
|
||||
CFTypeID ODRecordGetTypeID(void) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODRecordSetNodeCredentials
|
||||
@abstract Similar to calling ODNodeSetCredentials except credentials are only set for this particular record's node
|
||||
@discussion Sets the credentials if necessary on the ODNodeRef referenced by this ODRecordRef. Very similar to
|
||||
calling ODNodeSetCredentials except other records referencing the underlying ODNodeRef will not get
|
||||
authenticated, therefore inadvertant changes cannot occur. If all records referencing a particular
|
||||
ODNodeRef need to be updated, then use ODNodeSetCredentials on the original ODNodeRef instead. If the
|
||||
ODNodeRef is already authenticated with the same name and password, this will be a NOOP call. The original
|
||||
ODNodeRef held by an ODRecordRef will be released and a new ODNodeRef will be created when the credentials
|
||||
are set for this ODRecordRef. Calling this on multiple records could result in multiple References into the
|
||||
OpenDirectory daemon, which could cause errors logged into /var/log/system.log if a threshold is reached.
|
||||
@param record an ODRecordRef to use
|
||||
@param username a CFStringRef of the username used to authenticate
|
||||
@param password a CFStringRef of the password used to authenticate
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result returns true on success, otherwise outError can be checked for details. Upon failure the original node
|
||||
will still be intact.
|
||||
*/
|
||||
CF_EXPORT
|
||||
bool ODRecordSetNodeCredentials(ODRecordRef record, CFStringRef username, CFStringRef password, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODRecordSetNodeCredentialsExtended
|
||||
@abstract Similar to calling ODNodeSetCredentialsExtended except credentials are only set for this particular record's
|
||||
node
|
||||
@discussion Allows the caller to use other types of authentications that are available in Open Directory, that may
|
||||
require response-request loops, etc. Not all OD plugins will support this call, look for
|
||||
kODErrorCredentialsMethodNotSupported in outError. Same behavior as ODRecordSetNodeCredentials.
|
||||
@param record an ODRecordRef to use
|
||||
@param recordType a ODRecordTypeRef of the type of record to do the authentication with
|
||||
@param authType a ODAuthenticationTypeRef of the type of authentication to be used (e.g., kDSStdAuthNTLMv2)
|
||||
@param authItems a CFArrayRef of CFData or CFString items that will be sent in order to the auth process
|
||||
@param outAuthItems a pointer to CFArrayRef that will be assigned to a CFArrayRef of CFData items if the
|
||||
call returned any values followup values
|
||||
@param outContext a pointer to ODContextRef if the call requires further calls for response-request auths.
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result a bool will be returned with the result of the operation and outAuthItems set with response items
|
||||
and outContext set for any needed continuation. Upon failure the original node will still be intact.
|
||||
*/
|
||||
CF_EXPORT
|
||||
bool ODRecordSetNodeCredentialsExtended(ODRecordRef record, ODRecordType recordType, ODAuthenticationType authType, CFArrayRef authItems, CFArrayRef *outAuthItems, ODContextRef *outContext, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODRecordSetNodeCredentialsUsingKerberosCache
|
||||
@abstract Unsupported function.
|
||||
@discussion Unsupported function.
|
||||
*/
|
||||
CF_EXPORT
|
||||
bool ODRecordSetNodeCredentialsUsingKerberosCache(ODRecordRef record, CFStringRef cacheName, CFErrorRef *error) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_7, __IPHONE_NA, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODRecordCopyPasswordPolicy
|
||||
@abstract Returns a CFDictionaryRef of the effective policy for the user if available
|
||||
@discussion Returns a CFDictionaryRef of the effective policy for the user if available
|
||||
@param allocator a CFAllocatorRef to use
|
||||
@param record an ODRecordRef to use
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result a CFDictionaryRef of the password policies for the supplied record, or NULL if no policy set
|
||||
*/
|
||||
CF_EXPORT
|
||||
CFDictionaryRef ODRecordCopyPasswordPolicy(CFAllocatorRef allocator, ODRecordRef record, CFErrorRef *error) __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_6, __MAC_10_9, __IPHONE_NA, __IPHONE_NA, "use ODRecordCopyEffectivePolicies");
|
||||
|
||||
/*!
|
||||
@function ODRecordVerifyPassword
|
||||
@abstract Verifies the password provided is valid for the record
|
||||
@discussion Verifies the password provided is valid for the record.
|
||||
@param record an ODRecordRef to use
|
||||
@param password a CFStringRef of the password that is being verified
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result returns true on success, otherwise outError can be checked for details
|
||||
*/
|
||||
CF_EXPORT
|
||||
bool ODRecordVerifyPassword(ODRecordRef record, CFStringRef password, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODRecordVerifyPasswordExtended
|
||||
@abstract Allows use of other Open Directory types of authentications to verify a record password
|
||||
@discussion Allows the caller to use other types of authentications that are available in Open Directory, that may
|
||||
require response-request loops, etc.
|
||||
@param record an ODRecordRef to use
|
||||
@param authType a ODAuthenticationTypeRef of the type of authentication to be used (e.g., kODAuthenticationTypeCRAM_MD5)
|
||||
@param authItems a CFArrayRef of CFData or CFString items that will be sent in order to the auth process
|
||||
@param outAuthItems a pointer to CFArrayRef that will be assigned to a CFArrayRef of CFData items if the
|
||||
call returned any values followup values
|
||||
@param outContext a pointer to ODContextRef if the call requires further calls for response-request auths.
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result a bool will be returned with the result of the operation and outAuthItems set with response items
|
||||
and outContext set for any needed continuation. Some ODNodes may not support the call so an error of
|
||||
eNotHandledByThisNode or eNotYetImplemented may be returned.
|
||||
*/
|
||||
CF_EXPORT
|
||||
bool ODRecordVerifyPasswordExtended(ODRecordRef record, ODAuthenticationType authType, CFArrayRef authItems, CFArrayRef *outAuthItems, ODContextRef *outContext, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODRecordChangePassword
|
||||
@abstract Changes the password of an ODRecord
|
||||
@discussion Changes the password of an ODRecord. If NULL is passed into inOldPassword, then an attempt to set
|
||||
the password will be tried. If changing a password, then both old and new passwords should be supplied.
|
||||
@param record an ODRecordRef to use
|
||||
@param oldPassword a CFString of the record's old password (NULL is optional).
|
||||
@param newPassword a CFString of the record's new password
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result returns true on success, otherwise outError can be checked for details
|
||||
*/
|
||||
CF_EXPORT
|
||||
bool ODRecordChangePassword(ODRecordRef record, CFStringRef oldPassword, CFStringRef newPassword, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODRecordGetRecordType
|
||||
@abstract Returns the record type of an ODRecordRef
|
||||
@discussion Returns the record type of an ODRecordRef
|
||||
@param record an ODRecordRef to use
|
||||
@result a CFStringRef of the record type for this ODRecordRef
|
||||
*/
|
||||
CF_EXPORT
|
||||
CFStringRef ODRecordGetRecordType(ODRecordRef record) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODRecordGetRecordName
|
||||
@abstract Returns the official record name of an ODRecordRef
|
||||
@discussion Returns the official record name of an ODRecordRef which typically corresponds to the first value
|
||||
of the kODAttributeTypeRecordName attribute, but not always. This name should be a valid name in either case.
|
||||
@param record an ODRecordRef to use
|
||||
@result a CFStringRef of the record name for this ODRecordRef
|
||||
*/
|
||||
CF_EXPORT
|
||||
CFStringRef ODRecordGetRecordName(ODRecordRef record) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODRecordCopyValues
|
||||
@abstract Returns the value of an attribute as an array of CFStringRef or CFDataRef types
|
||||
@discussion Returns the value of an attribute as an array of CFStringRef or CFDataRef, depending on
|
||||
whether the data is Binary or not. If the value has been fetched from the directory previously
|
||||
a copy of the internal storage will be returned without going to the directory. If it has not been fetched
|
||||
previously, then it will be fetched at that time.
|
||||
@param record an ODRecordRef to use
|
||||
@param attribute a CFStringRef or ODAttributeType of the attribute (e.g., kODAttributeTypeRecordName, etc.)
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result a CFArrayRef of the attribute requested if possible, or NULL if the attribute doesn't exist
|
||||
*/
|
||||
CF_EXPORT
|
||||
CFArrayRef ODRecordCopyValues(ODRecordRef record, ODAttributeType attribute, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODRecordSetValue
|
||||
@abstract Will take a CFDataRef or CFStringRef or a CFArrayRef of either type and set it for the attribute
|
||||
@discussion Will take a CFDataRef or CFStringRef or a CFArrayRef of either type and set it for the attribute.
|
||||
Any mixture of the types CFData and CFString are accepted.
|
||||
@param record an ODRecordRef to use
|
||||
@param attribute a CFStringRef of the attribute for values to be added too
|
||||
@param valueOrValues a CFArrayRef of CFStringRef or CFDataRef types or either of the individual types, passing
|
||||
an empty CFArray deletes the attribute. The underlying implementation will do this in the most efficient manner,
|
||||
either by adding only new values or completely replacing the values depending on the capabilities of the
|
||||
particular plugin.
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result returns true on success, otherwise outError can be checked for details
|
||||
*/
|
||||
CF_EXPORT
|
||||
bool ODRecordSetValue(ODRecordRef record, ODAttributeType attribute, CFTypeRef valueOrValues, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODRecordAddValue
|
||||
@abstract Adds a value to an attribute
|
||||
@discussion Adds a value to an attribute.
|
||||
@param record an ODRecordRef to use
|
||||
@param attribute a CFStringRef of the attribute for values to be added too
|
||||
@param value a CFTypeRef of the value to be added to the attribute, either CFStringRef or CFDataRef
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result returns true on success, otherwise outError can be checked for details
|
||||
*/
|
||||
CF_EXPORT
|
||||
bool ODRecordAddValue(ODRecordRef record, ODAttributeType attribute, CFTypeRef value, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODRecordRemoveValue
|
||||
@abstract Removes a particular value from an attribute.
|
||||
@discussion Removes a particular value from an attribute.
|
||||
@param record an ODRecordRef to use
|
||||
@param attribute a CFStringRef of the attribute to remove the value from
|
||||
@param value a CFTypeRef of the value to be removed from the attribute. Either CFStringRef or CFDataRef.
|
||||
If the value does not exist, true will be returned and no error will be set.
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result returns true on success, otherwise outError can be checked for details
|
||||
*/
|
||||
CF_EXPORT
|
||||
bool ODRecordRemoveValue(ODRecordRef record, ODAttributeType attribute, CFTypeRef value, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODRecordCopyDetails
|
||||
@abstract Returns the attributes and values in the form of a key-value pair set for this record.
|
||||
@discussion Returns the attributes and values in the form of a key-value pair set for this record. The key is a
|
||||
CFStringRef or ODAttributeType of the attribute name (e.g., kODAttributeTypeRecordName, etc.) and the
|
||||
value is an CFArrayRef of either CFDataRef or CFStringRef depending on the type of data. Binary data will
|
||||
be returned as CFDataRef.
|
||||
@param record an ODRecordRef to use
|
||||
@param attributes a CFArrayRef of attributes. If an attribute has not been fetched previously, it will be
|
||||
fetched in order to return the value. If this parameter is NULL then all currently fetched attributes
|
||||
will be returned.
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result a CFDictionaryRef of the attributes for the record
|
||||
*/
|
||||
CF_EXPORT
|
||||
CFDictionaryRef ODRecordCopyDetails(ODRecordRef record, CFArrayRef attributes, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODRecordSynchronize
|
||||
@abstract Synchronizes the record from the Directory in order to get current data and commit pending changes
|
||||
@discussion Synchronizes the record from the Directory in order to get current data. Any previously fetched attributes
|
||||
will be refetched from the Directory. This will not refetch the entire record, unless the entire record
|
||||
has been accessed. Additionally, any changes made to the record will be committed to the directory
|
||||
if the node does not do immediate commits.
|
||||
@param record an ODRecordRef to use
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
*/
|
||||
CF_EXPORT
|
||||
bool ODRecordSynchronize(ODRecordRef record, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODRecordDelete
|
||||
@abstract Deletes the record from the node and invalidates the record.
|
||||
@discussion Deletes the record from the node and invalidates the record. The ODRecordRef should be
|
||||
released after deletion.
|
||||
@param record an ODRecordRef to use
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result returns true on success, otherwise outError can be checked for details
|
||||
*/
|
||||
CF_EXPORT
|
||||
bool ODRecordDelete(ODRecordRef record, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODRecordAddMember
|
||||
@abstract Will add the record as a member of the group record that is provided
|
||||
@discussion Will add the record as a member of the group record that is provided in an appopriate manner
|
||||
based on what the directory will store. An error will be returned if the record is not a group record.
|
||||
Additionally, if the member record is not an appropriate type allowed as part of a group an
|
||||
error will be returned.
|
||||
@param group an ODRecordRef of the group record to modify
|
||||
@param member an ODRecordRef of the record to add to the group record
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result returns true on success, otherwise outError can be checked for details
|
||||
*/
|
||||
CF_EXPORT
|
||||
bool ODRecordAddMember(ODRecordRef group, ODRecordRef member, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODRecordRemoveMember
|
||||
@abstract Will remove the record as a member from the group record that is provided
|
||||
@discussion Will remove the record as a member from the group record that is provided. If the record type
|
||||
of group is not a Group, false will be returned with an appropriate error.
|
||||
@param group an ODRecordRef of the group record to modify
|
||||
@param member an ODRecordRef of the record to remove from the group record
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result returns true on success, otherwise outError can be checked for details
|
||||
*/
|
||||
CF_EXPORT
|
||||
bool ODRecordRemoveMember(ODRecordRef group, ODRecordRef member, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODRecordContainsMember
|
||||
@abstract Will use membership APIs to resolve group membership based on Group and Member record combination
|
||||
@discussion Will use membership APIs to resolve group membership based on Group and Member record combination.
|
||||
This API does not check attributes values directly, instead uses system APIs to deal with nested
|
||||
memberships.
|
||||
@param group an ODRecordRef of the group to be checked for membership
|
||||
@param member an ODRecordRef of the member to be checked against the group
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result returns true or false depending on result
|
||||
*/
|
||||
CF_EXPORT
|
||||
bool ODRecordContainsMember(ODRecordRef group, ODRecordRef member, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODRecordCopyPolicies
|
||||
@abstract This will copy any policies configured for the record.
|
||||
@discussion This will copy any policies configured for the record.
|
||||
@param record an ODRecordRef to use
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result a CFDictionaryRef containing all currently configured policies
|
||||
*/
|
||||
CF_EXPORT
|
||||
CFDictionaryRef ODRecordCopyPolicies(ODRecordRef record, CFErrorRef *error) __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_9, __MAC_10_10, __IPHONE_NA, __IPHONE_NA, "use ODRecordCopyAccountPolicies");
|
||||
|
||||
/*!
|
||||
@function ODRecordCopyEffectivePolicies
|
||||
@abstract This will copy the effective policies for the record (merging any node-level policies).
|
||||
@discussion This will copy the effective policies for the record (merging any node-level policies).
|
||||
@param record an ODRecordRef to use
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result a CFDictionaryRef containing all currently configured policies (merging any node-level policies)
|
||||
*/
|
||||
CF_EXPORT
|
||||
CFDictionaryRef ODRecordCopyEffectivePolicies(ODRecordRef record, CFErrorRef *error) __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_9, __MAC_10_10, __IPHONE_NA, __IPHONE_NA, "use ODRecordAuthenticationAllowed and similar functions");
|
||||
|
||||
/*!
|
||||
@function ODRecordCopySupportedPolicies
|
||||
@abstract This will return a dictionary of supported policies.
|
||||
@discussion This will return a dictionary of supported policies, if appropriate, the value will be the maximum value allowed
|
||||
for the policy in question. For example, if password history is available, it will state how much history is
|
||||
supported.
|
||||
@param record an ODRecordRef to use
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result a CFDictionaryRef containing all currently supported policies
|
||||
*/
|
||||
CF_EXPORT
|
||||
CFDictionaryRef ODRecordCopySupportedPolicies(ODRecordRef record, CFErrorRef *error) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_10, __IPHONE_NA, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODRecordSetPolicies
|
||||
@abstract This will set the policy for the record.
|
||||
@discussion This will set the policy for the record. Policies are evaluated in combination with node-level policies.
|
||||
@param record an ODRecordRef to use
|
||||
@param policies a CFDictionary of policies to be set
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result a bool which signifies if the policy set succeeded, otherwise error is set.
|
||||
*/
|
||||
CF_EXPORT
|
||||
bool ODRecordSetPolicies(ODRecordRef record, CFDictionaryRef policies, CFErrorRef *error) __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_9, __MAC_10_10, __IPHONE_NA, __IPHONE_NA, "use ODRecordSetAccountPolicies");
|
||||
|
||||
/*!
|
||||
@function ODRecordSetPolicy
|
||||
@abstract This will set a specific policy setting for the record.
|
||||
@discussion This will set a specific policy setting for the record.
|
||||
@param record an ODRecordRef to use
|
||||
@param policy a valid ODPolicyType
|
||||
@param value a CFTypeRef to be set (should be of appropriate type for the policy)
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result a bool which signifies if the policy set succeeded, otherwise error is set.
|
||||
*/
|
||||
CF_EXPORT
|
||||
bool ODRecordSetPolicy(ODRecordRef record, ODPolicyType policy, CFTypeRef value, CFErrorRef *error) __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_9, __MAC_10_10, __IPHONE_NA, __IPHONE_NA, "use ODRecordAddAccountPolicy");
|
||||
|
||||
/*!
|
||||
@function ODRecordRemovePolicy
|
||||
@abstract This will remove a specific policy setting from the record.
|
||||
@discussion This will remove a specific policy setting from the record.
|
||||
@param record an ODRecordRef to use
|
||||
@param policy a valid ODPolicyType
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result a bool which signifies if the policy removal succeeded, otherwise error is set.
|
||||
*/
|
||||
CF_EXPORT
|
||||
bool ODRecordRemovePolicy(ODRecordRef record, ODPolicyType policy, CFErrorRef *error) __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_9, __MAC_10_10, __IPHONE_NA, __IPHONE_NA, "use ODRecordRemoveAccountPolicy");
|
||||
|
||||
/*!
|
||||
@function ODRecordAddAccountPolicy
|
||||
@abstract This will add an account policy to the record for the specified category.
|
||||
@discussion This will add an account policy to the record for the specified category.
|
||||
The node-level and record-level policies will be combined and
|
||||
evaluated as appropriate, ensuring the strongest policy is enforced.
|
||||
@param record an ODRecordRef to use.
|
||||
@param policy a dictionary containing the specific policy to be added.
|
||||
The dictionary may contain the following keys:
|
||||
kODPolicyKeyIdentifier a required key identifying the policy.
|
||||
kODPolicyKeyParameters an optional key containing a dictionary of
|
||||
parameters that can be used for informational purposes or in
|
||||
the policy format string.
|
||||
kODPolicyKeyContent a required key specifying the policy,
|
||||
from which a predicate will be created for evaluating
|
||||
the policy.
|
||||
@param category a valid ODPolicyCategoryType to which the policy will be added.
|
||||
@param error is an optional CFErrorRef reference for error details.
|
||||
@result a bool which signifies if the policy addition succeeded, otherwise error is set.
|
||||
*/
|
||||
CF_EXPORT
|
||||
bool ODRecordAddAccountPolicy(ODRecordRef record, CFDictionaryRef policy, ODPolicyCategoryType category, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODRecordRemoveAccountPolicy
|
||||
@abstract This will remove an account policy from the record for the specified category.
|
||||
@discussion This will remove an account policy from the record for the specified category.
|
||||
@param record an ODRecordRef to use.
|
||||
@param policy a dictionary containing the specific policy to be
|
||||
removed, with the same format as described in ODRecordAddAccountPolicy.
|
||||
@param category a valid ODPolicyCategoryType from which the policy will be removed.
|
||||
@param error an optional CFErrorRef reference for error details.
|
||||
@result a bool which signifies if the policy removal succeeded, otherwise error is set.
|
||||
*/
|
||||
CF_EXPORT
|
||||
bool ODRecordRemoveAccountPolicy(ODRecordRef record, CFDictionaryRef policy, ODPolicyCategoryType category, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODRecordSetAccountPolicies
|
||||
@abstract This will set the policies for the record.
|
||||
@discussion This will set the policies for the record, replacing any
|
||||
existing policies. All of the policies in the set will be
|
||||
applied to the record when policies are evaluated.
|
||||
@param record an ODRecordRef to use.
|
||||
@param policies a dictionary containing all of the policies to be set
|
||||
for the node. The dictionary may contain the following keys:
|
||||
kODPolicyCategoryAuthentication an optional key with a value
|
||||
of an array of policy dictionaries that specify when
|
||||
authentications should be allowed.
|
||||
kODPolicyCategoryPasswordContent an optional key with a
|
||||
value of an array of policy dictionaries the specify the
|
||||
required content of passwords.
|
||||
kODPolicyCategoryPasswordChange an optional key with a value
|
||||
of an array of policy dictionaries that specify when
|
||||
passwords are required to be changed.
|
||||
@param error an optional CFErrorRef reference for error details.
|
||||
@result a bool which signifies if the policy set succeeded, otherwise error is set.
|
||||
*/
|
||||
CF_EXPORT
|
||||
bool ODRecordSetAccountPolicies(ODRecordRef record, CFDictionaryRef policies, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODRecordCopyAccountPolicies
|
||||
@abstract This will copy any policies configured for the record.
|
||||
@discussion This will copy any policies configured for the record. Does not
|
||||
copy any policies set for the node.
|
||||
@param record an ODRecordRef to use.
|
||||
@param error an optional CFErrorRef reference for error details.
|
||||
@result a CFDictionaryRef containing all currently set policies. The
|
||||
format of the dictionary is the same as described in
|
||||
ODRecordSetAccountPolicies().
|
||||
*/
|
||||
CF_EXPORT CF_RETURNS_RETAINED
|
||||
CFDictionaryRef ODRecordCopyAccountPolicies(ODRecordRef record, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODRecordAuthenticationAllowed
|
||||
@abstract Determines if policies allow the account to authenticate.
|
||||
@discussion Determines if policies allow the account to authenticate.
|
||||
Authentication and password change policies are evaluated.
|
||||
Record-level and node-level policies are evaluated in
|
||||
combination, with record-level taking precedence over node-level
|
||||
policies. The failure of any single policy will deny the
|
||||
authentication.
|
||||
|
||||
This check is only definitive at the time it was requested. The
|
||||
policy or the environment could change before the authentication
|
||||
is actually requested. Errors from the authentication request
|
||||
should be consulted.
|
||||
|
||||
It is not necessary to call this function when callingg
|
||||
ODRecordVerifyPassword or ODRecordVerifyPasswordExtended
|
||||
since those functions perform same policy evaluation.
|
||||
|
||||
@param record an ODRecordRef to use.
|
||||
@param error an optional CFErrorRef reference for error details.
|
||||
@result a bool which signifies if the authentication is allowed, otherwise error is set.
|
||||
*/
|
||||
CF_EXPORT
|
||||
bool ODRecordAuthenticationAllowed(ODRecordRef record, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODRecordPasswordChangeAllowed
|
||||
@abstract Determines if policies allow the password change.
|
||||
@discussion Determines if policies allow the password change. Password
|
||||
content policies are evaluated. Record-level and node-level
|
||||
policies are evaluated in combination, with record-level taking
|
||||
precedence over node-level policies. The failure of any single
|
||||
policy will deny the password change.
|
||||
|
||||
This check is only definitive at the time it was requested. The
|
||||
policy or the environment could change before the password change
|
||||
is actually requested. Errors from the password change request
|
||||
should be consulted.
|
||||
|
||||
@param record an ODRecordRef to use.
|
||||
@param newPassword contains the password to be evaluated.
|
||||
@param error an optional CFErrorRef reference for error details.
|
||||
@result a bool which signifies if the password change is allowed, otherwise error is set.
|
||||
*/
|
||||
CF_EXPORT
|
||||
bool ODRecordPasswordChangeAllowed(ODRecordRef record, CFStringRef newPassword, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODRecordWillPasswordExpire
|
||||
@abstract Determines if the password will expire within the specified time.
|
||||
@discussion Determines if the password will expire (i.e. need to be changed)
|
||||
between now and the specified number of seconds in the future.
|
||||
Record-level and node-level policies are evaluated
|
||||
together, with record-level taking precedence over node-level
|
||||
policies.
|
||||
@param record an ODRecordRef to use.
|
||||
@param willExpireIn the number of seconds from the current time to be
|
||||
used as the upper-bound for the password expiration period.
|
||||
@result a bool which signifies if the password will expire within the
|
||||
specified time.
|
||||
*/
|
||||
CF_EXPORT
|
||||
bool ODRecordWillPasswordExpire(ODRecordRef record, uint64_t willExpireIn) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODRecordWillAuthenticationsExpire
|
||||
@abstract Determines if authentications will expire within the specified time.
|
||||
@discussion Determines if authentications will expire (i.e. session and/or
|
||||
account expires) between now and the specified number of seconds
|
||||
in the future. Record-level and node-level policies are evaluated
|
||||
together, with record-level taking precedence over node-level
|
||||
policies.
|
||||
@param record an ODRecordRef to use.
|
||||
@param willExpireIn the number of seconds from the current time to be
|
||||
used as the upper-bound for the authentication expiration period.
|
||||
@result a bool which signifies if authentications will expire within the
|
||||
specified time.
|
||||
*/
|
||||
CF_EXPORT
|
||||
bool ODRecordWillAuthenticationsExpire(ODRecordRef record, uint64_t willExpireIn) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODRecordSecondsUntilPasswordExpires
|
||||
@abstract Determines how many seconds until the password expires.
|
||||
@discussion Determines how many seconds until the password expires (i.e.
|
||||
needs changing). Password change policies are evaluated.
|
||||
Record-level and node-level policies are evaluated in
|
||||
combination, with record-level taking precedence over node-level
|
||||
policies.
|
||||
@param record an ODRecordRef to use.
|
||||
@result the number of seconds until the password expires. If multiple
|
||||
policies will cause the password to expire, the soonest
|
||||
expiration time is returned. If already expired,
|
||||
kODExpirationTimeExpired is returned. If there are no password
|
||||
change policies, kODExpirationTimeNeverExpires is returned.
|
||||
*/
|
||||
CF_EXPORT
|
||||
int64_t ODRecordSecondsUntilPasswordExpires(ODRecordRef record) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODRecordSecondsUntilAuthenticationsExpire
|
||||
@abstract Determines how many seconds until authentications expire.
|
||||
@discussion Determines how many seconds until authentications expire (i.e.
|
||||
session and/or account expires). Record-level and node-level
|
||||
policies are evaluated together, with record-level taking
|
||||
precedence over node-level policies
|
||||
@param record an ODRecordRef to use.
|
||||
@result the number of seconds until authentications expire. If multiple
|
||||
policies will cause authentications to expire, the soonest
|
||||
expiration time is returned. If already expired,
|
||||
kODExpirationTimeExpired is returned. If there are no
|
||||
authentication policies controlling expiration,
|
||||
kODExpirationTimeNeverExpires is returned.
|
||||
*/
|
||||
CF_EXPORT
|
||||
int64_t ODRecordSecondsUntilAuthenticationsExpire(ODRecordRef record) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* ! __OPENDIRECTORY_CFODRECORD__ */
|
@ -0,0 +1,83 @@
|
||||
/*
|
||||
* Copyright (c) 2009 Apple Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this
|
||||
* file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_END@
|
||||
*/
|
||||
|
||||
#if !defined(__OPENDIRECTORY_CFODSESSION__)
|
||||
#define __OPENDIRECTORY_CFODSESSION__
|
||||
|
||||
#include <CFOpenDirectory/CFOpenDirectory.h>
|
||||
|
||||
/*!
|
||||
@const kODSessionDefault
|
||||
@abstract is the default type of ODSessionRef used if there is no need to create a specific reference
|
||||
@discussion is the default type of ODSessionRef used if there is no need to create a specific reference
|
||||
*/
|
||||
CF_EXPORT
|
||||
ODSessionRef kODSessionDefault __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/*!
|
||||
@function ODSessionGetTypeID
|
||||
@abstract Standard GetTypeID function support for CF-based objects
|
||||
@discussion Returns the typeID for ODSession objects
|
||||
@result a valid CFTypeID for the ODSession object
|
||||
*/
|
||||
CF_EXPORT
|
||||
CFTypeID ODSessionGetTypeID(void) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODSessionCreate
|
||||
@abstract Creates an ODSession object to be passed to ODNode functions
|
||||
@discussion Creates an ODSession object to be passed to ODNode functions.
|
||||
@param allocator a memory allocator to use for this object
|
||||
@param options a CFDictionary of options associated with this ODSession. This is typically NULL
|
||||
unless caller needs to proxy to another host.
|
||||
|
||||
If proxy is required then a dictionary with keys should be:
|
||||
Key Value
|
||||
kODSessionProxyAddress CFString(hostname or IP)
|
||||
kODSessionProxyPort CFNumber(IP port, should not be set as it will default)
|
||||
kODSessionProxyUsername CFString(username)
|
||||
kODSessionProxyPassword CFString(password)
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result a valid ODSessionRef object or NULL if it cannot be created. Pass reference to CFErrorRef to
|
||||
get error details
|
||||
*/
|
||||
CF_EXPORT
|
||||
ODSessionRef ODSessionCreate(CFAllocatorRef allocator, CFDictionaryRef options, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODSessionCopyNodeNames
|
||||
@abstract Returns the node names that are registered on this ODSession
|
||||
@discussion Returns the node names that are registered on this ODSession
|
||||
@param allocator a memory allocator to use for this object
|
||||
@param session an ODSessionRef, either kODSessionDefault or a valid ODSessionRef can be passed
|
||||
@param error an optional CFErrorRef reference for error details
|
||||
@result a valid CFArrayRef of node names that can be opened on the session reference
|
||||
*/
|
||||
CF_EXPORT
|
||||
CFArrayRef ODSessionCopyNodeNames(CFAllocatorRef allocator, ODSessionRef session, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* !__OPENDIRECTORY_CFODSESSION__ */
|
@ -0,0 +1,138 @@
|
||||
/*
|
||||
* Copyright (c) 2010 Apple Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this
|
||||
* file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_END@
|
||||
*/
|
||||
|
||||
#if !defined(__OPENDIRECTORY_CFODTRIGGER__)
|
||||
#define __OPENDIRECTORY_CFODTRIGGER__
|
||||
|
||||
typedef struct __ODTrigger *ODTriggerRef;
|
||||
|
||||
/* ODTriggerCreateForRecords */
|
||||
enum {
|
||||
kODTriggerRecordEventAdd = 1,
|
||||
kODTriggerRecordEventDelete = 2,
|
||||
kODTriggerRecordEventModify = 4,
|
||||
};
|
||||
|
||||
/* ODTriggerCreateForNodes */
|
||||
enum {
|
||||
kODTriggerNodeRegister = 1,
|
||||
kODTriggerNodeUnregister = 2,
|
||||
kODTriggerNodeOnline = 4,
|
||||
kODTriggerNodeOffline = 8,
|
||||
};
|
||||
|
||||
/* ODTriggerCreateForSearch */
|
||||
enum {
|
||||
kODTriggerSearchAdd = 1,
|
||||
kODTriggerSearchDelete = 2,
|
||||
kODTriggerSearchOnline = 4,
|
||||
kODTriggerSearchOffline = 8,
|
||||
};
|
||||
|
||||
typedef CFOptionFlags ODTriggerEventFlags;
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/*!
|
||||
@function ODTriggerGetTypeID
|
||||
@abstract returns the type identifier for the ODTrigger type
|
||||
@result The type identifer for the ODTrigger type.
|
||||
*/
|
||||
CF_EXPORT CFTypeID
|
||||
ODTriggerGetTypeID(void) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODTriggerCreateForRecords
|
||||
@abstract creates a trigger for a particular record event
|
||||
@discussion Creates a trigger for a particular record event. nodenames, recordnames and attributes is optional. Pass a CFArrayRef or CFStringRef for each list.
|
||||
@param events mask of events to monitor: kODTriggerRecordEventAdd, kODTriggerRecordEventDelete, kODTriggerRecordEventModify
|
||||
@param nodenames (optional) node names to monitor. Pass NULL to monitor all nodes.
|
||||
@param recordtypes record types of interest.
|
||||
@param recordnames (optional) record names to watch. Pass NULL to receive an event for any record.
|
||||
@param queue a queue to deliver this event on
|
||||
@param block a block to execute when event is triggered
|
||||
@result returns an ODTriggerRef that may be cleaned up with ODTriggerCancel and CFRelease
|
||||
*/
|
||||
CF_EXPORT ODTriggerRef
|
||||
ODTriggerCreateForRecords(CFAllocatorRef allocator, ODTriggerEventFlags events, CFTypeRef nodenames, CFTypeRef recordtypes, CFTypeRef recordnames,
|
||||
dispatch_queue_t queue, void (^block)(ODTriggerRef trigger, CFStringRef node, CFStringRef type, CFStringRef name))
|
||||
__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODTriggerCreateForRecordAttributes
|
||||
@abstract creates a trigger for record attribute modifications
|
||||
@discussion Creates a trigger for modification of record attributes. Pass a CFArrayRef or CFStringRef for each list.
|
||||
@param nodenames (optional) node names to watch. Pass NULL to watch all nodes.
|
||||
@param recordtypes record types to monitor (required)
|
||||
@param recordnames (optional) record names to monitor. Pass NULL to monitor all records.
|
||||
@param attributes (optional) attributes of interest. Pass NULL to see all attribute changes.
|
||||
@param queue a queue to deliver this event on
|
||||
@param block a block to execute when event is triggered
|
||||
@result returns an ODTriggerRef that may be cleaned up with ODTriggerCancel and CFRelease
|
||||
*/
|
||||
CF_EXPORT ODTriggerRef
|
||||
ODTriggerCreateForRecordAttributes(CFAllocatorRef allocator, CFTypeRef nodenames, CFTypeRef recordtypes, CFTypeRef recordnames, CFTypeRef attributes,
|
||||
dispatch_queue_t queue, void (^block)(ODTriggerRef trigger, CFStringRef node, CFStringRef type, CFStringRef rec, CFStringRef attr))
|
||||
__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function nodes_create
|
||||
@abstract creates a trigger for a particular node event
|
||||
@discussion Creates a trigger for a particular node event. Pass a CFArrayRef or CFStringRef for each list.
|
||||
@param events mask of events to monitor: kODTriggerNodeOffline, kODTriggerNodeOnline, kODTriggerNodeRegister, kODTriggerNodeUnregister
|
||||
@param nodenames (optional) node names to watch. Pass NULL to watch all nodes.
|
||||
@param queue a queue to deliver this event on
|
||||
@param block a block to execute when event is triggered
|
||||
@result returns an ODTriggerRef that may be cleaned up with ODTriggerCancel and CFRelease
|
||||
*/
|
||||
CF_EXPORT ODTriggerRef
|
||||
ODTriggerCreateForNodes(CFAllocatorRef allocator, ODTriggerEventFlags events, CFTypeRef nodenames,
|
||||
dispatch_queue_t queue, void (^block)(ODTriggerRef trigger, CFStringRef node))
|
||||
__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODTriggerCreateForSearch
|
||||
@abstract creates a trigger for a search node event
|
||||
@discussion Creates a trigger for a search node event. Pass a CFArrayRef or CFStringRef for each list.
|
||||
@param events mask of events to monitor: kODTriggerSearchAdd, kODTriggerSearchDelete, kODTriggerSearchOffline, kODTriggerSearchOnline
|
||||
@param nodenames (optional) interesting node names on the search policy. Pass NULL to monitor all search policy nodes.
|
||||
@param queue a queue to deliver this event on
|
||||
@param block a block to execute when event is triggered
|
||||
@result returns an ODTriggerRef that may be cleaned up with ODTriggerCancel and CFRelease
|
||||
*/
|
||||
CF_EXPORT ODTriggerRef
|
||||
ODTriggerCreateForSearch(CFAllocatorRef allocator, ODTriggerEventFlags events, CFTypeRef nodenames,
|
||||
dispatch_queue_t queue, void (^block)(ODTriggerRef trigger, CFStringRef node))
|
||||
__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODTriggerCancel
|
||||
@abstract cancel the trigger
|
||||
@discussion Permanently stops all this trigger from firing. Must call CFRelease as well.
|
||||
*/
|
||||
CF_EXPORT void
|
||||
ODTriggerCancel(ODTriggerRef trigger) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_NA);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* !__OPENDIRECTORY_CFODTRIGGER__ */
|
@ -0,0 +1,75 @@
|
||||
/*
|
||||
* Copyright (c) 2009 Apple Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this
|
||||
* file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_END@
|
||||
*/
|
||||
|
||||
#if !defined(__OPENDIRECTORY_CFOPENDIRECTORY__)
|
||||
#define __OPENDIRECTORY_CFOPENDIRECTORY__ 1
|
||||
|
||||
#include <CoreFoundation/CoreFoundation.h>
|
||||
|
||||
/*!
|
||||
@typedef ODContextRef
|
||||
@abstract Opaque reference for the ODContext object
|
||||
*/
|
||||
typedef const struct __ODContext *ODContextRef;
|
||||
|
||||
/*!
|
||||
@typedef ODNodeRef
|
||||
@abstract Opaque reference for the ODNode object
|
||||
*/
|
||||
typedef struct __ODNode *ODNodeRef;
|
||||
|
||||
/*!
|
||||
@typedef ODQueryRef
|
||||
@abstract Opaque reference for the ODQuery object
|
||||
*/
|
||||
typedef struct __ODQuery *ODQueryRef;
|
||||
|
||||
/*!
|
||||
@typedef ODRecordRef
|
||||
@abstract Opaque reference for the ODRecord object
|
||||
*/
|
||||
typedef struct __ODRecord *ODRecordRef;
|
||||
|
||||
/*!
|
||||
@typedef ODSessionRef
|
||||
@abstract Opaque reference for ODSession object
|
||||
*/
|
||||
typedef struct __ODSession *ODSessionRef;
|
||||
|
||||
/*!
|
||||
@const kODErrorDomainFramework
|
||||
@abstract the error domain for OpenDirectory.framework details
|
||||
@discussion the error domain for OpenDirectory.framework details
|
||||
*/
|
||||
CF_EXPORT
|
||||
const CFStringRef kODErrorDomainFramework __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
#include <CFOpenDirectory/CFOpenDirectoryConstants.h>
|
||||
|
||||
#include <CFOpenDirectory/CFODContext.h>
|
||||
#include <CFOpenDirectory/CFODNode.h>
|
||||
#include <CFOpenDirectory/CFODQuery.h>
|
||||
#include <CFOpenDirectory/CFODRecord.h>
|
||||
#include <CFOpenDirectory/CFODSession.h>
|
||||
|
||||
#endif /* ! __OPENDIRECTORY_CFOPENDIRECTORY__ */
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,25 @@
|
||||
/*
|
||||
This file is part of Darling.
|
||||
|
||||
Copyright (C) 2020 Lubos Dolezel
|
||||
|
||||
Darling is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Darling is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with Darling. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef _CFOPENDIRECTORYCONSTANTSPRIV_H_
|
||||
#define _CFOPENDIRECTORYCONSTANTSPRIV_H_
|
||||
|
||||
// not sure what to put here yet
|
||||
|
||||
#endif // _CFOPENDIRECTORYCONSTANTSPRIV_H_
|
@ -0,0 +1,189 @@
|
||||
/*
|
||||
* Copyright (c) 2009 Apple Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this
|
||||
* file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_END@
|
||||
*/
|
||||
|
||||
/*!
|
||||
@header CFOpenDirectoryPriv
|
||||
@abstract Private functions and constants
|
||||
@discussion Contains private functions and constants. These functions can
|
||||
change or go away at any time as they are not public API.
|
||||
*/
|
||||
|
||||
#ifndef __CFOPENDIRECTORYPRIV_H
|
||||
#define __CFOPENDIRECTORYPRIV_H
|
||||
|
||||
#include <CFOpenDirectory/CFOpenDirectory.h>
|
||||
#include <CFOpenDirectory/CFOpenDirectoryConstantsPriv.h>
|
||||
#include <DirectoryService/DirServicesTypes.h>
|
||||
|
||||
#include <CFOpenDirectory/CFODTrigger.h>
|
||||
|
||||
/* 8239461 */
|
||||
CF_EXPORT const ODRecordType kODRecordTypeUserAuthenticationData __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_NA);
|
||||
|
||||
/* 8394219 */
|
||||
CF_EXPORT const ODAttributeType kODAttributeTypeKerberosACL __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_NA);
|
||||
CF_EXPORT const ODAttributeType kODAttributeTypeKerberosKeySet __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_NA);
|
||||
CF_EXPORT const ODAttributeType kODAttributeTypeKerberosPrincipalACL __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_NA);
|
||||
CF_EXPORT const ODAttributeType kODAttributeTypeKerberosPrincipalAliases __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_NA);
|
||||
CF_EXPORT const ODAttributeType kODAttributeTypeKerberosPrincipalName __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_NA);
|
||||
CF_EXPORT const ODAttributeType kODAttributeTypeKerberosTicketPolicy __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@const kODAuthenticationTypeNodeNativeRetainCredential
|
||||
@abstract The plug-in should determine which specific authentication method to use.
|
||||
@discussion Identical to kODAuthenticationTypeNodeNativeClearTextOK, except that it
|
||||
retains the authentication for future calls.
|
||||
|
||||
Authentication array has following items in order:
|
||||
user name in UTF8 encoding,
|
||||
password in UTF8 encoding
|
||||
*/
|
||||
CF_EXPORT
|
||||
const ODAuthenticationType kODAuthenticationTypeNodeNativeRetainCredential __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@const kODAuthenticationTypeNodePPS
|
||||
@abstract PPS authentication.
|
||||
@discussion PPS authentication.
|
||||
*/
|
||||
CF_EXPORT
|
||||
const ODAuthenticationType kODAuthenticationTypeNodePPS __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_NA);
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
CF_EXPORT bool
|
||||
ODNodeVerifyCredentialsExtended(ODNodeRef node, ODRecordType recordType, ODAuthenticationType authType, CFArrayRef authItems,
|
||||
CFArrayRef *authItemsOut, ODContextRef *context, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_NA);
|
||||
|
||||
CF_EXPORT bool
|
||||
ODNodeCopyCredentials(ODNodeRef node, ODRecordType *recordType, CFStringRef *username, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODNodeCopyRecordAuthenticationData
|
||||
@abstract Private call to copy the UserAuthenticationData record corresponding to a given user record
|
||||
@discussion
|
||||
@param node ldapi:// node containing the needed UserAuthenticationData record
|
||||
@param record the user record
|
||||
@param error error details
|
||||
@result a valid ODSessionRef or NULL if failure occurs and ODGetError() can be called for detailed error
|
||||
*/
|
||||
CF_EXPORT
|
||||
ODRecordRef ODNodeCopyRecordAuthenticationData(ODNodeRef node, ODRecordRef record, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODSessionNodeNameIsLocal
|
||||
@abstract Private call to determine if a given nodename refers to a "local" node.
|
||||
@discussion Currently returns true only for /BSD/local and nodes beginning with "/Local/"
|
||||
@param session Session from which the node was opened. May be NULL.
|
||||
@param nodename Name of node, e.g. "/Local/Default".
|
||||
@result true if the node name refers to a "local" node, otherwise false.
|
||||
*/
|
||||
CF_EXPORT
|
||||
bool ODSessionNodeNameIsLocal(ODSessionRef session, CFStringRef nodename) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODNodeCreateWithDSRef
|
||||
@abstract Private call to create an object from existing DS references
|
||||
@discussion Recovery if DS invalidates the references, or something fails outside of the plugins ability cannot
|
||||
be recovered for DSProxy tDirReference types. Other types will re-open a DS Reference and re-open the
|
||||
node if the references become invalid. That does mean the ODNode will "own" the reference at that point.
|
||||
If the flag inCloseOnRelease is set to true, then the last release on ODNodeRef will cause the
|
||||
tDirNodeReference and tDirReference to be closed, otherwise, it's up to the caller to close the references
|
||||
accordingly (except after the failure/reopen).
|
||||
@param inAllocator the CFAllocatorRef to use
|
||||
@param inDirRef the tDirReference to use. An ODSessionRef will be created internally for this reference.
|
||||
@param inNodeRef the existing tDirNodeReference to use.
|
||||
@param inCloseOnRelease a bool true or false signifying whether the ODNodeRef and underlying ODSessionRef should
|
||||
close the references after the last release.
|
||||
@result a valid ODNodeRef or NULL if failure occurs and ODGetError() can be called for detailed error
|
||||
*/
|
||||
CF_EXPORT
|
||||
ODNodeRef ODNodeCreateWithDSRef(CFAllocatorRef inAllocator, tDirReference inDirRef, tDirNodeReference inNodeRef,
|
||||
bool inCloseOnRelease) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
|
||||
/*!
|
||||
@function ODSessionCreateWithDSRef
|
||||
@abstract Private call to create an object from existing DS references
|
||||
@discussion Recovery if DS invalidates the references, or something fails outside of the plugins ability cannot
|
||||
be recovered for DSProxy tDirReference types. If the flag inCloseOnRelease is set to true, then the last release
|
||||
on ODSessionRef will cause the tDirReference to be closed, otherwise, it's up to the caller to close the references
|
||||
accordingly (except after the failure/reopen).
|
||||
@param inAllocator the CFAllocatorRef to use
|
||||
@param inDirRef the tDirReference to use. An ODSessionRef will be created internally for this reference.
|
||||
@param inCloseOnRelease a bool true or false signifying whether the ODNodeRef and underlying ODSessionRef should
|
||||
close the references after the last release.
|
||||
@result a valid ODSessionRef or NULL if failure occurs and ODGetError() can be called for detailed error
|
||||
*/
|
||||
CF_EXPORT
|
||||
ODSessionRef ODSessionCreateWithDSRef(CFAllocatorRef inAllocator, tDirReference inDirRef, bool inCloseOnRelease) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODSessionGetDSRef
|
||||
@abstract Returns the internal tDirReference used by the APIs
|
||||
@discussion This ref is only guaranteed as long as the ref is usable. It should not be saved and only used with caution.
|
||||
This ref can be closed by the higher-level APIs if ODSessionRefs are deleted, become invalid, etc.
|
||||
@param inSessionRef the ODSessionRef to extract the tDirReference from
|
||||
@result the current tDirReference of the session
|
||||
*/
|
||||
CF_EXPORT
|
||||
tDirReference ODSessionGetDSRef(ODSessionRef inSessionRef) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODNodeGetDSRef
|
||||
@abstract Returns the internal tDirNodeReference used by the APIs
|
||||
@discussion This ref is only guaranteed as long as the ref is usable. It should not be saved and only used with caution.
|
||||
This ref can be closed by the higher-level APIs if ODNodeRefs are deleted, become invalid, etc.
|
||||
@param inNodeRef the ODNodeRef to extract the tDirNodeReference from
|
||||
@result the current tDirNodeReference of the node connection
|
||||
*/
|
||||
CF_EXPORT
|
||||
tDirNodeReference ODNodeGetDSRef(ODNodeRef inNodeRef) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODConvertToLegacyErrorCode
|
||||
@abstract Converts error code to legacy error
|
||||
@discussion Converts the error code to legacy error code.
|
||||
@param inCode is the error code returned by retrieving error code CFErrorGetCode() or [Error code]
|
||||
@result the legacy style error code
|
||||
*/
|
||||
CF_EXPORT
|
||||
tDirStatus ODConvertToLegacyErrorCode(CFIndex code) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
/*!
|
||||
@function ODRecordContainsMemberRefresh
|
||||
@abstract Will use membership APIs to resolve group membership based on Group and Member record combination ignoring the cache
|
||||
@discussion Will use membership APIs to resolve group membership based on Group and Member record combination ignoring the cache.
|
||||
This API does not check attributes values directly, instead uses system APIs to deal with nested
|
||||
memberships.
|
||||
@param inGroupRef an ODRecordRef of the group to be checked for membership
|
||||
@param inMemberRef an ODRecordRef of the member to be checked against the group
|
||||
@param outError an optional CFErrorRef reference for error details
|
||||
@result returns true or false depending on result
|
||||
*/
|
||||
CF_EXPORT
|
||||
bool ODRecordContainsMemberRefresh(ODRecordRef inGroupRef, ODRecordRef inMemberRef, CFErrorRef *outError) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
147
src/frameworks/CFOpenDirectory/include/generated-stubs.h
Normal file
147
src/frameworks/CFOpenDirectory/include/generated-stubs.h
Normal file
@ -0,0 +1,147 @@
|
||||
/*
|
||||
This file is part of Darling.
|
||||
|
||||
Copyright (C) 2020 Lubos Dolezel
|
||||
|
||||
Darling is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Darling is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with Darling. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef _CFOpenDirectory_H_
|
||||
#define _CFOpenDirectory_H_
|
||||
|
||||
void* ODContextGetTypeID(void);
|
||||
void* ODConvertToLegacyErrorCode(void);
|
||||
void* ODNodeAddAccountPolicy(void);
|
||||
void* ODNodeCopyAccountPolicies(void);
|
||||
void* ODNodeCopyCredentials(void);
|
||||
void* ODNodeCopyDetails(void);
|
||||
void* ODNodeCopyPolicies(void);
|
||||
void* ODNodeCopyRecord(void);
|
||||
void* ODNodeCopyRecordAuthenticationData(void);
|
||||
void* ODNodeCopySession(void);
|
||||
void* ODNodeCopySubnodeNames(void);
|
||||
void* ODNodeCopySupportedAttributes(void);
|
||||
void* ODNodeCopySupportedPolicies(void);
|
||||
void* ODNodeCopySupportedRecordTypes(void);
|
||||
void* ODNodeCopyUnreachableSubnodeNames(void);
|
||||
void* ODNodeCreateCopy(void);
|
||||
void* ODNodeCreateRecord(void);
|
||||
void* ODNodeCreateWithDSRef(void);
|
||||
void* ODNodeCreateWithName(void);
|
||||
void* ODNodeCreateWithNameAndOptions(void);
|
||||
void* ODNodeCreateWithNodeType(void);
|
||||
void* ODNodeCustomCall(void);
|
||||
void* ODNodeCustomFunction(void);
|
||||
void* ODNodeGetDSRef(void);
|
||||
void* ODNodeGetName(void);
|
||||
void* ODNodeGetSecureTokenRecoveryType(void);
|
||||
void* ODNodeGetTypeID(void);
|
||||
void* ODNodePasswordContentCheck(void);
|
||||
void* ODNodeRemoveAccountPolicy(void);
|
||||
void* ODNodeRemovePolicy(void);
|
||||
void* ODNodeReplaceUserRecord(void);
|
||||
void* ODNodeSetAccountPolicies(void);
|
||||
void* ODNodeSetCredentials(void);
|
||||
void* ODNodeSetCredentialsExtended(void);
|
||||
void* ODNodeSetCredentialsUsingKerberosCache(void);
|
||||
void* ODNodeSetCredentialsWithBootstrapToken(void);
|
||||
void* ODNodeSetPolicies(void);
|
||||
void* ODNodeSetPolicy(void);
|
||||
void* ODNodeSetSecureTokenRecoveryCloud(void);
|
||||
void* ODNodeSetSecureTokenRecoveryCloudUsingIdentity(void);
|
||||
void* ODNodeSetSecureTokenRecoveryMasterPassword(void);
|
||||
void* ODNodeSetSecureTokenRecoveryPersonal(void);
|
||||
void* ODNodeSetSecureTokenRecoveryPersonalUsingKey(void);
|
||||
void* ODNodeVerifyCredentialsExtended(void);
|
||||
void* ODQueryCopyResults(void);
|
||||
void* ODQueryCreateWithNode(void);
|
||||
void* ODQueryCreateWithNodeType(void);
|
||||
void* ODQueryGetTypeID(void);
|
||||
void* ODQueryScheduleWithRunLoop(void);
|
||||
void* ODQuerySetCallback(void);
|
||||
void* ODQuerySetDispatchQueue(void);
|
||||
void* ODQuerySynchronize(void);
|
||||
void* ODQueryUnscheduleFromRunLoop(void);
|
||||
void* ODRecordAddAccountPolicy(void);
|
||||
void* ODRecordAddMember(void);
|
||||
void* ODRecordAddValue(void);
|
||||
void* ODRecordAuthenticationAllowed(void);
|
||||
void* ODRecordChangePassword(void);
|
||||
void* ODRecordContainsMember(void);
|
||||
void* ODRecordContainsMemberRefresh(void);
|
||||
void* ODRecordCopyAccountPolicies(void);
|
||||
void* ODRecordCopyDetails(void);
|
||||
void* ODRecordCopyEffectivePolicies(void);
|
||||
void* ODRecordCopyPasswordContentSummary(void);
|
||||
void* ODRecordCopyPasswordPolicy(void);
|
||||
void* ODRecordCopyPolicies(void);
|
||||
void* ODRecordCopySupportedPolicies(void);
|
||||
void* ODRecordCopyValues(void);
|
||||
void* ODRecordDelete(void);
|
||||
void* ODRecordEnumerateMembers(void);
|
||||
void* ODRecordEnumerateMembership(void);
|
||||
void* ODRecordGetRecordName(void);
|
||||
void* ODRecordGetRecordType(void);
|
||||
void* ODRecordGetTypeID(void);
|
||||
void* ODRecordPasswordChangeAllowed(void);
|
||||
void* ODRecordRemoveAccountPolicy(void);
|
||||
void* ODRecordRemoveMember(void);
|
||||
void* ODRecordRemovePolicy(void);
|
||||
void* ODRecordRemoveValue(void);
|
||||
void* ODRecordSecondsUntilAuthenticationsExpire(void);
|
||||
void* ODRecordSecondsUntilPasswordExpires(void);
|
||||
void* ODRecordSetAccountPolicies(void);
|
||||
void* ODRecordSetNodeCredentials(void);
|
||||
void* ODRecordSetNodeCredentialsExtended(void);
|
||||
void* ODRecordSetNodeCredentialsUsingKerberosCache(void);
|
||||
void* ODRecordSetNodeCredentialsWithBootstrapToken(void);
|
||||
void* ODRecordSetPolicies(void);
|
||||
void* ODRecordSetPolicy(void);
|
||||
void* ODRecordSetValue(void);
|
||||
void* ODRecordSynchronize(void);
|
||||
void* ODRecordVerifyPassword(void);
|
||||
void* ODRecordVerifyPasswordExtended(void);
|
||||
void* ODRecordWillAuthenticationsExpire(void);
|
||||
void* ODRecordWillPasswordExpire(void);
|
||||
void* ODSessionCopyNodeNames(void);
|
||||
void* ODSessionCopySessionKeySupport(void);
|
||||
void* ODSessionCreate(void);
|
||||
void* ODSessionCreateWithDSRef(void);
|
||||
void* ODSessionGetDSRef(void);
|
||||
void* ODSessionGetTypeID(void);
|
||||
void* ODSessionIsProxy(void);
|
||||
void* ODSessionNodeNameIsLocal(void);
|
||||
void* ODSessionProxyAuthorizationForm(void);
|
||||
void* ODTriggerCancel(void);
|
||||
void* ODTriggerCreateForNodes(void);
|
||||
void* ODTriggerCreateForRecordAttributes(void);
|
||||
void* ODTriggerCreateForRecords(void);
|
||||
void* ODTriggerCreateForSearch(void);
|
||||
void* ODTriggerGetTypeID(void);
|
||||
void* _NodeGetNodeTypeName(void);
|
||||
void* _ODInitialize(void);
|
||||
void* _ODNodeCreate(void);
|
||||
void* _ODNodeInit(void);
|
||||
void* _ODQueryCreate(void);
|
||||
void* _ODQueryGetDelegate(void);
|
||||
void* _ODQueryGetOperationQueue(void);
|
||||
void* _ODQueryInit(void);
|
||||
void* _ODQuerySetDelegate(void);
|
||||
void* _ODQuerySetOperationQueue(void);
|
||||
void* _ODSessionCreate(void);
|
||||
void* _ODSessionGetShared(void);
|
||||
void* _ODSessionInit(void);
|
||||
|
||||
#endif
|
764
src/frameworks/CFOpenDirectory/src/CFOpenDirectory.c
Normal file
764
src/frameworks/CFOpenDirectory/src/CFOpenDirectory.c
Normal file
@ -0,0 +1,764 @@
|
||||
/*
|
||||
This file is part of Darling.
|
||||
|
||||
Copyright (C) 2020 Lubos Dolezel
|
||||
|
||||
Darling is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Darling is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with Darling. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
|
||||
#include "../include/generated-stubs.h"
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
static int verbose = 0;
|
||||
|
||||
__attribute__((constructor))
|
||||
static void initme(void) {
|
||||
verbose = getenv("STUB_VERBOSE") != NULL;
|
||||
}
|
||||
|
||||
void* ODContextGetTypeID(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODContextGetTypeID called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODConvertToLegacyErrorCode(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODConvertToLegacyErrorCode called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeAddAccountPolicy(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeAddAccountPolicy called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeCopyAccountPolicies(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeCopyAccountPolicies called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeCopyCredentials(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeCopyCredentials called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeCopyDetails(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeCopyDetails called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeCopyPolicies(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeCopyPolicies called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeCopyRecord(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeCopyRecord called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeCopyRecordAuthenticationData(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeCopyRecordAuthenticationData called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeCopySession(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeCopySession called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeCopySubnodeNames(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeCopySubnodeNames called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeCopySupportedAttributes(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeCopySupportedAttributes called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeCopySupportedPolicies(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeCopySupportedPolicies called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeCopySupportedRecordTypes(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeCopySupportedRecordTypes called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeCopyUnreachableSubnodeNames(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeCopyUnreachableSubnodeNames called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeCreateCopy(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeCreateCopy called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeCreateRecord(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeCreateRecord called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeCreateWithDSRef(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeCreateWithDSRef called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeCreateWithName(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeCreateWithName called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeCreateWithNameAndOptions(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeCreateWithNameAndOptions called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeCreateWithNodeType(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeCreateWithNodeType called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeCustomCall(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeCustomCall called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeCustomFunction(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeCustomFunction called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeGetDSRef(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeGetDSRef called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeGetName(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeGetName called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeGetSecureTokenRecoveryType(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeGetSecureTokenRecoveryType called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeGetTypeID(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeGetTypeID called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodePasswordContentCheck(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodePasswordContentCheck called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeRemoveAccountPolicy(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeRemoveAccountPolicy called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeRemovePolicy(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeRemovePolicy called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeReplaceUserRecord(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeReplaceUserRecord called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeSetAccountPolicies(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeSetAccountPolicies called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeSetCredentials(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeSetCredentials called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeSetCredentialsExtended(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeSetCredentialsExtended called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeSetCredentialsUsingKerberosCache(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeSetCredentialsUsingKerberosCache called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeSetCredentialsWithBootstrapToken(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeSetCredentialsWithBootstrapToken called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeSetPolicies(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeSetPolicies called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeSetPolicy(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeSetPolicy called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeSetSecureTokenRecoveryCloud(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeSetSecureTokenRecoveryCloud called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeSetSecureTokenRecoveryCloudUsingIdentity(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeSetSecureTokenRecoveryCloudUsingIdentity called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeSetSecureTokenRecoveryMasterPassword(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeSetSecureTokenRecoveryMasterPassword called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeSetSecureTokenRecoveryPersonal(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeSetSecureTokenRecoveryPersonal called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeSetSecureTokenRecoveryPersonalUsingKey(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeSetSecureTokenRecoveryPersonalUsingKey called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODNodeVerifyCredentialsExtended(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODNodeVerifyCredentialsExtended called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODQueryCopyResults(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODQueryCopyResults called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODQueryCreateWithNode(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODQueryCreateWithNode called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODQueryCreateWithNodeType(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODQueryCreateWithNodeType called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODQueryGetTypeID(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODQueryGetTypeID called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODQueryScheduleWithRunLoop(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODQueryScheduleWithRunLoop called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODQuerySetCallback(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODQuerySetCallback called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODQuerySetDispatchQueue(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODQuerySetDispatchQueue called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODQuerySynchronize(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODQuerySynchronize called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODQueryUnscheduleFromRunLoop(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODQueryUnscheduleFromRunLoop called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordAddAccountPolicy(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordAddAccountPolicy called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordAddMember(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordAddMember called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordAddValue(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordAddValue called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordAuthenticationAllowed(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordAuthenticationAllowed called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordChangePassword(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordChangePassword called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordContainsMember(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordContainsMember called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordContainsMemberRefresh(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordContainsMemberRefresh called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordCopyAccountPolicies(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordCopyAccountPolicies called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordCopyDetails(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordCopyDetails called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordCopyEffectivePolicies(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordCopyEffectivePolicies called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordCopyPasswordContentSummary(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordCopyPasswordContentSummary called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordCopyPasswordPolicy(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordCopyPasswordPolicy called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordCopyPolicies(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordCopyPolicies called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordCopySupportedPolicies(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordCopySupportedPolicies called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordCopyValues(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordCopyValues called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordDelete(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordDelete called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordEnumerateMembers(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordEnumerateMembers called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordEnumerateMembership(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordEnumerateMembership called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordGetRecordName(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordGetRecordName called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordGetRecordType(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordGetRecordType called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordGetTypeID(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordGetTypeID called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordPasswordChangeAllowed(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordPasswordChangeAllowed called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordRemoveAccountPolicy(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordRemoveAccountPolicy called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordRemoveMember(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordRemoveMember called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordRemovePolicy(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordRemovePolicy called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordRemoveValue(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordRemoveValue called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordSecondsUntilAuthenticationsExpire(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordSecondsUntilAuthenticationsExpire called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordSecondsUntilPasswordExpires(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordSecondsUntilPasswordExpires called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordSetAccountPolicies(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordSetAccountPolicies called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordSetNodeCredentials(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordSetNodeCredentials called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordSetNodeCredentialsExtended(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordSetNodeCredentialsExtended called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordSetNodeCredentialsUsingKerberosCache(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordSetNodeCredentialsUsingKerberosCache called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordSetNodeCredentialsWithBootstrapToken(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordSetNodeCredentialsWithBootstrapToken called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordSetPolicies(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordSetPolicies called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordSetPolicy(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordSetPolicy called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordSetValue(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordSetValue called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordSynchronize(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordSynchronize called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordVerifyPassword(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordVerifyPassword called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordVerifyPasswordExtended(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordVerifyPasswordExtended called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordWillAuthenticationsExpire(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordWillAuthenticationsExpire called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODRecordWillPasswordExpire(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODRecordWillPasswordExpire called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODSessionCopyNodeNames(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODSessionCopyNodeNames called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODSessionCopySessionKeySupport(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODSessionCopySessionKeySupport called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODSessionCreate(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODSessionCreate called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODSessionCreateWithDSRef(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODSessionCreateWithDSRef called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODSessionGetDSRef(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODSessionGetDSRef called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODSessionGetTypeID(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODSessionGetTypeID called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODSessionIsProxy(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODSessionIsProxy called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODSessionNodeNameIsLocal(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODSessionNodeNameIsLocal called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODSessionProxyAuthorizationForm(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODSessionProxyAuthorizationForm called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODTriggerCancel(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODTriggerCancel called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODTriggerCreateForNodes(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODTriggerCreateForNodes called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODTriggerCreateForRecordAttributes(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODTriggerCreateForRecordAttributes called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODTriggerCreateForRecords(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODTriggerCreateForRecords called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODTriggerCreateForSearch(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODTriggerCreateForSearch called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* ODTriggerGetTypeID(void)
|
||||
{
|
||||
if (verbose) puts("STUB: ODTriggerGetTypeID called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* _NodeGetNodeTypeName(void)
|
||||
{
|
||||
if (verbose) puts("STUB: _NodeGetNodeTypeName called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* _ODInitialize(void)
|
||||
{
|
||||
if (verbose) puts("STUB: _ODInitialize called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* _ODNodeCreate(void)
|
||||
{
|
||||
if (verbose) puts("STUB: _ODNodeCreate called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* _ODNodeInit(void)
|
||||
{
|
||||
if (verbose) puts("STUB: _ODNodeInit called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* _ODQueryCreate(void)
|
||||
{
|
||||
if (verbose) puts("STUB: _ODQueryCreate called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* _ODQueryGetDelegate(void)
|
||||
{
|
||||
if (verbose) puts("STUB: _ODQueryGetDelegate called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* _ODQueryGetOperationQueue(void)
|
||||
{
|
||||
if (verbose) puts("STUB: _ODQueryGetOperationQueue called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* _ODQueryInit(void)
|
||||
{
|
||||
if (verbose) puts("STUB: _ODQueryInit called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* _ODQuerySetDelegate(void)
|
||||
{
|
||||
if (verbose) puts("STUB: _ODQuerySetDelegate called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* _ODQuerySetOperationQueue(void)
|
||||
{
|
||||
if (verbose) puts("STUB: _ODQuerySetOperationQueue called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* _ODSessionCreate(void)
|
||||
{
|
||||
if (verbose) puts("STUB: _ODSessionCreate called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* _ODSessionGetShared(void)
|
||||
{
|
||||
if (verbose) puts("STUB: _ODSessionGetShared called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* _ODSessionInit(void)
|
||||
{
|
||||
if (verbose) puts("STUB: _ODSessionInit called");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* kODSessionDefault = NULL;
|
375
src/frameworks/CFOpenDirectory/src/constants.c
Normal file
375
src/frameworks/CFOpenDirectory/src/constants.c
Normal file
@ -0,0 +1,375 @@
|
||||
/*
|
||||
* Copyright (c) 2005-2009 Apple Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this
|
||||
* file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_END@
|
||||
*/
|
||||
|
||||
#include <CoreFoundation/CFString.h>
|
||||
|
||||
#define OD_ATTR_ASSIGN(x) CFStringRef kODAttributeType ## x = CFSTR("dsAttrTypeStandard:" # x)
|
||||
|
||||
#pragma mark Record Types
|
||||
|
||||
CFStringRef kODRecordTypeAttributeTypes = CFSTR("dsRecTypeStandard:AttributeTypes");
|
||||
CFStringRef kODRecordTypeAFPServer = CFSTR("dsRecTypeStandard:AFPServer");
|
||||
CFStringRef kODRecordTypeAliases = CFSTR("dsRecTypeStandard:Aliases");
|
||||
CFStringRef kODRecordTypeAugments = CFSTR("dsRecTypeStandard:Augments");
|
||||
CFStringRef kODRecordTypeAutomount = CFSTR("dsRecTypeStandard:Automount");
|
||||
CFStringRef kODRecordTypeAutomountMap = CFSTR("dsRecTypeStandard:AutomountMap");
|
||||
CFStringRef kODRecordTypeAutoServerSetup = CFSTR("dsRecTypeStandard:AutoServerSetup");
|
||||
CFStringRef kODRecordTypeBootp = CFSTR("dsRecTypeStandard:Bootp");
|
||||
CFStringRef kODRecordTypeCertificateAuthorities = CFSTR("dsRecTypeStandard:CertificateAuthorities");
|
||||
CFStringRef kODRecordTypeComputerLists = CFSTR("dsRecTypeStandard:ComputerLists");
|
||||
CFStringRef kODRecordTypeComputerGroups = CFSTR("dsRecTypeStandard:ComputerGroups");
|
||||
CFStringRef kODRecordTypeComputers = CFSTR("dsRecTypeStandard:Computers");
|
||||
CFStringRef kODRecordTypeConfiguration = CFSTR("dsRecTypeStandard:Config");
|
||||
CFStringRef kODRecordTypeEthernets = CFSTR("dsRecTypeStandard:Ethernets");
|
||||
CFStringRef kODRecordTypeFileMakerServers = CFSTR("dsRecTypeStandard:FileMakerServers");
|
||||
CFStringRef kODRecordTypeFTPServer = CFSTR("dsRecTypeStandard:FTPServer");
|
||||
CFStringRef kODRecordTypeGroups = CFSTR("dsRecTypeStandard:Groups");
|
||||
CFStringRef kODRecordTypeHostServices = CFSTR("dsRecTypeStandard:HostServices");
|
||||
CFStringRef kODRecordTypeHosts = CFSTR("dsRecTypeStandard:Hosts");
|
||||
CFStringRef kODRecordTypeLDAPServer = CFSTR("dsRecTypeStandard:LDAPServer");
|
||||
CFStringRef kODRecordTypeLocations = CFSTR("dsRecTypeStandard:Locations");
|
||||
CFStringRef kODRecordTypeMounts = CFSTR("dsRecTypeStandard:Mounts");
|
||||
CFStringRef kODRecordTypeNFS = CFSTR("dsRecTypeStandard:NFS");
|
||||
CFStringRef kODRecordTypeNetDomains = CFSTR("dsRecTypeStandard:NetDomains");
|
||||
CFStringRef kODRecordTypeNetGroups = CFSTR("dsRecTypeStandard:NetGroups");
|
||||
CFStringRef kODRecordTypeNetworks = CFSTR("dsRecTypeStandard:Networks");
|
||||
CFStringRef kODRecordTypePasswordServer = CFSTR("dsRecTypeStandard:PasswordServer");
|
||||
CFStringRef kODRecordTypePeople = CFSTR("dsRecTypeStandard:People");
|
||||
CFStringRef kODRecordTypePlugins = CFSTR("dsRecTypeStandard:Plugins");
|
||||
CFStringRef kODRecordTypePresetComputers = CFSTR("dsRecTypeStandard:PresetComputers");
|
||||
CFStringRef kODRecordTypePresetComputerGroups = CFSTR("dsRecTypeStandard:PresetComputerGroups");
|
||||
CFStringRef kODRecordTypePresetComputerLists = CFSTR("dsRecTypeStandard:PresetComputerLists");
|
||||
CFStringRef kODRecordTypePresetGroups = CFSTR("dsRecTypeStandard:PresetGroups");
|
||||
CFStringRef kODRecordTypePresetUsers = CFSTR("dsRecTypeStandard:PresetUsers");
|
||||
CFStringRef kODRecordTypePrintService = CFSTR("dsRecTypeStandard:PrintService");
|
||||
CFStringRef kODRecordTypePrintServiceUser = CFSTR("dsRecTypeStandard:PrintServiceUser");
|
||||
CFStringRef kODRecordTypePrinters = CFSTR("dsRecTypeStandard:Printers");
|
||||
CFStringRef kODRecordTypeProtocols = CFSTR("dsRecTypeStandard:Protocols");
|
||||
CFStringRef kODRecordTypeQTSServer = CFSTR("dsRecTypeStandard:QTSServer");
|
||||
CFStringRef kODRecordTypeRecordTypes = CFSTR("dsRecTypeStandard:RecordTypes");
|
||||
CFStringRef kODRecordTypeResources = CFSTR("dsRecTypeStandard:Resources");
|
||||
CFStringRef kODRecordTypeRPC = CFSTR("dsRecTypeStandard:RPC");
|
||||
CFStringRef kODRecordTypeSMBServer = CFSTR("dsRecTypeStandard:SMBServer");
|
||||
CFStringRef kODRecordTypeServer = CFSTR("dsRecTypeStandard:Server");
|
||||
CFStringRef kODRecordTypeServices = CFSTR("dsRecTypeStandard:Services");
|
||||
CFStringRef kODRecordTypeSharePoints = CFSTR("dsRecTypeStandard:SharePoints");
|
||||
CFStringRef kODRecordTypeUserAuthenticationData = CFSTR("dsRecTypeStandard:UserAuthenticationData");
|
||||
CFStringRef kODRecordTypeUsers = CFSTR("dsRecTypeStandard:Users");
|
||||
CFStringRef kODRecordTypeWebServer = CFSTR("dsRecTypeStandard:WebServer");
|
||||
|
||||
#pragma mark Attribute Types
|
||||
|
||||
CFStringRef kODAttributeTypeAllAttributes = CFSTR("dsAttributesAll");
|
||||
CFStringRef kODAttributeTypeStandardOnly = CFSTR("dsAttributesStandardAll");
|
||||
CFStringRef kODAttributeTypeNativeOnly = CFSTR("dsAttributesNativeAll");
|
||||
|
||||
CFStringRef kODAttributeTypeMetaAmbiguousName = CFSTR("dsAttrTypeStandard:AppleMetaAmbiguousName");
|
||||
CFStringRef kODAttributeTypeMetaAugmentedAttributes = CFSTR("dsAttrTypeStandard:AppleMetaAugmentedAttributes");
|
||||
CFStringRef kODAttributeTypeMetaRecordName = CFSTR("dsAttrTypeStandard:AppleMetaRecordName");
|
||||
|
||||
CFStringRef kODAttributeTypeAdminLimits = CFSTR("dsAttrTypeStandard:AdminLimits");
|
||||
CFStringRef kODAttributeTypeAuthenticationHint = CFSTR("dsAttrTypeStandard:AuthenticationHint");
|
||||
CFStringRef kODAttributeTypeAllTypes = CFSTR("dsAttrTypeStandard:AttributeTypes");
|
||||
CFStringRef kODAttributeTypeAuthorityRevocationList = CFSTR("dsAttrTypeStandard:AuthorityRevocationList");
|
||||
CFStringRef kODAttributeTypeBirthday = CFSTR("dsAttrTypeStandard:Birthday");
|
||||
CFStringRef kODAttributeTypeCACertificate = CFSTR("dsAttrTypeStandard:CACertificate");
|
||||
CFStringRef kODAttributeTypeCapacity = CFSTR("dsAttrTypeStandard:Capacity");
|
||||
CFStringRef kODAttributeTypeCategory = CFSTR("dsAttrTypeStandard:Category");
|
||||
CFStringRef kODAttributeTypeCertificateRevocationList = CFSTR("dsAttrTypeStandard:CertificateRevocationList");
|
||||
CFStringRef kODAttributeTypeComment = CFSTR("dsAttrTypeStandard:Comment");
|
||||
CFStringRef kODAttributeTypeContactGUID = CFSTR("dsAttrTypeStandard:ContactGUID");
|
||||
CFStringRef kODAttributeTypeContactPerson = CFSTR("dsAttrTypeStandard:ContactPerson");
|
||||
CFStringRef kODAttributeTypeCreationTimestamp = CFSTR("dsAttrTypeStandard:CreationTimestamp");
|
||||
CFStringRef kODAttributeTypeCrossCertificatePair = CFSTR("dsAttrTypeStandard:CrossCertificatePair");
|
||||
CFStringRef kODAttributeTypeDataStamp = CFSTR("dsAttrTypeStandard:DataStamp");
|
||||
CFStringRef kODAttributeTypeFullName = CFSTR("dsAttrTypeStandard:RealName");
|
||||
CFStringRef kODAttributeTypeDNSDomain = CFSTR("dsAttrTypeStandard:DNSDomain");
|
||||
CFStringRef kODAttributeTypeDNSNameServer = CFSTR("dsAttrTypeStandard:DNSNameServer");
|
||||
CFStringRef kODAttributeTypeENetAddress = CFSTR("dsAttrTypeStandard:ENetAddress");
|
||||
CFStringRef kODAttributeTypeExpire = CFSTR("dsAttrTypeStandard:Expire");
|
||||
CFStringRef kODAttributeTypeFirstName = CFSTR("dsAttrTypeStandard:FirstName");
|
||||
CFStringRef kODAttributeTypeGUID = CFSTR("dsAttrTypeStandard:GeneratedUID");
|
||||
CFStringRef kODAttributeTypeHomeDirectoryQuota = CFSTR("dsAttrTypeStandard:HomeDirectoryQuota");
|
||||
CFStringRef kODAttributeTypeHomeDirectorySoftQuota = CFSTR("dsAttrTypeStandard:HomeDirectorySoftQuota");
|
||||
CFStringRef kODAttributeTypeHomeLocOwner = CFSTR("dsAttrTypeStandard:HomeLocOwner");
|
||||
CFStringRef kODAttributeTypeInternetAlias = CFSTR("dsAttrTypeStandard:InetAlias");
|
||||
CFStringRef kODAttributeTypeKDCConfigData = CFSTR("dsAttrTypeStandard:KDCConfigData");
|
||||
CFStringRef kODAttributeTypeLastName = CFSTR("dsAttrTypeStandard:LastName");
|
||||
CFStringRef kODAttributeTypeLDAPSearchBaseSuffix = CFSTR("dsAttrTypeStandard:LDAPSearchBaseSuffix");
|
||||
CFStringRef kODAttributeTypeLocation = CFSTR("dsAttrTypeStandard:Location");
|
||||
CFStringRef kODAttributeTypeMapGUID = CFSTR("dsAttrTypeStandard:MapGUID");
|
||||
CFStringRef kODAttributeTypeMCXFlags = CFSTR("dsAttrTypeStandard:MCXFlags");
|
||||
CFStringRef kODAttributeTypeMCXSettings = CFSTR("dsAttrTypeStandard:MCXSettings");
|
||||
CFStringRef kODAttributeTypeMailAttribute = CFSTR("dsAttrTypeStandard:MailAttribute");
|
||||
CFStringRef kODAttributeTypeMetaAutomountMap = CFSTR("dsAttrTypeStandard:MetaAutomountMap");
|
||||
CFStringRef kODAttributeTypeMiddleName = CFSTR("dsAttrTypeStandard:MiddleName");
|
||||
CFStringRef kODAttributeTypeModificationTimestamp = CFSTR("dsAttrTypeStandard:ModificationTimestamp");
|
||||
CFStringRef kODAttributeTypeNFSHomeDirectory = CFSTR("dsAttrTypeStandard:NFSHomeDirectory");
|
||||
CFStringRef kODAttributeTypeNote = CFSTR("dsAttrTypeStandard:Note");
|
||||
CFStringRef kODAttributeTypeOwner = CFSTR("dsAttrTypeStandard:Owner");
|
||||
CFStringRef kODAttributeTypeOwnerGUID = CFSTR("dsAttrTypeStandard:OwnerGUID");
|
||||
CFStringRef kODAttributeTypePassword = CFSTR("dsAttrTypeStandard:Password");
|
||||
CFStringRef kODAttributeTypePasswordPlus = CFSTR("dsAttrTypeStandard:PasswordPlus");
|
||||
CFStringRef kODAttributeTypePasswordPolicyOptions = CFSTR("dsAttrTypeStandard:PasswordPolicyOptions");
|
||||
CFStringRef kODAttributeTypePasswordServerList = CFSTR("dsAttrTypeStandard:PasswordServerList");
|
||||
CFStringRef kODAttributeTypePasswordServerLocation = CFSTR("dsAttrTypeStandard:PasswordServerLocation");
|
||||
CFStringRef kODAttributeTypePicture = CFSTR("dsAttrTypeStandard:Picture");
|
||||
CFStringRef kODAttributeTypePort = CFSTR("dsAttrTypeStandard:Port");
|
||||
CFStringRef kODAttributeTypePresetUserIsAdmin = CFSTR("dsAttrTypeStandard:PresetUserIsAdmin");
|
||||
CFStringRef kODAttributeTypePrimaryComputerGUID = CFSTR("dsAttrTypeStandard:PrimaryComputerGUID");
|
||||
CFStringRef kODAttributeTypePrimaryComputerList = CFSTR("dsAttrTypeStandard:PrimaryComputerList");
|
||||
CFStringRef kODAttributeTypePrimaryGroupID = CFSTR("dsAttrTypeStandard:PrimaryGroupID");
|
||||
CFStringRef kODAttributeTypePrinter1284DeviceID = CFSTR("dsAttrTypeStandard:Printer1284DeviceID");
|
||||
CFStringRef kODAttributeTypePrinterLPRHost = CFSTR("dsAttrTypeStandard:PrinterLPRHost");
|
||||
CFStringRef kODAttributeTypePrinterLPRQueue = CFSTR("dsAttrTypeStandard:PrinterLPRQueue");
|
||||
CFStringRef kODAttributeTypePrinterMakeAndModel = CFSTR("dsAttrTypeStandard:PrinterMakeAndModel");
|
||||
CFStringRef kODAttributeTypePrinterType = CFSTR("dsAttrTypeStandard:PrinterType");
|
||||
CFStringRef kODAttributeTypePrinterURI = CFSTR("dsAttrTypeStandard:PrinterURI");
|
||||
CFStringRef kODAttributeTypePrinterXRISupported = CFSTR("dsAttrTypeStandard:PrinterXRISupported");
|
||||
CFStringRef kODAttributeTypePrintServiceInfoText = CFSTR("dsAttrTypeStandard:PrintServiceInfoText");
|
||||
CFStringRef kODAttributeTypePrintServiceInfoXML = CFSTR("dsAttrTypeStandard:PrintServiceInfoXML");
|
||||
CFStringRef kODAttributeTypePrintServiceUserData = CFSTR("dsAttrTypeStandard:PrintServiceUserData");
|
||||
CFStringRef kODAttributeTypeRealUserID = CFSTR("dsAttrTypeStandard:RealUserID");
|
||||
CFStringRef kODAttributeTypeRelativeDNPrefix = CFSTR("dsAttrTypeStandard:RelativeDNPrefix");
|
||||
CFStringRef kODAttributeTypeSMBAcctFlags = CFSTR("dsAttrTypeStandard:SMBAccountFlags");
|
||||
CFStringRef kODAttributeTypeSMBGroupRID = CFSTR("dsAttrTypeStandard:SMBGroupRID");
|
||||
CFStringRef kODAttributeTypeSMBHome = CFSTR("dsAttrTypeStandard:SMBHome");
|
||||
CFStringRef kODAttributeTypeSMBHomeDrive = CFSTR("dsAttrTypeStandard:SMBHomeDrive");
|
||||
CFStringRef kODAttributeTypeSMBKickoffTime = CFSTR("dsAttrTypeStandard:SMBKickoffTime");
|
||||
CFStringRef kODAttributeTypeSMBLogoffTime = CFSTR("dsAttrTypeStandard:SMBLogoffTime");
|
||||
CFStringRef kODAttributeTypeSMBLogonTime = CFSTR("dsAttrTypeStandard:SMBLogonTime");
|
||||
CFStringRef kODAttributeTypeSMBPrimaryGroupSID = CFSTR("dsAttrTypeStandard:SMBPrimaryGroupSID");
|
||||
CFStringRef kODAttributeTypeSMBPWDLastSet = CFSTR("dsAttrTypeStandard:SMBPasswordLastSet");
|
||||
CFStringRef kODAttributeTypeSMBProfilePath = CFSTR("dsAttrTypeStandard:SMBProfilePath");
|
||||
CFStringRef kODAttributeTypeSMBRID = CFSTR("dsAttrTypeStandard:SMBRID");
|
||||
CFStringRef kODAttributeTypeSMBScriptPath = CFSTR("dsAttrTypeStandard:SMBScriptPath");
|
||||
CFStringRef kODAttributeTypeSMBSID = CFSTR("dsAttrTypeStandard:SMBSID");
|
||||
CFStringRef kODAttributeTypeSMBUserWorkstations = CFSTR("dsAttrTypeStandard:SMBUserWorkstations");
|
||||
CFStringRef kODAttributeTypeServiceType = CFSTR("dsAttrTypeStandard:ServiceType");
|
||||
CFStringRef kODAttributeTypeSetupAdvertising = CFSTR("dsAttrTypeStandard:SetupAssistantAdvertising");
|
||||
CFStringRef kODAttributeTypeSetupAutoRegister = CFSTR("dsAttrTypeStandard:SetupAssistantAutoRegister");
|
||||
CFStringRef kODAttributeTypeSetupLocation = CFSTR("dsAttrTypeStandard:SetupAssistantLocation");
|
||||
CFStringRef kODAttributeTypeSetupOccupation = CFSTR("dsAttrTypeStandard:Occupation");
|
||||
CFStringRef kODAttributeTypeTimeToLive = CFSTR("dsAttrTypeStandard:TimeToLive");
|
||||
CFStringRef kODAttributeTypeTrustInformation = CFSTR("dsAttrTypeStandard:TrustInformation");
|
||||
CFStringRef kODAttributeTypeUniqueID = CFSTR("dsAttrTypeStandard:UniqueID");
|
||||
CFStringRef kODAttributeTypeUserCertificate = CFSTR("dsAttrTypeStandard:UserCertificate");
|
||||
CFStringRef kODAttributeTypeUserPKCS12Data = CFSTR("dsAttrTypeStandard:UserPKCS12Data");
|
||||
CFStringRef kODAttributeTypeUserShell = CFSTR("dsAttrTypeStandard:UserShell");
|
||||
CFStringRef kODAttributeTypeUserSMIMECertificate = CFSTR("dsAttrTypeStandard:UserSMIMECertificate");
|
||||
CFStringRef kODAttributeTypeVFSDumpFreq = CFSTR("dsAttrTypeStandard:VFSDumpFreq");
|
||||
CFStringRef kODAttributeTypeVFSLinkDir = CFSTR("dsAttrTypeStandard:VFSLinkDir");
|
||||
CFStringRef kODAttributeTypeVFSPassNo = CFSTR("dsAttrTypeStandard:VFSPassNo");
|
||||
CFStringRef kODAttributeTypeVFSType = CFSTR("dsAttrTypeStandard:VFSType");
|
||||
CFStringRef kODAttributeTypeWeblogURI = CFSTR("dsAttrTypeStandard:WeblogURI");
|
||||
CFStringRef kODAttributeTypeXMLPlist = CFSTR("dsAttrTypeStandard:XMLPlist");
|
||||
CFStringRef kODAttributeTypeProtocolNumber = CFSTR("dsAttrTypeStandard:ProtocolNumber");
|
||||
CFStringRef kODAttributeTypeRPCNumber = CFSTR("dsAttrTypeStandard:RPCNumber");
|
||||
CFStringRef kODAttributeTypeNetworkNumber = CFSTR("dsAttrTypeStandard:NetworkNumber");
|
||||
CFStringRef kODAttributeTypeAccessControlEntry = CFSTR("dsAttrTypeStandard:AccessControlEntry");
|
||||
CFStringRef kODAttributeTypeAddressLine1 = CFSTR("dsAttrTypeStandard:AddressLine1");
|
||||
CFStringRef kODAttributeTypeAddressLine2 = CFSTR("dsAttrTypeStandard:AddressLine2");
|
||||
CFStringRef kODAttributeTypeAddressLine3 = CFSTR("dsAttrTypeStandard:AddressLine3");
|
||||
CFStringRef kODAttributeTypeAreaCode = CFSTR("dsAttrTypeStandard:AreaCode");
|
||||
CFStringRef kODAttributeTypeAuthenticationAuthority = CFSTR("dsAttrTypeStandard:AuthenticationAuthority");
|
||||
CFStringRef kODAttributeTypeAutomountInformation = CFSTR("dsAttrTypeStandard:AutomountInformation");
|
||||
CFStringRef kODAttributeTypeBootParams = CFSTR("dsAttrTypeStandard:BootParams");
|
||||
CFStringRef kODAttributeTypeBuilding = CFSTR("dsAttrTypeStandard:Building");
|
||||
CFStringRef kODAttributeTypeServicesLocator = CFSTR("dsAttrTypeStandard:ServicesLocator");
|
||||
CFStringRef kODAttributeTypeCity = CFSTR("dsAttrTypeStandard:City");
|
||||
CFStringRef kODAttributeTypeCompany = CFSTR("dsAttrTypeStandard:Company");
|
||||
CFStringRef kODAttributeTypeComputers = CFSTR("dsAttrTypeStandard:Computers");
|
||||
CFStringRef kODAttributeTypeCountry = CFSTR("dsAttrTypeStandard:Country");
|
||||
CFStringRef kODAttributeTypeDepartment = CFSTR("dsAttrTypeStandard:Department");
|
||||
CFStringRef kODAttributeTypeDNSName = CFSTR("dsAttrTypeStandard:DNSName");
|
||||
CFStringRef kODAttributeTypeEMailAddress = CFSTR("dsAttrTypeStandard:EMailAddress");
|
||||
CFStringRef kODAttributeTypeEMailContacts = CFSTR("dsAttrTypeStandard:EMailContacts");
|
||||
CFStringRef kODAttributeTypeFaxNumber = CFSTR("dsAttrTypeStandard:FAXNumber");
|
||||
CFStringRef kODAttributeTypeGroup = CFSTR("dsAttrTypeStandard:Group");
|
||||
CFStringRef kODAttributeTypeGroupMembers = CFSTR("dsAttrTypeStandard:GroupMembers");
|
||||
CFStringRef kODAttributeTypeGroupMembership = CFSTR("dsAttrTypeStandard:GroupMembership");
|
||||
CFStringRef kODAttributeTypeGroupServices = CFSTR("dsAttrTypeStandard:GroupServices");
|
||||
CFStringRef kODAttributeTypeHomePhoneNumber = CFSTR("dsAttrTypeStandard:HomePhoneNumber");
|
||||
CFStringRef kODAttributeTypeHTML = CFSTR("dsAttrTypeStandard:HTML");
|
||||
CFStringRef kODAttributeTypeHomeDirectory = CFSTR("dsAttrTypeStandard:HomeDirectory");
|
||||
CFStringRef kODAttributeTypeIMHandle = CFSTR("dsAttrTypeStandard:IMHandle");
|
||||
CFStringRef kODAttributeTypeIPAddress = CFSTR("dsAttrTypeStandard:IPAddress");
|
||||
CFStringRef kODAttributeTypeIPAddressAndENetAddress = CFSTR("dsAttrTypeStandard:IPAddressAndENetAddress");
|
||||
CFStringRef kODAttributeTypeIPv6Address = CFSTR("dsAttrTypeStandard:IPv6Address");
|
||||
CFStringRef kODAttributeTypeJPEGPhoto = CFSTR("dsAttrTypeStandard:JPEGPhoto");
|
||||
CFStringRef kODAttributeTypeJobTitle = CFSTR("dsAttrTypeStandard:JobTitle");
|
||||
CFStringRef kODAttributeTypeKDCAuthKey = CFSTR("dsAttrTypeStandard:KDCAuthKey");
|
||||
CFStringRef kODAttributeTypeKeywords = CFSTR("dsAttrTypeStandard:Keywords");
|
||||
CFStringRef kODAttributeTypeLDAPReadReplicas = CFSTR("dsAttrTypeStandard:LDAPReadReplicas");
|
||||
CFStringRef kODAttributeTypeLDAPWriteReplicas = CFSTR("dsAttrTypeStandard:LDAPWriteReplicas");
|
||||
CFStringRef kODAttributeTypeMapCoordinates = CFSTR("dsAttrTypeStandard:MapCoordinates");
|
||||
CFStringRef kODAttributeTypeMapURI = CFSTR("dsAttrTypeStandard:MapURI");
|
||||
CFStringRef kODAttributeTypeMIME = CFSTR("dsAttrTypeStandard:MIME");
|
||||
CFStringRef kODAttributeTypeMobileNumber = CFSTR("dsAttrTypeStandard:MobileNumber");
|
||||
CFStringRef kODAttributeTypeNestedGroups = CFSTR("dsAttrTypeStandard:NestedGroups");
|
||||
CFStringRef kODAttributeTypeNetGroups = CFSTR("dsAttrTypeStandard:NetGroups");
|
||||
CFStringRef kODAttributeTypeNickName = CFSTR("dsAttrTypeStandard:NickName");
|
||||
CFStringRef kODAttributeTypeOrganizationInfo = CFSTR("dsAttrTypeStandard:OrganizationInfo");
|
||||
CFStringRef kODAttributeTypeOrganizationName = CFSTR("dsAttrTypeStandard:OrganizationName");
|
||||
CFStringRef kODAttributeTypePagerNumber = CFSTR("dsAttrTypeStandard:PagerNumber");
|
||||
CFStringRef kODAttributeTypePhoneContacts = CFSTR("dsAttrTypeStandard:PhoneContacts");
|
||||
CFStringRef kODAttributeTypePhoneNumber = CFSTR("dsAttrTypeStandard:PhoneNumber");
|
||||
CFStringRef kODAttributeTypePGPPublicKey = CFSTR("dsAttrTypeStandard:PGPPublicKey");
|
||||
CFStringRef kODAttributeTypePostalAddress = CFSTR("dsAttrTypeStandard:PostalAddress");
|
||||
CFStringRef kODAttributeTypePostalAddressContacts = CFSTR("dsAttrTypeStandard:PostalAddressContacts");
|
||||
CFStringRef kODAttributeTypePostalCode = CFSTR("dsAttrTypeStandard:PostalCode");
|
||||
CFStringRef kODAttributeTypeNamePrefix = CFSTR("dsAttrTypeStandard:NamePrefix");
|
||||
CFStringRef kODAttributeTypeProtocols = CFSTR("dsAttrTypeStandard:Protocols");
|
||||
CFStringRef kODAttributeTypeRecordName = CFSTR("dsAttrTypeStandard:RecordName");
|
||||
CFStringRef kODAttributeTypeRelationships = CFSTR("dsAttrTypeStandard:Relationships");
|
||||
CFStringRef kODAttributeTypeResourceInfo = CFSTR("dsAttrTypeStandard:ResourceInfo");
|
||||
CFStringRef kODAttributeTypeResourceType = CFSTR("dsAttrTypeStandard:ResourceType");
|
||||
CFStringRef kODAttributeTypeState = CFSTR("dsAttrTypeStandard:State");
|
||||
CFStringRef kODAttributeTypeStreet = CFSTR("dsAttrTypeStandard:Street");
|
||||
CFStringRef kODAttributeTypeNameSuffix = CFSTR("dsAttrTypeStandard:NameSuffix");
|
||||
CFStringRef kODAttributeTypeURL = CFSTR("dsAttrTypeStandard:URL");
|
||||
CFStringRef kODAttributeTypeVFSOpts = CFSTR("dsAttrTypeStandard:VFSOpts");
|
||||
|
||||
CFStringRef kODAttributeTypeAlias = CFSTR("dsAttrTypeStandard:Alias");
|
||||
CFStringRef kODAttributeTypeAuthCredential = CFSTR("dsAttrTypeStandard:AuthCredential");
|
||||
CFStringRef kODAttributeTypeCopyTimestamp = CFSTR("dsAttrTypeStandard:CopyTimestamp");
|
||||
CFStringRef kODAttributeTypeDateRecordCreated = CFSTR("dsAttrTypeStandard:DateRecordCreated");
|
||||
CFStringRef kODAttributeTypeKerberosRealm = CFSTR("dsAttrTypeStandard:KerberosRealm");
|
||||
CFStringRef kODAttributeTypeKerberosServices = CFSTR("dsAttrTypeStandard:KerberosServices");
|
||||
CFStringRef kODAttributeTypeNTDomainComputerAccount = CFSTR("dsAttrTypeStandard:NTDomainComputerAccount");
|
||||
CFStringRef kODAttributeTypeOriginalHomeDirectory = CFSTR("dsAttrTypeStandard:OriginalHomeDirectory");
|
||||
CFStringRef kODAttributeTypeOriginalNFSHomeDirectory = CFSTR("dsAttrTypeStandard:OriginalNFSHomeDirectory");
|
||||
CFStringRef kODAttributeTypeOriginalNodeName = CFSTR("dsAttrTypeStandard:OriginalNodeName");
|
||||
CFStringRef kODAttributeTypePrimaryNTDomain = CFSTR("dsAttrTypeStandard:PrimaryNTDomain");
|
||||
CFStringRef kODAttributeTypePwdAgingPolicy = CFSTR("dsAttrTypeStandard:PwdAgingPolicy");
|
||||
CFStringRef kODAttributeTypeReadOnlyNode = CFSTR("dsAttrTypeStandard:ReadOnlyNode");
|
||||
CFStringRef kODAttributeTypeTimePackage = CFSTR("dsAttrTypeStandard:TimePackage");
|
||||
CFStringRef kODAttributeTypeTotalSize = CFSTR("dsAttrTypeStandard:TotalSize");
|
||||
CFStringRef kODAttributeTypeAuthMethod = CFSTR("dsAttrTypeStandard:AuthMethod");
|
||||
CFStringRef kODAttributeTypeMetaNodeLocation = CFSTR("dsAttrTypeStandard:AppleMetaNodeLocation");
|
||||
CFStringRef kODAttributeTypeNodePath = CFSTR("dsAttrTypeStandard:NodePath");
|
||||
CFStringRef kODAttributeTypePlugInInfo = CFSTR("dsAttrTypeStandard:PlugInInfo");
|
||||
CFStringRef kODAttributeTypeRecordType = CFSTR("dsAttrTypeStandard:RecordType");
|
||||
CFStringRef kODAttributeTypeSchema = CFSTR("dsAttrTypeStandard:Scheama");
|
||||
CFStringRef kODAttributeTypeSubNodes = CFSTR("dsAttrTypeStandard:SubNodes");
|
||||
|
||||
CFStringRef kODAttributeTypeNetGroupTriplet = CFSTR("dsAttrTypeStandard:NetGroupTriplet");
|
||||
|
||||
CFStringRef kODAttributeTypeSearchPath = CFSTR("dsAttrTypeStandard:SearchPath");
|
||||
CFStringRef kODAttributeTypeSearchPolicy = CFSTR("dsAttrTypeStandard:SearchPolicy");
|
||||
CFStringRef kODAttributeTypeAutomaticSearchPath = CFSTR("dsAttrTypeStandard:NSPSearchPath");
|
||||
CFStringRef kODAttributeTypeLocalOnlySearchPath = CFSTR("dsAttrTypeStandard:LSPSearchPath");
|
||||
CFStringRef kODAttributeTypeCustomSearchPath = CFSTR("dsAttrTypeStandard:CSPSearchPath");
|
||||
|
||||
CFStringRef kODAttributeTypeAdvertisedServices = CFSTR("dsAttrTypeStandard:AdvertisedServices");
|
||||
CFStringRef kODAttributeTypeLocaleRelay = CFSTR("dsAttrTypeStandard:LocaleRelay");
|
||||
CFStringRef kODAttributeTypeLocaleSubnets = CFSTR("dsAttrTypeStandard:LocaleSubnets");
|
||||
CFStringRef kODAttributeTypeNetworkInterfaces = CFSTR("dsAttrTypeStandard:NetworkInterfaces");
|
||||
CFStringRef kODAttributeTypeParentLocales = CFSTR("dsAttrTypeStandard:ParentLocales");
|
||||
CFStringRef kODAttributeTypePrimaryLocale = CFSTR("dsAttrTypeStandard:PrimaryLocale");
|
||||
|
||||
OD_ATTR_ASSIGN(KerberosACL);
|
||||
OD_ATTR_ASSIGN(KerberosKeySet);
|
||||
OD_ATTR_ASSIGN(KerberosPrincipalACL);
|
||||
OD_ATTR_ASSIGN(KerberosPrincipalAliases);
|
||||
OD_ATTR_ASSIGN(KerberosPrincipalName);
|
||||
OD_ATTR_ASSIGN(KerberosTicketPolicy);
|
||||
|
||||
#pragma mark Attribute Types (Configure Node)
|
||||
|
||||
CFStringRef kODAttributeTypeBuildVersion = CFSTR("dsAttrTypeStandard:BuildVersion");
|
||||
CFStringRef kODAttributeTypeConfigAvailable = CFSTR("dsAttrTypeStandard:ConfigAvail");
|
||||
CFStringRef kODAttributeTypeConfigFile = CFSTR("dsAttrTypeStandard:ConfigFile");
|
||||
CFStringRef kODAttributeTypeCoreFWVersion = CFSTR("dsAttrTypeStandard:CoreFWVersion");
|
||||
CFStringRef kODAttributeTypeFunctionalState = CFSTR("dsAttrTypeStandard:FunctionalState");
|
||||
CFStringRef kODAttributeTypeFWVersion = CFSTR("dsAttrTypeStandard:FWVersion");
|
||||
CFStringRef kODAttributeTypePluginIndex = CFSTR("dsAttrTypeStandard:PluginIndex");
|
||||
CFStringRef kODAttributeTypeNumTableList = CFSTR("dsAttrTypeStandard:RefNumTableList");
|
||||
CFStringRef kODAttributeTypeVersion = CFSTR("dsAttrTypeStandard:Version");
|
||||
CFStringRef kODAttributeTypePIDValue = CFSTR("dsAttrTypeStandard:PIDValue");
|
||||
CFStringRef kODAttributeTypeProcessName = CFSTR("dsAttrTypeStandard:ProcessName");
|
||||
CFStringRef kODAttributeTypeTotalRefCount = CFSTR("dsAttrTypeStandard:TotalRefCount");
|
||||
CFStringRef kODAttributeTypeDirRefCount = CFSTR("dsAttrTypeStandard:DirRefCount");
|
||||
CFStringRef kODAttributeTypeNodeRefCount = CFSTR("dsAttrTypeStandard:NodeRefCount");
|
||||
CFStringRef kODAttributeTypeRecRefCount = CFSTR("dsAttrTypeStandard:RecRefCount");
|
||||
CFStringRef kODAttributeTypeAttrListRefCount = CFSTR("dsAttrTypeStandard:AttrListRefCount");
|
||||
CFStringRef kODAttributeTypeAttrListValueRefCount = CFSTR("dsAttrTypeStandard:AttrListValueRefCount");
|
||||
CFStringRef kODAttributeTypeDirRefs = CFSTR("dsAttrTypeStandard:DirRefs");
|
||||
CFStringRef kODAttributeTypeNodeRefs = CFSTR("dsAttrTypeStandard:NodeRefs");
|
||||
CFStringRef kODAttributeTypeRecRefs = CFSTR("dsAttrTypeStandard:RecRefs");
|
||||
CFStringRef kODAttributeTypeAttrListRefs = CFSTR("dsAttrTypeStandard:AttrListRefs");
|
||||
CFStringRef kODAttributeTypeAttrListValueRefs = CFSTR("dsAttrTypeStandard:AttrListValueRefs");
|
||||
CFStringRef kODAttributeTypeOperatingSystem = CFSTR("dsAttrTypeStandard:OperatingSystem");
|
||||
CFStringRef kODAttributeTypeOperatingSystemVersion = CFSTR("dsAttrTypeStandard:OperatingSystemVersion");
|
||||
CFStringRef kODAttributeTypeAltSecurityIdentities = CFSTR("dsAttrTypeStandard:AltSecurityIdentities");
|
||||
CFStringRef kODAttributeTypeHardwareUUID = CFSTR("dsAttrTypeStandard:HardwareUUID");
|
||||
|
||||
#pragma mark Authentication Types
|
||||
|
||||
CFStringRef kODAuthenticationType2WayRandom = CFSTR("dsAuthMethodStandard:dsAuth2WayRandom");
|
||||
CFStringRef kODAuthenticationType2WayRandomChangePasswd = CFSTR("dsAuthMethodStandard:dsAuth2WayRandomChangePasswd");
|
||||
CFStringRef kODAuthenticationTypeAPOP = CFSTR("dsAuthMethodStandard:dsAuthAPOP");
|
||||
CFStringRef kODAuthenticationTypeCRAM_MD5 = CFSTR("dsAuthMethodStandard:dsAuthNodeCRAM-MD5");
|
||||
CFStringRef kODAuthenticationTypeChangePasswd = CFSTR("dsAuthMethodStandard:dsAuthChangePasswd");
|
||||
CFStringRef kODAuthenticationTypeClearText = CFSTR("dsAuthMethodStandard:dsAuthClearText");
|
||||
CFStringRef kODAuthenticationTypeCrypt = CFSTR("dsAuthMethodStandard:dsAuthCrypt");
|
||||
CFStringRef kODAuthenticationTypeDIGEST_MD5 = CFSTR("dsAuthMethodStandard:dsAuthNodeDIGEST-MD5");
|
||||
CFStringRef kODAuthenticationTypeDeleteUser = CFSTR("dsAuthMethodStandard:dsAuthDeleteUser");
|
||||
CFStringRef kODAuthenticationTypeGetEffectivePolicy = CFSTR("dsAuthMethodStandard:dsAuthGetEffectivePolicy");
|
||||
CFStringRef kODAuthenticationTypeGetGlobalPolicy = CFSTR("dsAuthMethodStandard:dsAuthGetGlobalPolicy");
|
||||
CFStringRef kODAuthenticationTypeGetKerberosPrincipal = CFSTR("dsAuthMethodStandard:dsAuthGetKerberosPrincipal");
|
||||
CFStringRef kODAuthenticationTypeGetPolicy = CFSTR("dsAuthMethodStandard:dsAuthGetPolicy");
|
||||
CFStringRef kODAuthenticationTypeGetUserData = CFSTR("dsAuthMethodStandard:dsAuthGetUserData");
|
||||
CFStringRef kODAuthenticationTypeGetUserName = CFSTR("dsAuthMethodStandard:dsAuthGetUserName");
|
||||
CFStringRef kODAuthenticationTypeKerberosTickets = CFSTR("dsAuthMethodStandard:dsAuthKerberosTickets");
|
||||
CFStringRef kODAuthenticationTypeMPPEMasterKeys = CFSTR("dsAuthMethodStandard:dsAuthMPPEMasterKeys");
|
||||
CFStringRef kODAuthenticationTypeMSCHAP2 = CFSTR("dsAuthMethodStandard:dsAuthMSCHAP2");
|
||||
CFStringRef kODAuthenticationTypeNTLMv2 = CFSTR("dsAuthMethodStandard:dsAuthNodeNTLMv2");
|
||||
CFStringRef kODAuthenticationTypeNTLMv2WithSessionKey = CFSTR("dsAuthMethodStandard:dsAuthNodeNTLMv2WithSessionKey");
|
||||
CFStringRef kODAuthenticationTypeNewUser = CFSTR("dsAuthMethodStandard:dsAuthNewUser");
|
||||
CFStringRef kODAuthenticationTypeNewUserWithPolicy = CFSTR("dsAuthMethodStandard:dsAuthNewUserWithPolicy");
|
||||
CFStringRef kODAuthenticationTypeNodeNativeClearTextOK = CFSTR("dsAuthMethodStandard:dsAuthNodeNativeCanUseClearText");
|
||||
CFStringRef kODAuthenticationTypeNodeNativeNoClearText = CFSTR("dsAuthMethodStandard:dsAuthNodeNativeCannotUseClearText");
|
||||
CFStringRef kODAuthenticationTypeNodeNativeRetainCredential = CFSTR("dsAuthMethodStandard:dsAuthNodeNativeRetainCredential");
|
||||
CFStringRef kODAuthenticationTypeNodePPS = CFSTR("dsAuthMethodStandard:dsAuthNodePPS");
|
||||
CFStringRef kODAuthenticationTypeReadSecureHash = CFSTR("dsAuthMethodStandard:dsAuthReadSecureHash");
|
||||
CFStringRef kODAuthenticationTypeSMBNTv2UserSessionKey = CFSTR("dsAuthMethodStandard:dsSMBNTv2UserSessionKey");
|
||||
CFStringRef kODAuthenticationTypeSMBWorkstationCredentialSessionKey = CFSTR("dsAuthMethodStandard:dsAuthSMBWorkstationCredentialSessionKey");
|
||||
CFStringRef kODAuthenticationTypeSMB_LM_Key = CFSTR("dsAuthMethodStandard:dsAuthSMBLMKey");
|
||||
CFStringRef kODAuthenticationTypeSMB_NT_Key = CFSTR("dsAuthMethodStandard:dsAuthSMBNTKey");
|
||||
CFStringRef kODAuthenticationTypeSMB_NT_UserSessionKey = CFSTR("dsAuthMethodStandard:dsAuthSMBNTUserSessionKey");
|
||||
CFStringRef kODAuthenticationTypeSMB_NT_WithUserSessionKey = CFSTR("dsAuthMethodStandard:dsAuthNTWithSessionKey");
|
||||
CFStringRef kODAuthenticationTypeSecureHash = CFSTR("dsAuthMethodStandard:dsAuthSecureHash");
|
||||
CFStringRef kODAuthenticationTypeSetCertificateHashAsCurrent = CFSTR("dsAuthMethodStandard:dsAuthSetCertificateHashAsRoot");
|
||||
CFStringRef kODAuthenticationTypeSetGlobalPolicy = CFSTR("dsAuthMethodStandard:dsAuthSetGlobalPolicy");
|
||||
CFStringRef kODAuthenticationTypeSetLMHash = CFSTR("dsAuthMethodStandard:dsAuthSetLMHash");
|
||||
CFStringRef kODAuthenticationTypeSetNTHash = CFSTR("dsAuthMethodStandard:dsAuthSetNTHash");
|
||||
CFStringRef kODAuthenticationTypeSetPassword = CFSTR("dsAuthMethodStandard:dsAuthSetPasswd");
|
||||
CFStringRef kODAuthenticationTypeSetPasswordAsCurrent = CFSTR("dsAuthMethodStandard:dsAuthSetPasswdAsRoot");
|
||||
CFStringRef kODAuthenticationTypeSetPolicy = CFSTR("dsAuthMethodStandard:dsAuthSetPolicy");
|
||||
CFStringRef kODAuthenticationTypeSetPolicyAsCurrent = CFSTR("dsAuthMethodStandard:dsAuthSetPolicyAsRoot");
|
||||
CFStringRef kODAuthenticationTypeSetUserData = CFSTR("dsAuthMethodStandard:dsAuthSetUserData");
|
||||
CFStringRef kODAuthenticationTypeSetUserName = CFSTR("dsAuthMethodStandard:dsAuthSetUserName");
|
||||
CFStringRef kODAuthenticationTypeSetWorkstationPassword = CFSTR("dsAuthMethodStandard:dsAuthSetWorkstationPasswd");
|
||||
CFStringRef kODAuthenticationTypeWithAuthorizationRef = CFSTR("dsAuthMethodStandard:dsAuthWithAuthorizationRef");
|
||||
CFStringRef kODAuthenticationTypeWriteSecureHash = CFSTR("dsAuthMethodStandard:dsAuthWriteSecureHash");
|
@ -51,3 +51,4 @@ add_subdirectory(StoreKit)
|
||||
add_subdirectory(SystemConfiguration)
|
||||
add_subdirectory(VideoToolbox)
|
||||
add_subdirectory(WebKit)
|
||||
add_subdirectory(CFOpenDirectory)
|
||||
|
Loading…
x
Reference in New Issue
Block a user