Annotation of 43BSDReno/contrib/isode-beta/quipu/conn_dispatch.c, revision 1.1.1.1

1.1       root        1: /* conn_dispatch.c - deal with an event on an open connection */
                      2: 
                      3: #ifndef lint
                      4: static char *rcsid = "$Header: /f/osi/quipu/RCS/conn_dispatch.c,v 7.0 89/11/23 22:16:44 mrose Rel $";
                      5: #endif
                      6: 
                      7: /*
                      8:  * $Header: /f/osi/quipu/RCS/conn_dispatch.c,v 7.0 89/11/23 22:16:44 mrose Rel $
                      9:  *
                     10:  *
                     11:  * $Log:       conn_dispatch.c,v $
                     12:  * Revision 7.0  89/11/23  22:16:44  mrose
                     13:  * Release 6.0
                     14:  * 
                     15:  */
                     16: 
                     17: /*
                     18:  *                                NOTICE
                     19:  *
                     20:  *    Acquisition, use, and distribution of this module and related
                     21:  *    materials are subject to the restrictions of a license agreement.
                     22:  *    Consult the Preface in the User's Manual for the full terms of
                     23:  *    this agreement.
                     24:  *
                     25:  */
                     26: 
                     27: 
                     28: #include "quipu/dsap.h"
                     29: #include "tsap.h"
                     30: #include "quipu/util.h"
                     31: #include "quipu/connection.h"
                     32: 
                     33: extern LLog * log_dsap;
                     34: 
                     35: /*
                     36: * Something has happened on the association with descriptor "ad".
                     37: * Check what type of activity it is and dispatch to an appropriate
                     38: * routine to handle the activity.
                     39: */
                     40: conn_dispatch(cn)
                     41: struct connection      * cn;
                     42: {
                     43:     int                                  result;
                     44:     struct DSAPindication      di_s;
                     45:     struct DSAPindication      *di = &di_s;
                     46:     struct DSAPabort         *da = &(di->di_abort);
                     47:     extern void ds_log();
                     48: 
                     49:     DLOG (log_dsap,LLOG_TRACE,( "conn_dispatch()"));
                     50: 
                     51:     watch_dog("DWaitRequest");
                     52:     result = DWaitRequest(cn->cn_ctx, cn->cn_ad, OK, di);
                     53:     watch_dog_reset();
                     54: 
                     55:     if (result == DONE)
                     56:     {
                     57:        /* TIMER expired */
                     58:        return;
                     59:     }
                     60: 
                     61:     if (result == NOTOK)
                     62:     {
                     63:         switch(di->di_type)
                     64:         {
                     65:        case DI_PREJECT:
                     66:            DLOG(log_dsap, LLOG_DEBUG, ("conn_dispatch calling oper_preject"));
                     67:            oper_preject(cn, &(di->di_preject));
                     68:            return;
                     69: 
                     70:        case DI_ABORT:
                     71:            ds_log(da, "DWaitRequest");
                     72:            DLOG(log_dsap, LLOG_DEBUG, ("conn_dispatch calling conn_extract"));
                     73:            do_ds_unbind (cn);
                     74:            conn_extract(cn);
                     75:            return;
                     76: 
                     77:        default:
                     78:            LLOG (log_dsap,LLOG_EXCEPTIONS,( "Unknown indication type : %d", di->di_type));
                     79:            return;
                     80:        }
                     81:     }
                     82: 
                     83:     switch(di->di_type)
                     84:     {
                     85:        case DI_INVOKE:
                     86:            if (task_invoke(cn, &(di->di_invoke)) != OK)
                     87:            {
                     88:                LLOG (log_dsap,LLOG_EXCEPTIONS,("task_invoke failed in conn_dispatch"));
                     89:            }
                     90:            break;
                     91: 
                     92:        case DI_RESULT:
                     93:            oper_result(cn, di);
                     94:            break;
                     95: 
                     96:        case DI_ERROR:
                     97:            oper_error(cn, di);
                     98:            break;
                     99: 
                    100:        case DI_FINISH:
                    101:            conn_finish(cn, &(di->di_finish));
                    102:            break;
                    103: 
                    104:        default:
                    105:            LLOG (log_dsap,LLOG_EXCEPTIONS,( "Unknown indication type : %d", di->di_type));
                    106:            break;
                    107:     }
                    108: }
                    109: 

unix.superglobalmegacorp.com

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