2006-03-10 18:39:22 +00:00

181 lines
5.3 KiB
C

/***********************************************************************
*
* Copyright (C) 2005-2006 Novell, Inc. All Rights Reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; version 2.1
* of the License.
*
* This library 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
* Library Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, Novell, Inc.
*
* To contact Novell about this file by physical or electronic mail,
* you may find current contact information at www.novell.com.
*
***********************************************************************/
#if ! defined ( NWDSDC_H )
#define NWDSDC_H
#if ! defined( NTYPES_H )
#include "ntypes.h"
#endif
#if ! defined( NWDSTYPE_H )
#include "nwdstype.h"
#endif
#include "npackon.h"
/* Directory Context Key names */
#define DCK_FLAGS 1
#define DCK_CONFIDENCE 2
#define DCK_NAME_CONTEXT 3
#define DCK_TRANSPORT_TYPE 4
#define DCK_REFERRAL_SCOPE 5
#define DCK_LAST_CONNECTION 8
#define DCK_LAST_SERVER_ADDRESS 9 /* CLIB NLM only */
#define DCK_LAST_ADDRESS_USED 10 /* CLIB NLM only */
#define DCK_TREE_NAME 11
#define DCK_DSI_FLAGS 12
#define DCK_NAME_FORM 13
#define DCK_NAME_CACHE_DEPTH 15
#define DCK_AUTHENTICATION_MODE 20
/* DCK_FLAGS bit values key */
#define DCV_DEREF_ALIASES 0x00000001L
#define DCV_XLATE_STRINGS 0x00000002L
#define DCV_TYPELESS_NAMES 0x00000004L
#define DCV_ASYNC_MODE 0x00000008L
#define DCV_CANONICALIZE_NAMES 0x00000010L
#define DCV_DEREF_BASE_CLASS 0x00000040L
#define DCV_DISALLOW_REFERRALS 0x00000080L
#define DCV_ALWAYS_EVALUATE_REFERRALS 0x00000100L
#define DCV_EXTERNAL_REFERENCES 0x00000200L
/* values for DCK_CONFIDENCE key */
#define DCV_LOW_CONF 0
#define DCV_MED_CONF 1
#define DCV_HIGH_CONF 2
#define MAX_MESSAGE_LEN (0xFC00) /* (63*1024) */
#define DEFAULT_MESSAGE_LEN (4*1024)
/* values for DCK_REFERRAL_SCOPE key */
#define DCV_ANY_SCOPE 0
#define DCV_COUNTRY_SCOPE 1
#define DCV_ORGANIZATION_SCOPE 2
#define DCV_LOCAL_SCOPE 3
/* values for DCK_DSI_FLAGS key */
#define DSI_OUTPUT_FIELDS 0x00000001L
#define DSI_ENTRY_ID 0x00000002L
#define DSI_ENTRY_FLAGS 0x00000004L
#define DSI_SUBORDINATE_COUNT 0x00000008L
#define DSI_MODIFICATION_TIME 0x00000010L
#define DSI_MODIFICATION_TIMESTAMP 0x00000020L
#define DSI_CREATION_TIMESTAMP 0x00000040L
#define DSI_PARTITION_ROOT_ID 0x00000080L
#define DSI_PARENT_ID 0x00000100L
#define DSI_REVISION_COUNT 0x00000200L
#define DSI_REPLICA_TYPE 0x00000400L
#define DSI_BASE_CLASS 0x00000800L
#define DSI_ENTRY_RDN 0x00001000L
#define DSI_ENTRY_DN 0x00002000L
#define DSI_PARTITION_ROOT_DN 0x00004000L
#define DSI_PARENT_DN 0x00008000L
#define DSI_PURGE_TIME 0x00010000L
#define DSI_DEREFERENCE_BASE_CLASS 0x00020000L
#define DSI_REPLICA_NUMBER 0x00040000L
#define DSI_REPLICA_STATE 0x00080000L
#define DSI_FEDERATION_BOUNDARY 0x00100000L
#define DSI_SCHEMA_BOUNDARY 0x00200000L
/* values for DCK_NAME_FORM key */
#define DCV_NF_PARTIAL_DOT 1
#define DCV_NF_FULL_DOT 2
#define DCV_NF_SLASH 3
/* values for DCK_AUTHENTICATION_MODE key */
#define DCV_PUBLIC_AUTHEN 1
#define DCV_PRIVATE_AUTHEN 2
typedef nuint32 NWDSContextHandle;
#if defined(N_PLAT_NLM)
typedef struct
{
nuint32 addressType;
nuint32 addressLength;
nuint8 address[12];
} NWDSIPXNetworkAddr;
#endif
#ifdef __cplusplus
extern "C" {
#endif
N_EXTERN_LIBRARY (NWDSCCODE)
NWDSFreeContext
(
NWDSContextHandle context
);
N_EXTERN_LIBRARY (NWDSCCODE)
NWDSGetContext
(
NWDSContextHandle context,
nint key,
nptr value
);
N_EXTERN_LIBRARY (NWDSCCODE)
NWDSSetContext
(
NWDSContextHandle context,
nint key,
nptr value
);
N_EXTERN_LIBRARY (NWDSCCODE)
NWDSCreateContextHandle
(
NWDSContextHandle N_FAR *newHandle
);
N_EXTERN_LIBRARY (NWDSCCODE)
NWDSDuplicateContextHandle
(
NWDSContextHandle srcContextHandle,
NWDSContextHandle N_FAR *destContextHandle
);
#ifdef __cplusplus
}
#endif
/* The NLM LibC x-plat libraries do not support obsolete apis
*/
#include <stddef.h>
#if !defined(__NOVELL_LIBC__)
#ifdef INCLUDE_OBSOLETE
#include "obsolete/o_dsdc.h"
#endif
#endif /* !defined(__NOVELL_LIBC__) */
#include "npackoff.h"
#endif /* NWDSDC_H */