|
|
1.1 ! root 1: /*LINTLIBRARY*/ ! 2: ! 3: /* ! 4: ** Fill in details for lnode from ``shares'' record. ! 5: ** ! 6: ** Returns 0 for failure, or last active time of user. ! 7: */ ! 8: ! 9: #include <sys/types.h> ! 10: #include <sys/lnode.h> ! 11: #include <shares.h> ! 12: #include <libc.h> ! 13: ! 14: ! 15: unsigned long ! 16: getshares(lp, uid, lock) ! 17: register struct lnode * lp; ! 18: int uid; ! 19: int lock; ! 20: { ! 21: register long posn; ! 22: Share share; ! 23: ! 24: lp->l_uid = uid; ! 25: lp->l_flags = 0; ! 26: lp->l_shares = 0; ! 27: lp->l_group = 0; ! 28: lp->l_usage = 0; ! 29: lp->l_charge = 0; ! 30: ! 31: if ( uid > MAXUID ) ! 32: return 0; ! 33: ! 34: if ( !openshares(lock) ) ! 35: return 0; ! 36: ! 37: posn = sizeof(Share) * uid; ! 38: ! 39: if ( lseek(ShareFd, posn, 0) == SYSERROR ) ! 40: return 0; ! 41: ! 42: if ( read(ShareFd, &share, sizeof(Share)) != sizeof(Share) ) ! 43: return 0; ! 44: ! 45: if ( share.l.l_uid != uid ) ! 46: return 0; ! 47: ! 48: *lp = share.l; ! 49: ! 50: if ( share.extime == 0 ) ! 51: return 1; ! 52: ! 53: return share.extime; ! 54: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.