|
|
1.1 ! root 1: /* ds_error.h - directory service errors */ ! 2: ! 3: /* ! 4: * $Header: /f/osi/h/quipu/RCS/ds_error.h,v 7.0 89/11/23 21:56:30 mrose Rel $ ! 5: * ! 6: * ! 7: * $Log: ds_error.h,v $ ! 8: * Revision 7.0 89/11/23 21:56:30 mrose ! 9: * Release 6.0 ! 10: * ! 11: */ ! 12: ! 13: /* ! 14: * NOTICE ! 15: * ! 16: * Acquisition, use, and distribution of this module and related ! 17: * materials are subject to the restrictions of a license agreement. ! 18: * Consult the Preface in the User's Manual for the full terms of ! 19: * this agreement. ! 20: * ! 21: */ ! 22: ! 23: ! 24: #ifndef DSERRORH ! 25: #define DSERRORH ! 26: ! 27: #include "quipu/dsp.h" ! 28: ! 29: struct DSE_abandon_fail { ! 30: int DSE_ab_problem; ! 31: #define DSE_AB_NOSUCHOPERATION 1 ! 32: #define DSE_AB_TOOLATE 2 ! 33: #define DSE_AB_CANNOTABANDON 3 ! 34: int DSE_ab_invokeid; ! 35: }; ! 36: ! 37: struct DSE_at_problem { ! 38: int DSE_at_what; ! 39: #define DSE_AT_NOSUCHATTRIBUTE 1 ! 40: #define DSE_AT_INVALIDATTRIBUTESYNTAX 2 ! 41: #define DSE_AT_UNDEFINEDATTRIBUTETYPE 3 ! 42: #define DSE_AT_INAPPROPRIATEMATCHING 4 ! 43: #define DSE_AT_CONSTRAINTVIOLATION 5 ! 44: #define DSE_AT_TYPEORVALUEEXISTS 6 ! 45: AttributeType DSE_at_type; ! 46: AttributeValue DSE_at_value; ! 47: struct DSE_at_problem *dse_at_next; ! 48: }; ! 49: #define DSE_AT_NOPROBLEM ((struct DSE_at_problem*)0) ! 50: ! 51: struct DSE_attribute { ! 52: DN DSE_at_name; ! 53: struct DSE_at_problem DSE_at_plist; ! 54: } ; ! 55: ! 56: ! 57: struct DSE_name { ! 58: int DSE_na_problem; ! 59: #define DSE_NA_NOSUCHOBJECT 1 ! 60: #define DSE_NA_ALIASPROBLEM 2 ! 61: #define DSE_NA_INVALIDATTRIBUTESYNTAX 3 ! 62: #define DSE_NA_ALIASDEREFERENCE 4 ! 63: DN DSE_na_matched; ! 64: }; ! 65: ! 66: ! 67: struct DSE_referral { ! 68: ContinuationRef DSE_ref_candidates; ! 69: DN DSE_ref_prefix; ! 70: /* Context prefix only in DSP */ ! 71: }; ! 72: ! 73: struct DSE_security { ! 74: int DSE_sc_problem; ! 75: #define DSE_SC_AUTHENTICATION 1 ! 76: #define DSE_SC_INVALIDCREDENTIALS 2 ! 77: #define DSE_SC_ACCESSRIGHTS 3 ! 78: #define DSE_SC_INVALIDSIGNATURE 4 ! 79: #define DSE_SC_PROTECTIONREQUIRED 5 ! 80: #define DSE_SC_NOINFORMATION 6 ! 81: }; ! 82: ! 83: struct DSE_service { ! 84: int DSE_sv_problem; ! 85: #define DSE_SV_BUSY 1 ! 86: #define DSE_SV_UNAVAILABLE 2 ! 87: #define DSE_SV_UNWILLINGTOPERFORM 3 ! 88: #define DSE_SV_CHAININGREQUIRED 4 ! 89: #define DSE_SV_UNABLETOPROCEED 5 ! 90: #define DSE_SV_INVALIDREFERENCE 6 /* DSP ONLY */ ! 91: #define DSE_SV_TIMELIMITEXCEEDED 7 ! 92: #define DSE_SV_ADMINLIMITEXCEEDED 8 ! 93: #define DSE_SV_LOOPDETECT 9 ! 94: #define DSE_SV_UNAVAILABLECRITICALEXTENSION 10 ! 95: #define DSE_SV_OUTOFSCOPE 11 ! 96: #define DSE_SV_DITERROR 12 ! 97: }; ! 98: ! 99: struct DSE_update { ! 100: int DSE_up_problem; ! 101: #define DSE_UP_NAMINGVIOLATION 1 ! 102: #define DSE_UP_OBJECTCLASSVIOLATION 2 ! 103: #define DSE_UP_NOTONNONLEAF 3 ! 104: #define DSE_UP_NOTONRDN 4 ! 105: #define DSE_UP_ALREADYEXISTS 5 ! 106: #define DSE_UP_AFFECTSMULTIPLEDSAS 6 ! 107: #define DSE_UP_NOOBJECTCLASSMODS 7 ! 108: }; ! 109: ! 110: struct DSError { ! 111: int dse_type; ! 112: #define DSE_INTR_ABANDON_FAILED -5 /* Call interrupted - abandon failed */ ! 113: #define DSE_INTR_ABANDONED -4 /* Call interrupted - abandoned */ ! 114: #define DSE_INTRERROR -3 /* Call interrupted */ ! 115: #define DSE_LOCALERROR -2 /* Error in DUA */ ! 116: #define DSE_REMOTEERROR -1 /* Problem with DSA */ ! 117: #define DSE_NOERROR 0 ! 118: #define DSE_ATTRIBUTEERROR 1 ! 119: #define DSE_NAMEERROR 2 ! 120: #define DSE_SERVICEERROR 3 ! 121: #define DSE_REFERRAL 4 ! 122: #define DSE_ABANDONED 5 ! 123: /* Abandoned does not have any parameter and */ ! 124: /* so there is no struct for this value */ ! 125: #define DSE_SECURITYERROR 6 ! 126: #define DSE_ABANDON_FAILED 7 ! 127: #define DSE_UPDATEERROR 8 ! 128: #define DSE_DSAREFERRAL 9 ! 129: #define ds_recog_err(a) ((a >= DSE_ATTRIBUTEERROR) && (a <= DSE_DSAREFERRAL)) ! 130: union { ! 131: struct DSE_attribute dse_un_attribute; ! 132: struct DSE_name dse_un_name; ! 133: struct DSE_service dse_un_service; ! 134: struct DSE_referral dse_un_referral; ! 135: struct DSE_security dse_un_security; ! 136: struct DSE_abandon_fail dse_un_abandon_fail; ! 137: struct DSE_update dse_un_update; ! 138: } dse_un; ! 139: }; ! 140: ! 141: ! 142: ! 143: /* THIS SECTION DEFINES THE PROCEDURE CALLS */ ! 144: ! 145: /* All of the DUA calls are SYNCHRONOUS, with no access to referrals */ ! 146: /* A DUA can access lower level hooks if if needs to be more clever */ ! 147: /* Each call has a single structure fore each direction, as defined */ ! 148: ! 149: /* ! 150: All routines return integer values with the following ! 151: possible values ! 152: */ ! 153: ! 154: #define DS_OK 0 /* Success */ ! 155: #define DS_ERROR_LOCAL -1 /* Error within the DUA module */ ! 156: ! 157: #define DS_ERROR_CONNECT -2 /* Failed to connect to a remote DSA */ ! 158: #define DS_ERROR_PROVIDER -3 /* Other OSI provider error */ ! 159: #define DS_X500_ERROR -4 /* Synonym for remote error */ ! 160: #define DS_ERROR_REMOTE -4 /* Remote error. Further details will */ ! 161: /* be in the error parameter */ ! 162: ! 163: #define DS_CONTINUE -5 /* operation not finished... continuing */ ! 164: #define DS_SUSPEND -6 /* operation has deliberately suspended */ ! 165: #define DS_ERROR_ABANDONED -7 /* RoIntr caused succesful ds_abandon */ ! 166: #define DS_ERROR_ABANDON_FAILED -8 /* RoIntr caused unsuccesful ds_abandon */ ! 167: ! 168: #define ERR_ABANDON_FAIL dse_un.dse_un_abandon_fail ! 169: #define ERR_ATTRIBUTE dse_un.dse_un_attribute ! 170: #define ERR_NAME dse_un.dse_un_name ! 171: #define ERR_REFERRAL dse_un.dse_un_referral ! 172: #define ERR_SECURITY dse_un.dse_un_security ! 173: #define ERR_SERVICE dse_un.dse_un_service ! 174: #define ERR_UPDATE dse_un.dse_un_update ! 175: #define ERR_ALIAS dse_un.dse_un_alias ! 176: ! 177: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.