|
|
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.