|
|
1.1 root 1: #include <ipc.h>
2: #include <stdio.h>
3: #include <libc.h>
4: #include <regexp.h>
5:
6: /*
7: * table of user mappings
8: * one per line in the mapping files
9: */
10:
11: typedef struct mapping{
12: regexp *from; /* originating machine */
13: regexp *user; /* originating user */
14: regexp *serv; /* service(s) requested */
15: char *luser; /* local user name to use */
16: struct mapping *next;
17: } Mapping;
18: extern Mapping *newmap();
19: extern int freemap();
20: extern int addmap();
21:
22: /*
23: * action instances
24: * a linked list of these exist for each service
25: */
26:
27: typedef struct action {
28: int (*func)(); /* funciton to use for this action */
29: char *arg; /* arguments or NULL */
30: int accept; /* true if ipcaccept to be done by action */
31: struct action *next;
32: } Action;
33: extern Action *newaction();
34: extern int freeaction();
35:
36: /*
37: * table of services
38: * one per line in the file of services (hopefully)
39: */
40:
41: typedef struct service {
42: char *name; /* name of service (e.g. `uucp') */
43: int listen; /* fd for listening */
44: Action *ap; /* list of actions to perform */
45: int accept; /* true if ipcaccept to be done by the service */
46: long lasttime;
47: struct service *next;
48: } Service;
49: extern Service *newservice();
50: extern int freeservice();
51: extern int addservice();
52:
53: /*
54: * request returned by listen
55: */
56: typedef struct {
57: ipcinfo *i; /* from the ipclisten */
58: Service *s; /* service requested */
59: char *line; /* password line from authentication */
60: char *args; /* args gotten by from getargs */
61: char *term; /* terminal type */
62: int errfd; /* standard error (if different from stdout) */
63: } Request;
64: extern Request *newrequest();
65: extern int freerequest();
66:
67: extern regexp *nregcomp();
68: extern int logevent();
69:
70: #define ARB 150
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.