Annotation of xinu/sys/getutim.c, revision 1.1

1.1     ! root        1: /* getutim.c - getutim */
        !             2: 
        !             3: #include <conf.h>
        !             4: #include <kernel.h>
        !             5: #include <sleep.h>
        !             6: #include <date.h>
        !             7: #include <network.h>
        !             8: 
        !             9: /*------------------------------------------------------------------------
        !            10:  * getutim  --  obtain time in seconds past Jan 1, 1970, ut (gmt)
        !            11:  *------------------------------------------------------------------------
        !            12:  */
        !            13: SYSCALL        getutim(timvar)
        !            14: long   *timvar;
        !            15: {
        !            16:        int     dev;
        !            17:        int     len;
        !            18:        int     ret;
        !            19:        long    now;
        !            20:        long    utnow;
        !            21:        char    *msg = "No time server response";
        !            22: 
        !            23:        wait(clmutex);
        !            24:        ret = OK;
        !            25:        if (clktime < SECPERHR) {       /* assume small numbers invalid */
        !            26:                if ((dev=open(INTERNET, TSERVER, ANYLPORT)) == SYSERR ||
        !            27:                    control(dev,DG_SETMODE,DG_TMODE|DG_DMODE) == SYSERR) {
        !            28:                        panic(msg);
        !            29:                        ret = SYSERR;
        !            30:                }
        !            31:                write(dev, msg, 2);     /* send junk packet to prompt */
        !            32:                if (read(dev,&utnow,4) != 4) {
        !            33:                        panic(msg);
        !            34:                        ret = SYSERR;
        !            35:                } else
        !            36:                        clktime = net2xt( net2hl(utnow) );
        !            37:                close(dev);
        !            38:        }
        !            39:        *timvar = clktime;
        !            40:        signal(clmutex);
        !            41:        return(ret);
        !            42: }

unix.superglobalmegacorp.com

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