Annotation of xinu/sys/getutim.c, revision 1.1.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.