Annotation of xinu/sys/rfsend.c, revision 1.1.1.1

1.1       root        1: /* rfsend.c - rfsend */
                      2: 
                      3: #include <conf.h>
                      4: #include <kernel.h>
                      5: #include <network.h>
                      6: 
                      7: /*------------------------------------------------------------------------
                      8:  *  rfsend  --  send message to remote server and await reply
                      9:  *------------------------------------------------------------------------
                     10:  */
                     11: rfsend(fptr, reqlen, rplylen)
                     12: struct fphdr   *fptr;
                     13: int    reqlen;
                     14: int    rplylen;
                     15: {
                     16:        int     trys;
                     17:        int     ret;
                     18:        PStype  ps;
                     19: 
                     20:        /* Clear server queue, and send packet to it */
                     21: 
                     22:        if (Rf.device == RCLOSED) {
                     23:                Rf.device = open(INTERNET, RSERVER, ANYLPORT);
                     24:                if (Rf.device == SYSERR ||
                     25:                    control(Rf.device, DG_SETMODE, DG_DMODE|DG_TMODE)
                     26:                    == SYSERR)
                     27:                        return(SYSERR);
                     28:        }
                     29:        disable(ps);
                     30:        control(Rf.device, DG_CLEAR);
                     31:        for (trys=0 ; trys<RMAXTRY ; trys++) {
                     32:                if ( write(Rf.device, fptr, reqlen)
                     33:                        == SYSERR) {
                     34:                        restore(ps);
                     35:                        return(SYSERR);
                     36:                }
                     37:                if ( (ret=read(Rf.device, fptr, rplylen) )
                     38:                    !=SYSERR && ret != TIMEOUT) {
                     39:                        restore(ps);
                     40:                        return(ret);
                     41:                }
                     42:        }
                     43:        restore(ps);
                     44:        return(SYSERR);
                     45: }

unix.superglobalmegacorp.com

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