Annotation of 43BSDReno/contrib/isode-beta/h/quipu/ds_error.h, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.