|
|
1.1 root 1: #include "sys/types.h"
2: #include "sys/stat.h"
3: extern int errno;
4: extern char *malloc();
5:
6: int dbgfd; /* for debugging output, shared with children */
7: int cntlfd; /* fd for new service requests */
8: int ackfd; /* for responding to network */
9: fd_set active; /* bit map of active channels for select */
10: int myfd; /* sole argument to children */
11: int silent; /* debugging level */
12: #define NORMAN 60
13: struct {
14: int pid; /* pid of child, if it exists */
15: int fd; /* fd of channel to client (duplicates index) */
16: int flags; /* status */
17: int dtime; /* time difference */
18: int dev; /* client's idea of the root */
19: long lastheard; /* for time outs */
20: char *who; /* client's name, for trapping loops */
21: int host; /* correlates with permissions table */
22: int silent;
23: } children[NORMAN]; /* one-one with fd's */
24: #define CONN 1
25: #define SPLIT 2
26: #define UNINIT 3
27:
28: #define NDEV 10
29: extern struct tdev {
30: int ours, his;
31: } devtab[NDEV];
32: extern int ndev;
33:
34: typedef struct aa {
35: long tag;
36: int dev; /* his dev */
37: int ino;
38: char *name; /* some name */
39: struct stat statb; /* cached */
40: short fd; /* the precious handle */
41: char how; /* how opened */
42: } netf;
43:
44: extern netf *getnetf(), *gettag(), *newnetf(), *oldnetf();
45: #define ftype(p) (p->statb.st_mode & S_IFMT)
46: /* 1 for cmnd outline, 2 for cmnd detail, 4 for permissions */
47: #define debug1 if(silent & 1) xdebug
48: #define debug2 if(silent & 2) xdebug
49: #define debug3 if(silent & 3) xdebug
50: #define debug4 if(silent & 4) xdebug
51: #define NDBG 200
52: int dptr;
53: char debugbuf[NDBG][128];
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.