Annotation of 43BSDReno/contrib/isode-beta/tsap/tsapmisc.c, revision 1.1.1.1

1.1       root        1: /* tsapmisc.c - miscellany tsap functions */
                      2: 
                      3: #ifndef        lint
                      4: static char *rcsid = "$Header: /f/osi/tsap/RCS/tsapmisc.c,v 7.2 90/03/23 17:31:47 mrose Exp $";
                      5: #endif
                      6: 
                      7: /* 
                      8:  * $Header: /f/osi/tsap/RCS/tsapmisc.c,v 7.2 90/03/23 17:31:47 mrose Exp $
                      9:  *
                     10:  *
                     11:  * $Log:       tsapmisc.c,v $
                     12:  * Revision 7.2  90/03/23  17:31:47  mrose
                     13:  * 8
                     14:  * 
                     15:  * Revision 7.1  90/03/06  09:34:18  mrose
                     16:  * update
                     17:  * 
                     18:  * Revision 7.0  89/11/23  22:30:54  mrose
                     19:  * Release 6.0
                     20:  * 
                     21:  */
                     22: 
                     23: /*
                     24:  *                               NOTICE
                     25:  *
                     26:  *    Acquisition, use, and distribution of this module and related
                     27:  *    materials are subject to the restrictions of a license agreement.
                     28:  *    Consult the Preface in the User's Manual for the full terms of
                     29:  *    this agreement.
                     30:  *
                     31:  */
                     32: 
                     33: 
                     34: /* LINTLIBRARY */
                     35: 
                     36: #include <stdio.h>
                     37: #include <signal.h>
                     38: #include "tpkt.h"
                     39: #include <sys/ioctl.h>
                     40: 
                     41: /*    estimate of octets that might be returned */
                     42: 
                     43: int    TSelectOctets (sd, nbytes, td)
                     44: int    sd;
                     45: long   *nbytes;
                     46: register struct TSAPdisconnect *td;
                     47: {
                     48:     int            result;
                     49:     long    value;
                     50:     SBV            smask;
                     51:     register struct tsapblk *tb;
                     52: 
                     53:     missingP (nbytes);
                     54:     missingP (td);
                     55: 
                     56:     smask = sigioblock ();
                     57: 
                     58:     tsapPsig (tb, sd);
                     59: 
                     60:     result = OK;
                     61:     if (tb -> tb_nreadfnx) {
                     62:        if ((result = (*tb -> tb_nreadfnx) (tb, &value)) == NOTOK)
                     63:            value = 0L;
                     64:     }
                     65:     else {
                     66: #ifdef FIONREAD
                     67:        if (ioctl (tb -> tb_fd, FIONREAD, (char *) &value) == NOTOK)
                     68:            value = 0L;
                     69: #endif
                     70: 
                     71:        switch (tb -> tb_flags & (TB_TP0 | TB_TP4)) {
                     72:            case TB_TCP:
                     73:            case TB_X25:
                     74:            case TB_BRG:
                     75:                if (value > DT_MAGIC && tb -> tb_len == 0)
                     76:                    value -= DT_MAGIC;
                     77:                break;
                     78: 
                     79:            default:
                     80:                break;
                     81:        }
                     82:     }
                     83: 
                     84:     if (result == OK)
                     85:        value += (long) tb -> tb_len;
                     86:     *nbytes = value;
                     87: 
                     88:     (void) sigiomask (smask);
                     89: 
                     90:     return result;
                     91: }
                     92: 
                     93: /*    get TSAPs */
                     94: 
                     95: int    TGetAddresses (sd, initiating, responding, td)
                     96: int    sd;
                     97: struct TSAPaddr *initiating,
                     98:                *responding;
                     99: register struct TSAPdisconnect *td;
                    100: {
                    101:     SBV            smask;
                    102:     register struct tsapblk *tb;
                    103: 
                    104:     missingP (td);
                    105: 
                    106:     smask = sigioblock ();
                    107: 
                    108:     tsapPsig (tb, sd);
                    109: 
                    110:     if (initiating)
                    111:        copyTSAPaddrX (&tb -> tb_initiating, initiating);
                    112:     if (responding)
                    113:        copyTSAPaddrX (&tb -> tb_responding, responding);
                    114: 
                    115:     (void) sigiomask (smask);
                    116: 
                    117:     return OK;
                    118: }
                    119: 
                    120: /*    define transport manager */
                    121: 
                    122: #ifdef MGMT
                    123: int    TSetManager (sd, fnx, td)
                    124: int    sd;
                    125: IFP    fnx;
                    126: register struct TSAPdisconnect *td;
                    127: {
                    128:     SBV            smask;
                    129:     register struct tsapblk *tb;
                    130: 
                    131:     missingP (td);
                    132: 
                    133:     smask = sigioblock ();
                    134: 
                    135:     tsapPsig (tb, sd);
                    136: 
                    137:     tb -> tb_manfnx = fnx;
                    138: 
                    139:     (void) sigiomask (smask);
                    140: 
                    141:     return OK;
                    142: }
                    143: #endif

unix.superglobalmegacorp.com

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