📄 mds.h
字号:
#ifndef MDS_H#define MDS_H/************************************************************************//* SISCO SOFTWARE MODULE HEADER *****************************************//************************************************************************//* (c) Copyright Systems Integration Specialists Company, Inc., *//* 1996, 1997, All Rights Reserved *//* *//* MODULE NAME : mds.h *//* PRODUCT(S) : SUIC 3.0 *//* *//* MODULE DESCRIPTION : *//* This module contains definitions and declaration for MMS Directory *//* Services (MDS) API. *//* *//* MODIFICATION LOG : *//* Date Who Rev Comments *//* -------- --- ------ ------------------------------------------- *//* 11/27/96 DSF Created *//************************************************************************/#ifdef __cplusplusextern "C" {#endif/************************************************************************//* Error code definitions *//************************************************************************/#define MDS_ERROR_INIT 0x6B01#define MDS_ERROR_INVALID_OPCODE 0x6B02#define MDS_ERROR_INVALID_HANDLE 0x6B03#define MDS_ERROR_BAD_DN 0x6B04#define MDS_ERROR_SERVE 0x6B05#define MDS_ERROR_RESULT 0x6B06#define MDS_ERROR_BIND 0x6B07#define MDS_ERROR_UNBIND 0x6B08#define MDS_ERROR_READ 0x6B09#define MDS_ERROR_ATTR_TYPE_NAME 0x6B0A#define MDS_ERROR_DECODE 0x6B0B#define MDS_ERROR_BAD_PADDR 0x6B0Cextern ST_INT mds_error; /* error returned by X.500 provider *//************************************************************************//* Codes returned by mds_serve () *//************************************************************************/#define MDS_SERVE_EVENT_RECEIVED 1#define MDS_SERVE_NO_DATA 2#define MDS_SERVE_TRY_AGAIN 3#define MDS_SERVE_DECODE_ERROR 11#define MDS_SERVE_INTERNAL_ERROR 12/************************************************************************//* Generally useful definitions *//************************************************************************/#define MAX_DN_LEN 255 /* Max. length of Directory Distinguished Name */#define MAX_LNAME_LEN 40 /* Max. length of locally defined names (attr. types and object classes) *//************************************************************************//* Global Data *//************************************************************************/extern ST_CHAR mds_def_ddn_prefix[]; /* Default DDN Prefix: used for shorthand */#define MAX_PSWD_LEN 127typedef struct { ST_CHAR name[MAX_DN_LEN + 1]; ST_BOOLEAN passwd_pres; ST_CHAR passwd[MAX_PSWD_LEN + 1]; } MDS_USERID;extern MDS_USERID *mds_def_userid; /* User ID to use when binding to default DSA */#define MDS_TP4 0#define MDS_TCP 1typedef struct mds_dsa { DBL_LNK lnk; /* Link pointer */ MDS_USERID *userid; /* User ID */ ST_INT transport; /* transport provider: TP4 vs. TCP */ ST_BOOLEAN aet_pres; /* AET present */ ST_CHAR aet[MAX_DN_LEN + 1]; /* AET stored as a DDN (APT + AEQ) */ /* Upper Layer Addressing */ ST_INT psel_len; ST_UCHAR psel[MAX_P_SEL]; ST_INT ssel_len; ST_UCHAR ssel[MAX_S_SEL]; ST_INT tsel_len; ST_UCHAR tsel[MAX_T_SEL]; /* NSAP (OSI) */ ST_INT net_addr_len; /* Network address length */ ST_UCHAR net_addr[MAX_N_SEL]; /* Network address */ /* IP Address or Host Name (TCP/IP) */ ST_INT port; /* TCP/IP port number (currently ignored) */ ST_CHAR host_name[HOST_NAME_LEN + 1]; /* TCP/IP addr (dotted decimal or host name) */ ST_LONG prov_info; /* reserved for MDS provider */ ST_LONG user_info; /* reserved for MDS user */ ST_LONG user_info2; /* reserved for MDS user */ } MDS_DSA; /************************************************************************//* Request Control Blocks *//************************************************************************/#define MDS_REQ_BIND 1#define MDS_REQ_UNBIND 2#define MDS_REQ_READ 3/* Status definitions */#define MDS_STATUS_PENDING 1#define MDS_STATUS_COMPLETED 2/* Return information selection options */#define MDS_SELECT_ALL_TYPES_VALUES 0#define MDS_SELECT_SOME_TYPES_VALUES 1#define MDS_SELECT_ALL_TYPES 2#define MDS_SELECT_SOME_TYPES 3/*----------------------------------------------------------------------*//* Request Header *//*----------------------------------------------------------------------*//*----------------------------------------------------------------------*//* Attribute structure *//*----------------------------------------------------------------------*/#define MDS_TYPE_TAG_NAME 1#define MDS_TYPE_TAG_OBJID 2typedef struct { ST_INT tag; union { ST_CHAR name[MAX_LNAME_LEN + 1]; MMS_OBJ_ID objid; } u; } MDS_TYPE;/*----------------------------------------------------------------------*//* Information structure *//*----------------------------------------------------------------------*//* Directory Attribute Syntaxes */#define MDS_SYNTAX_ANY 0x00 /* undefined syntax */#define MDS_SYNTAX_DNAME 0x01 /* distinguished name syntax */#define MDS_SYNTAX_OBJID 0x02 /* object identifier syntax */#define MDS_SYNTAX_CEXST 0x03 /* case exact string syntax */#define MDS_SYNTAX_CIGST 0x04 /* case ignore string syntax */#define MDS_SYNTAX_PRINT 0x05 /* printable string syntax */#define MDS_SYNTAX_NUMER 0x06 /* numeric string syntax */#define MDS_SYNTAX_CIGLS 0x07 /* case ignore list syntax */#define MDS_SYNTAX_BOOLE 0x08 /* boolean syntax */#define MDS_SYNTAX_INTEG 0x09 /* integer syntax */#define MDS_SYNTAX_OCTET 0x0a /* octet string syntax */#define MDS_SYNTAX_UTCTM 0x0b /* utc time syntax */#define MDS_SYNTAX_TELEP 0x0c /* telephone number syntax */#define MDS_SYNTAX_BITST 0x0d /* bit string syntax */#define MDS_SYNTAX_T61ST 0x0e /* t61 string syntax */#define MDS_SYNTAX_SRGU 0x0f /* search guide */#define MDS_SYNTAX_PSAD 0x10 /* postal address */#define MDS_SYNTAX_TLEX 0x11 /* telex number */#define MDS_SYNTAX_TXTI 0x12 /* teletex terminal id */#define MDS_SYNTAX_FAXT 0x13 /* facsimile telephone number */#define MDS_SYNTAX_PRFD 0x14 /* prefered delivery method */#define MDS_SYNTAX_PSAP 0x15 /* presentation address */#define MDS_SYNTAX_DLSP 0x16 /* mhs dl submit permissions */#define MDS_SYNTAX_ORAD 0x17 /* mhs or address */#define MDS_SYNTAX_ORNA 0x18 /* mhs or name */#define MDS_SYNTAX_UACR 0x19 /* marben defined user access */ /* rights. cf. XUacrT */#define MDS_SYNTAX_GENST 0x1a /* general string syntax */#define MDS_SYNTAX_GTMST 0x1b /* generalized time string syx */#define MDS_SYNTAX_GRAST 0x1c /* graphic string syntax */#define MDS_SYNTAX_OBDST 0x1d /* object descriptor string syx */#define MDS_SYNTAX_IA5ST 0x1e /* ia5 string syntax */#define MDS_SYNTAX_VTXST 0x1f /* videotex string syntax */#define MDS_SYNTAX_VISST 0x20 /* visible string syntax */#define MDS_SYNTAX_IAIST 0x21 /* case ignore ia5 patch0029 */#define MDS_SYNTAX_PROST 0x22 /* protected octet string synt. */#define MAX_NET_ADDR (max (MAX_N_SEL, HOST_NAME_LEN))typedef struct { ST_BOOLEAN psel_pres; ST_INT psel_len; ST_UCHAR psel[MAX_P_SEL]; ST_BOOLEAN ssel_pres; ST_INT ssel_len; ST_UCHAR ssel[MAX_S_SEL]; ST_BOOLEAN tsel_pres; ST_INT tsel_len; ST_UCHAR tsel[MAX_T_SEL]; /* Network Address */ ST_INT num_net; /* Number of network addresses (1-4) */ ST_INT net_type[4]; /* Network type (TP4 vs. TCP) */ ST_INT net_addr_len[4]; /* Network address length */ ST_UCHAR net_addr[4][MAX_NET_ADDR]; /* Network address */ ST_INT port[4]; /* Port number (for RFC 1006) */ } MDS_PRES_ADDR;#define MDS_INFO_TAG_DECODED 1 /* data decoded accoring to syntax */#define MDS_INFO_TAG_ASN1 2 /* data remains ASN.1 encoded */typedef struct { ST_BOOLEAN attr_name_pres; /* locally defined */ ST_CHAR attr_name[MAX_LNAME_LEN + 1]; /* attribute type name */ MMS_OBJ_ID attr_objid; /* attribute type Object ID */ ST_INT attr_syntax; /* attribute syntax id - */ /* set by provider on return - */ /* -1 if unknown */ ST_INT info_tag; /* info data tag */ /* The following two fields are valid iff Attribute Type == Object Class */ ST_BOOLEAN class_name_pres; /* object class name pres */ ST_CHAR class_name[MAX_LNAME_LEN + 1]; /* object class name */ ST_INT len; /* info length */ ST_CHAR *info; /* pointer to info */ } MDS_INFO;/*----------------------------------------------------------------------*//* Bind Request *//*----------------------------------------------------------------------*/typedef struct { struct { ST_BOOLEAN use_def_dsa; /* This field is used if use_default_dsa == SD_FALSE */ MDS_DSA *dsa; /* DSA's address */ } in;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -