dsapi_const.h

Go to the documentation of this file.
00001 /* Emacs mode: -*- C -*- */
00002 
00003 /* 
00004  * Copyright (c) 2004-2007, Isode Limited, London, England.
00005  * All rights reserved.
00006  *
00007  * Acquisition and use of this software and related materials for any
00008  * purpose requires a written licence agreement from Isode Limited, or
00009  * a written licence from an organisation licenced by Isode Limited to
00010  * grant such a licence.
00011  *
00012  */
00013 
00014 /*
00015  * dsapi_const.h
00016  *
00017  * Symbolic constants.
00018  *
00019  */
00020 
00021 /* 
00022  * $RCSfile: dsapi_const.h,v $ $Revision: 1.38 $ $State: Exp $
00023  *
00024  * $Log: dsapi_const.h,v $
00025  * Revision 1.38  2007/11/12 18:22:26  jp
00026  * T071112B - Add handling of LDIF-buffer-file mode of access
00027  *
00028  * Revision 1.37  2007/11/02 10:59:36  cjr
00029  * T071031D - Bump the API version, for DS_BindSync_SASL.
00030  *
00031  * Revision 1.36  2007/10/19 10:14:15  jp
00032  * T071018C - Add DS_AttrVal_Normalize() function
00033  *
00034  * Revision 1.35  2007/08/28 15:00:55  cjr
00035  * T070821L - Add password policy, and bump the API version.
00036  *
00037  * Revision 1.34  2007/08/22 14:35:13  nh
00038  * T070821J - New function DS_DN_GetHashCode
00039  *
00040  * Revision 1.33  2007/08/06 14:49:24  jp
00041  * T070802F - Add support for 'unknown' attribute-types
00042  *
00043  * Revision 1.32  2007/07/19 16:16:48  jp
00044  * T070718L - Add LDIF in-memory encode/decode; DN comparison
00045  *
00046  * Revision 1.31  2007/07/18 10:41:03  nh
00047  * T070711F - Added support for referrals
00048  *
00049  * Revision 1.30  2007/07/12 15:05:07  kurt
00050  * T070621N - Removed SASL and NIS Schema pseudo codes
00051  *
00052  * Revision 1.29  2007/07/06 11:03:42  jp
00053  * T070704A - Update version number
00054  *
00055  * Revision 1.28  2007/06/25 10:24:03  jp
00056  * T070622B - New version
00057  *
00058  * Revision 1.27  2007/05/15 14:38:50  nh
00059  * T070514H - New function DS_UninitializeSecurity now exposed.
00060  *
00061  * Revision 1.26  2007/05/15 13:18:28  dbw
00062  * T070515D - Update/Add copyright
00063  *
00064  * Revision 1.25  2007/04/30 09:51:35  nh
00065  * T070427L - Added new function DS_Indication_GetSignatureError
00066  *
00067  * Revision 1.24  2007/04/17 09:10:18  nh
00068  * T070413L - Define DS_E_X509/DS_E_X509_RESULTSDISCARDED
00069  *
00070  * Revision 1.23  2007/04/11 10:20:45  dsm
00071  * T070411C - Add DS_AddSyncByDN and DS_ModifySyncByDN.
00072  *
00073  * Revision 1.22  2007/03/22 15:06:29  nh
00074  * T070320L - Add DS_SVC_OPT_SEARCHALIASES and DS_SVC_OPT_USEALIASONUPDATE; bump version.
00075  *
00076  * Revision 1.21  2006/11/28 17:06:50  nh
00077  * T061128B - Add DS_SVC_OPT_ATTRSONLY; bump version number
00078  *
00079  * Revision 1.20  2006/11/20 15:16:14  jp
00080  * T061115G - Update version due to changes elsewhere
00081  *
00082  * Revision 1.19  2006/11/16 15:14:15  nh
00083  * T061101D - Version number update for change in semantics of DS_AttrVal_GetInternal
00084  *
00085  * Revision 1.18  2006/10/31 11:14:51  nh
00086  * T061026B - Update DSAPI version number
00087  *
00088  * Revision 1.17  2006/10/30 15:21:02  jp
00089  * T061026D - Add new DS_Status code DS_E_OPFAILED, updated version number
00090  *
00091  * Revision 1.16  2006/09/15 16:21:00  nh
00092  * T060915F - Add DS_E_SIGNEDOPFAILED
00093  *
00094  * Revision 1.15  2006/07/06 14:04:15  cjr
00095  * T060706G - Bump DSAPI_VERSION and add DS_SEC_SIGNED and DS_SEC_ENCRYPTED
00096  *
00097  * Revision 1.14  2006/04/03 10:31:41  cjr
00098  * T060403A - Update DSAPI_VERSION to account for DS_Indication_GetLimitProblem()
00099  *
00100  * Revision 1.13  2006/01/23 16:15:58  brs
00101  * T060123D - Document some enums, and remove some open braces.
00102  *
00103  * Revision 1.12  2006/01/10 15:48:33  cjr
00104  * T060110A - Bump DSAPI_VERSION, to account for DS_Indication_GetErrorCodes().
00105  *
00106  * Revision 1.11  2005/11/01 16:54:11  cjr
00107  * T051101F - Add DS_E_NOINFO to the DS_ErrorValue enum.
00108  *
00109  * Revision 1.10  2005/09/08 13:00:37  cjr
00110  * T050908E - Change DSAPI_VERSION to 2000.
00111  *
00112  * Revision 1.9  2005/07/04 12:23:46  cjr
00113  * T050704A - Replace DS_E_ defines with enumerated types.
00114  *
00115  * Revision 1.8  2005/06/29 15:57:00  cjr
00116  * T050629C - Fixed typo in DS_E_SVC_ADMINISTRATIVELIMITEXCEEDED docs.
00117  *
00118  * Revision 1.7  2005/05/23 10:26:54  cjr
00119  * T050523A - Renumbered DS_E_BADADDR to avoid conflict with DS_E_BADENTRY.
00120  *
00121  * Revision 1.6  2005/02/25 12:47:34  cjr
00122  * T050223E - Improve documentation
00123  *
00124  * Revision 1.5  2005/02/16 16:22:31  nh
00125  * T050216E - See description
00126  *
00127  * Revision 1.4  2005/02/15 15:19:46  cjr
00128  * T050215E - Removed \fn commands.
00129  *
00130  * Revision 1.3  2005/01/27 17:14:44  cjr
00131  * T050127D - Add DS_SVC_PRIORITY, _SIZELIMIT and _TIMELIMIT.
00132  *
00133  * Revision 1.2  2005/01/26 16:08:23  cjr
00134  * T050126F - Add DS_EXT_OPT_MANAGEDSAIT. Update boilerplate.
00135  *
00136  * Revision 1.1  2005/01/24 17:19:56  dsm
00137  * T050124B - Initial revision.
00138  *
00139  *
00140  */
00141 
00142 #ifndef ISODE_DSAPI_CONST_H
00143 #define ISODE_DSAPI_CONST_H
00144 
00149 /* API Version. */
00150 #define DSAPI_VERSION 2028
00151 
00153 /* Generic parameter representation. */
00155 #ifndef PRIVATE_DEFINITION
00156 #define DS_INT_TYPE 0x01000000
00157 
00158 #define DS_STR_TYPE 0x02000000
00159 
00160 #define DS_BOOL_TYPE 0x04000000
00161 
00162 #define DS_BYTES_TYPE 0x08000000
00163 
00165 /* Get parameter type from ID (see dsapi_const.h for parameter IDs). */
00166 #define DS_PARAM_TYPE_MASK 0xff000000
00167 
00168 #define PARAMTYPE(id) ( id & DS_PARAM_TYPE_MASK )
00169 
00170 /* Add typing bits to a parameter ID value. */
00171 #define MAKE_PARAM_ID(val, param_type) ( val | param_type )
00172 
00173 #endif
00174 
00181 typedef enum {
00182     DS_E_NOERROR = 0,
00185     DS_E_NOSPACE = 1,
00188     DS_E_BADPARAM = 2,
00191     DS_E_NOTFOUND = 3,
00194     DS_E_NOMEMORY = 4,
00197     DS_E_NOTIMPLEMENTED = 5,
00200     DS_E_BADATTRTYPE = 6,
00203     DS_E_BADATTRVALUE = 7,
00206     DS_E_BADATTRSYNTAX = 8,
00209     DS_E_BADFILTER = 9,
00212     DS_E_BADDN = 10,
00215     DS_E_BADENTRY = 11,
00218     DS_E_DSOPFAILED = 12,
00221     DS_E_INTERNAL = 13,
00224     DS_E_NOTBOUND = 14,
00227     DS_E_BADADDR = 15,
00230     DS_E_SIGNEDOPFAILED = 16,
00233     DS_E_OPFAILED = 17,
00236     DS_E_ABORTED = 18
00239 } DS_Status;
00240 
00248 typedef enum {
00249     DS_E_SUCCESS = 0,
00250     /*< Successful operation. */
00251     
00252     DS_E_ATTRIBUTE = 1,
00255     DS_E_NAME = 2,
00258     DS_E_SERVICE = 3,
00261     DS_E_REFERRAL = 4,
00264     DS_E_ABANDONED = 5,
00267     DS_E_SECURITY = 6,
00270     DS_E_ABANDONFAILED = 7,
00273     DS_E_UPDATE = 8,
00276     DS_E_DSAREFERRAL = 9,
00279     DS_E_LOCAL = 10,
00282     DS_E_REMOTE = 11,
00285     DS_E_UNKNOWN = 12,
00288     DS_E_X509 = 13
00291 } DS_ErrorType;
00292 
00300 typedef enum {
00301     DS_E_NOINFO = 0,
00304     DS_E_AT_NOSUCHATTRIBUTE = 1,
00307     DS_E_AT_INVALIDATTRIBUTESYNTAX = 2,
00310     DS_E_AT_UNDEFINEDATTRIBUTETYPE = 3,
00313     DS_E_AT_INAPPROPRIATEMATCHING = 4,
00316     DS_E_AT_CONSTRAINTVIOLATION = 5,
00319     DS_E_AT_TYPEORVALUEEXISTS = 6,
00322     DS_E_NAME_NOSUCHOBJECT = 7,
00325     DS_E_NAME_ALIASPROBLEM = 8,
00328     DS_E_NAME_INVALIDATTRIBUTESYNTAX = 9,
00331     DS_E_NAME_ALIASDEREFERENCE = 10,
00334     DS_E_SVC_BUSY = 11,
00337     DS_E_SVC_UNAVAILABLE = 12,
00340     DS_E_SVC_UNWILLINGTOPERFORM = 13,
00343     DS_E_SVC_CHAININGREQUIRED = 14,
00346     DS_E_SVC_UNABLETOPROCEED = 15,
00349     DS_E_SVC_INVALIDREFERENCE = 16,
00352     DS_E_SVC_TIMELIMITEXCEEDED = 17,
00355     DS_E_SVC_ADMINISTRATIVELIMITEXCEEDED = 18,
00358     DS_E_SVC_LOOPDETECTED = 19,
00361     DS_E_SVC_UNAVAILABLECRITICALEXTENSION = 20,
00364     DS_E_SVC_OUTOFSCOPE = 21,
00367     DS_E_SVC_DITERROR = 22,
00370     DS_E_SVC_INVALIDQUERYREFERENCE = 23,
00373     DS_E_SEC_AUTHENTICATION = 24,
00376     DS_E_SEC_INVALIDCREDENTIALS = 25,
00379     DS_E_SEC_ACCESSRIGHTS = 26,
00382     DS_E_SEC_INVALIDSIGNATURE = 27,
00385     DS_E_SEC_PROTECTIONREQUIRED = 28,
00388     DS_E_SEC_NOINFORMATION = 29,
00391     DS_E_AB_NOSUCHOPERATION = 43,
00394     DS_E_AB_TOOLATE = 44,
00397     DS_E_AB_CANNOTABANDON = 45,
00400     DS_E_UPD_NAMINGVIOLATION = 46,
00403     DS_E_UPD_OBJECTCLASSVIOLATION = 47,
00406     DS_E_UPD_NOTONNONLEAF = 48,
00409     DS_E_UPD_NOTONRDN = 49,
00412     DS_E_UPD_ALREADYEXISTS = 50,
00415     DS_E_UPD_AFFECTSMULTIPLEDSAS = 51,
00418     DS_E_UPD_NOOBJECTCLASSMODS = 52,
00421     DS_E_X509_RESULTSDISCARDED = 53
00423 } DS_ErrorValue;
00424 
00436 #define DS_SVC_OPT_PREFERCHAIN  MAKE_PARAM_ID(1, DS_BOOL_TYPE)
00437 
00438 #define DS_SVC_OPT_CHAININGPROHIBIT     MAKE_PARAM_ID(2, DS_BOOL_TYPE)
00439 
00441 #define DS_SVC_OPT_LOCALSCOPE           MAKE_PARAM_ID(3, DS_BOOL_TYPE)
00442 
00444 #define DS_SVC_OPT_DONTUSECOPY  MAKE_PARAM_ID(4, DS_BOOL_TYPE)
00445 
00447 #define DS_SVC_OPT_DONTDEREFALIAS       MAKE_PARAM_ID(5, DS_BOOL_TYPE)
00448 
00450 #define DS_SVC_OPT_SUBENTRIES           MAKE_PARAM_ID(6, DS_BOOL_TYPE)
00451 
00453 #define DS_SVC_OPT_COPYSHALLDO  MAKE_PARAM_ID(7, DS_BOOL_TYPE)
00454 
00458 #define DS_SVC_PRIORITY                 MAKE_PARAM_ID(8, DS_INT_TYPE)
00459 
00461 #define DS_SVC_TIMELIMIT                MAKE_PARAM_ID(9, DS_INT_TYPE)
00462 
00464 #define DS_SVC_SIZELIMIT                MAKE_PARAM_ID(10, DS_INT_TYPE)
00465 
00467 #define DS_EXT_OPT_MANAGEDSAIT          MAKE_PARAM_ID(11, DS_BOOL_TYPE)
00468 
00470 #define DS_SEC_SIGNED                   MAKE_PARAM_ID(12, DS_BOOL_TYPE)
00471 
00474 #define DS_SEC_ENCRYPTED                MAKE_PARAM_ID(13, DS_BOOL_TYPE)
00475 
00477 #define DS_SVC_OPT_ATTRSONLY            MAKE_PARAM_ID(14, DS_BOOL_TYPE)
00478 
00482 #define DS_SVC_OPT_SEARCHALIASES        MAKE_PARAM_ID(15, DS_BOOL_TYPE)
00483 
00487 #define DS_EXT_OPT_USEALIASONUPDATE     MAKE_PARAM_ID(16, DS_BOOL_TYPE)
00488 
00492 #define DS_SVC_PASSWORDPOLICY           MAKE_PARAM_ID(17, DS_BOOL_TYPE)
00493 
00505 typedef enum {
00506     DS_PP_PASSWORD_EXPIRED = 0,
00509     DS_PP_ACCOUNT_LOCKED = 1,
00512     DS_PP_CHANGE_AFTER_RESET = 2,
00515     DS_PP_PASSWORD_MOD_NOT_ALLOWED = 3,
00518     DS_PP_MUST_SUPPLY_OLD_PASSWORD = 4,
00522     DS_PP_INSUFFICIENT_PASSWORD_QUALITY = 5,
00525     DS_PP_PASSWORD_TOO_SHORT = 6,
00528     DS_PP_PASSWORD_TOO_YOUNG = 7,
00531     DS_PP_PASSWORD_IN_HISTORY = 8,
00534     DS_PP_NO_ERROR = 65535
00537 } DS_PasswordPolicyError;
00538 
00541 #endif /* ISODE_DSAPI_ATTR_H */
Copyright © 2008 Isode privacy   feedback Subscribe to our rss newsfeed