|
|
1.1 root 1: /*LINTLIBRARY*/
2:
3: /*
4: ** Reads, modifies, and writes the record in the ``shares'' file
5: ** whose uid matches "lp->l_uid".
6: **
7: ** The function indicated by the "func" argument is called with the address
8: ** of the original structure, and the address of the structure to be updated.
9: **
10: ** Returns value returned by passed function for success and 0 for error
11: ** But note, that if the function returns 0 itself, then the ``shares'' file
12: ** will not be updated.
13: **
14: ** Otherwise, the value returned by the function is used to update the
15: ** ``extime'' field in the shares record.
16: */
17:
18: #include <sys/types.h>
19: #include <sys/lnode.h>
20: #include <shares.h>
21:
22:
23: unsigned long
24: getshput(lp, func)
25: struct lnode * lp;
26: unsigned long (*func)();
27: {
28: unsigned long ri;
29: struct lnode p;
30:
31: (void)getshares(&p, lp->l_uid, 1);
32:
33: if ( (ri = (*func)(lp, &p)) != 0 )
34: if ( putshares(&p, ri) <= 0 )
35: return 0;
36:
37: return ri;
38: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.