Annotation of 43BSDReno/contrib/isode-beta/h/quipu/dsap.h, revision 1.1

1.1     ! root        1: /* dsap.h - include file for directory service users (DS-USER) */
        !             2: 
        !             3: /* 
        !             4:  * $Header: /f/osi/h/quipu/RCS/dsap.h,v 7.0 90/07/27 05:02:55 mrose Exp $
        !             5:  *
        !             6:  *
        !             7:  * $Log:       dsap.h,v $
        !             8:  * Revision 7.0  90/07/27  05:02:55  mrose
        !             9:  * *** empty log message ***
        !            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        _DSAP_
        !            25: #define        _DSAP_
        !            26: 
        !            27: #ifndef        _MANIFEST_
        !            28: #include "manifest.h"
        !            29: #endif
        !            30: #ifndef        _GENERAL_
        !            31: #include "general.h"
        !            32: #endif
        !            33: 
        !            34: #ifndef        _RoSAP_
        !            35: #include "rosap.h"             /* definitions for ROSE-USERs */
        !            36: #endif
        !            37: 
        !            38: #ifndef        _RoNot_
        !            39: #include "ronot.h"             /* definitions for RoBIND-USERs */
        !            40: #endif
        !            41: 
        !            42: #include "quipu/common.h"
        !            43: #include "quipu/dsargument.h"
        !            44: 
        !            45: /*  */
        !            46: 
        !            47: /* An additional value for "asyn" parameters for interruptibility */
        !            48: #define ROS_INTR       -1
        !            49: 
        !            50: /*  */
        !            51: 
        !            52: /* Values used to convey response type throughout DSAP library */
        !            53: #define DS_RESULT      1
        !            54: #define DS_ERROR       2
        !            55: #define DS_REJECT      3
        !            56: 
        !            57: /*  */
        !            58: 
        !            59: struct DSAPstart {             /* D-BIND.INDICATION */
        !            60:     int            ds_sd;              /* association descriptor */
        !            61: 
        !            62:     int            ds_ctx;             /* Directory protocol type */
        !            63: #define DS_CTX_X500_DAP        1
        !            64: #define DS_CTX_X500_DSP        2
        !            65: #define DS_CTX_QUIPU_DSP 3     /* Quipu has its own DSP context */
        !            66: 
        !            67:     int     ds_pctx_id;                /* Context identifier of directory AS */
        !            68: 
        !            69:     struct AcSAPstart ds_start;        /* info from A-CONNECT.INDICATION */
        !            70: 
        !            71:     struct ds_bind_arg ds_bind_arg; /* Decoded bind argument */
        !            72: };
        !            73: #define        DSFREE(ds) { \
        !            74:     ACSFREE (&(ds) -> ds_start); \
        !            75:     bind_arg_free (&(ds) -> ds_bind_arg); \
        !            76: }
        !            77: 
        !            78: 
        !            79: struct DSAPconnect {
        !            80:     int            dc_sd;              /* association descriptor */
        !            81: 
        !            82:     int            dc_ctx;             /* Directory protocol type */
        !            83: 
        !            84:     int     ds_pctx_id;                /* Context identifier of directory AS */
        !            85: 
        !            86:     struct AcSAPconnect dc_connect;/* info from A-CONNECT.CONFIRMATION */
        !            87: 
        !            88:     int            dc_result;          /* result */
        !            89:                                /* Uses general DS response type definitiions */
        !            90: 
        !            91:     union {
        !            92:        struct ds_bind_arg        dc_bind_res;
        !            93:        struct ds_bind_error      dc_bind_err;
        !            94:     } dc_un;
        !            95: };
        !            96: #define        DCFREE(dc) { \
        !            97:     ACCFREE (&(dc) -> dc_connect); \
        !            98:     switch ((dc) -> dc_result) { \
        !            99:        case DS_RESULT: \
        !           100:            bind_arg_free (&(dc) -> dc_un.dc_bind_res); \
        !           101:            break; \
        !           102:        case DS_ERROR: \
        !           103:            break; \
        !           104:        default: \
        !           105:            break; \
        !           106:     } \
        !           107: }
        !           108: 
        !           109: struct DSAPrelease {           /* D-UNBIND.CONFIRMATION */
        !           110:     int            dr_affirmative;     /* T   = connection released
        !           111:                                   NIL = request refused */
        !           112:     
        !           113:     int            dr_reason;          /* reason for result */
        !           114:                                /* Takes values from acr_reason */
        !           115: };
        !           116: 
        !           117: struct DSAPabort {             /* D-ABORT.INDICATION */
        !           118:     int            da_source;          /* abort source */
        !           119: #define        DA_USER         0       /*   directory-user */
        !           120: #define        DA_PROVIDER     1       /*   directory-provider */
        !           121: #define        DA_LOCAL        2       /*   local DPM */
        !           122: 
        !           123:     int            da_reason;          /* reason for failure */
        !           124: #define DA_NO_REASON   0       /* Ain't no reason to some things */
        !           125: #define DA_RO_BIND     1       /* Error from RO BIND routine called */
        !           126: #define DA_ROS         2       /* Error from ROS routine called */
        !           127: #define DA_ARG_ENC     3       /* Error encoding argument */
        !           128: #define DA_RES_ENC     4       /* Error encoding result */
        !           129: #define DA_ERR_ENC     5       /* Error encoding error */
        !           130: #define DA_ARG_DEC     6       /* Error decoding argument */
        !           131: #define DA_RES_DEC     7       /* Error decoding result */
        !           132: #define DA_ERR_DEC     8       /* Error decoding error */
        !           133: #define DA_APP_CONTEXT 9       /* Unexpected application context */
        !           134: #define DA_PCDL                10      /* Unacceptable presentation context list */
        !           135: 
        !           136:                                /* diagnostics from provider */
        !           137: #define        DA_SIZE 512
        !           138:     int            da_cc;              /*   length */
        !           139:     char    da_data[DA_SIZE];  /*   data */
        !           140: };
        !           141: 
        !           142: struct DSAPinvoke {
        !           143:     int                          dx_id;        /* Operation identifier */
        !           144:     struct ds_op_arg     dx_arg;       /* Decoded argument */
        !           145: };
        !           146: #define DXFREE(dx) \
        !           147:     op_ch_arg_free (dx->dx_arg)
        !           148: 
        !           149: struct DSAPresult {
        !           150:     int                          dr_id;
        !           151:     struct ds_op_res     dr_res;       /* Decoded argument */
        !           152: };
        !           153: #define DRFREE(dr) \
        !           154:     op_res_free (dr->dr_res)
        !           155: 
        !           156: struct DSAPerror {
        !           157:     int                          de_id;
        !           158:     struct DSError       de_err;       /* Decoded error */
        !           159: };
        !           160: #define DEFREE(de) \
        !           161:     op_res_free (de->de_err)
        !           162: 
        !           163: struct DSAPpreject {
        !           164:     int          dp_id;        /* Operation id or -1 */
        !           165: 
        !           166:     int            dp_source;          /* same values as DSAPabort.da_source */
        !           167: 
        !           168:     int            dp_reason;          /* reason for failure */
        !           169: #define DP_NO_REASON   0       /* Ain't no reason to some things */
        !           170: #define DP_ROS         1       /* ROSE error */
        !           171: #define DP_INVOKE      2       /* Failure during invocation */
        !           172: #define DP_RESULT      3       /* Failure during result */
        !           173: #define DP_ERROR       4       /* Failure during error */
        !           174: 
        !           175:                                /* diagnostics from provider */
        !           176: #define        DP_SIZE 512
        !           177:     int            dp_cc;              /*   length */
        !           178:     char    dp_data[DP_SIZE];  /*   data */
        !           179: };
        !           180: 
        !           181: struct DSAPfinish {
        !           182:     int          df_reason;    /* Reason for unbinding */
        !           183: };
        !           184: #define DFFREE(df)
        !           185: 
        !           186: struct DSAPindication {
        !           187:     int            di_type;
        !           188: #define DI_INVOKE      1       /* DAP operation invocation received */
        !           189: #define DI_RESULT      2       /* DAP operation result received */
        !           190: #define DI_ERROR       3       /* DAP operation error received */
        !           191: #define DI_PREJECT     4       /* DAP operation rejected */
        !           192: #define        DI_FINISH       5       /* DAP UnBind received */
        !           193: #define        DI_ABORT        6       /* DAP association lost */
        !           194:     union {
        !           195:        struct DSAPinvoke       di_un_invoke;
        !           196:        struct DSAPresult       di_un_result;
        !           197:        struct DSAPerror        di_un_error;
        !           198:        struct DSAPpreject      di_un_preject;
        !           199:        struct DSAPfinish       di_un_finish;
        !           200:        struct DSAPabort        di_un_abort;
        !           201:     } di_un;
        !           202: #define di_invoke di_un.di_un_invoke
        !           203: #define di_result di_un.di_un_result
        !           204: #define di_error di_un.di_un_error
        !           205: #define di_preject di_un.di_un_preject
        !           206: #define di_finish di_un.di_un_finish
        !           207: #define di_abort di_un.di_un_abort
        !           208: };
        !           209: 
        !           210: 
        !           211: #ifndef        lint
        !           212: #ifndef        __STDC__
        !           213: #define        copyDSAPdata(base,len,d) \
        !           214: { \
        !           215:     register int i = len; \
        !           216:     if ((d -> d/* */_cc = min (i, sizeof d -> d/* */_data)) > 0) \
        !           217:        bcopy (base, d -> d/* */_data, d -> d/* */_cc); \
        !           218: }
        !           219: #else
        !           220: #define        copyDSAPdata(base,len,d) \
        !           221: { \
        !           222:     register int i = len; \
        !           223:     if ((d -> d##_cc = min (i, sizeof d -> d##_data)) > 0) \
        !           224:        bcopy (base, d -> d##_data, d -> d##_cc); \
        !           225: }
        !           226: #endif
        !           227: #else
        !           228: #define        copyDSAPdata(base,len,d)        bcopy (base, (char *) d, len)
        !           229: #endif
        !           230: 
        !           231: /*  */
        !           232: 
        !           233: extern char *dsapversion;
        !           234: 
        !           235: 
        !           236: int    DBindInit ();           /* D-BIND.INDICATION */
        !           237: 
        !           238: int    DAsynBindRequest ();    /* D-BIND.REQUEST (ARGUMENT) */
        !           239: int    DAsynBindRetry();       /* D-BIND-RETRY.REQUEST */
        !           240: 
        !           241: int    DBindResult ();         /* D-BIND.RESPONSE (RESULT) */
        !           242: int    DBindError ();          /* D-BIND.RESPONSE (ERROR) */
        !           243: int    DBindReject ();         /* D-BIND.RESPONSE (REJECT) */
        !           244: 
        !           245: int    DUnBindRequest ();      /* D-UNBIND.REQUEST */
        !           246: int    DUnBindRetry ();        /* D-BIND-RETRY.REQUEST (pseudo) */
        !           247: int    DUnBindResponse ();     /* D-BIND.RESPONSE (RESULT) */
        !           248: int    DUnBindReject ();       /* D-BIND.RESPONSE (REJECT) */
        !           249: 
        !           250: char   *DErrString ();         /* return DSAP error code in string form */
        !           251: 
        !           252: #endif

unix.superglobalmegacorp.com

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