Annotation of researchv10no/ipc/mgrs/svcmgr/mgr.h, revision 1.1.1.1

1.1       root        1: #include <ipc.h>
                      2: #include <stdio.h>
                      3: #include <libc.h>
                      4: #include <regexp.h>
                      5: 
                      6: /*
                      7:  * table of regular expressions
                      8:  */
                      9: 
                     10: typedef struct cregexp {
                     11:        struct cregexp *next;
                     12:        char *re;               /* uncompiled reg exp */
                     13:        regexp *prog;           /* compiled reg exp */
                     14:        int ref;                /* reference count */
                     15: } Cregexp;
                     16: extern Cregexp *newre();
                     17: extern int freerep();
                     18: extern int execre();
                     19: 
                     20: /*
                     21:  * table of user mappings
                     22:  * one per line in the mapping files
                     23:  */
                     24: 
                     25: typedef struct mapping{
                     26:        Cregexp *from;  /* originating machine */
                     27:        Cregexp *user;  /* originating user */
                     28:        Cregexp *serv;  /* service(s) requested */
                     29:        char *luser;    /* local user name to use */
                     30:        struct mapping *next;
                     31: } Mapping;
                     32: extern Mapping *newmap();
                     33: extern int freemap();
                     34: extern int addmap();
                     35: 
                     36: /*
                     37:  * action instances
                     38:  * a linked list of these exist for each service
                     39:  */
                     40: 
                     41: typedef struct action {
                     42:        int (*func)();  /* funciton to use for this action */
                     43:        char *arg;      /* arguments or NULL */
                     44:        int accept;     /* true if ipcaccept to be done by action */
                     45:        struct action *next;
                     46: } Action;
                     47: extern Action *newaction();
                     48: extern int freeaction();
                     49: 
                     50: /*
                     51:  * table of services
                     52:  * one per line in the file of services (hopefully)
                     53:  */
                     54: 
                     55: typedef struct service {
                     56:        char *name;     /* name of service (e.g. `uucp') */
                     57:        Cregexp *from;  /* originating machine */
                     58:        int listen;     /* fd for listening */
                     59:        Action *ap;     /* list of actions to perform */
                     60:        int accept;     /* true if ipcaccept to be done by the service */
                     61:        long lasttime;
                     62:        struct service *same;
                     63:        struct service *next;
                     64: } Service;
                     65: extern Service *newservice();
                     66: extern int freeservice();
                     67: extern int addservice();
                     68: 
                     69: /*
                     70:  * request returned by listen
                     71:  */
                     72: typedef struct {
                     73:        ipcinfo *i;     /* from the ipclisten */
                     74:        Service *s;     /* service requested */
                     75:        char *line;     /* password line from authentication */
                     76:        char *args;     /* args gotten by from getargs */
                     77:        char *term;     /* terminal type */
                     78:        int errfd;      /* standard error (if different from stdout) */
                     79: } Request;
                     80: extern Request *newrequest();
                     81: extern int freerequest();
                     82: 
                     83: extern int logevent();
                     84: 
                     85: #define        ARB 512

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.