File: aliasbr.h

package info (click to toggle)
mmh 0.4-4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye
  • size: 4,976 kB
  • sloc: ansic: 26,132; sh: 6,871; makefile: 680; awk: 74
file content (49 lines) | stat: -rw-r--r-- 1,574 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/*
** aliasbr.h -- definitions for the aliasing system
*/

struct aka {
	char *ak_name;          /* name to match against             */
	struct adr *ak_addr;    /* list of addresses that it maps to */
	struct aka *ak_next;    /* next aka in list                  */
	char ak_visible;        /* should be visible in headers      */
};

struct adr {
	char *ad_text;          /* text of this address in list        */
	struct adr *ad_next;    /* next adr in list                    */
	char ad_local;          /* text is local (check for expansion) */
};

/*
** incore version of /etc/passwd
*/
struct home {
	char *h_name;           /* user name                             */
	uid_t h_uid;            /* user id                               */
	gid_t h_gid;            /* user's group                          */
	char *h_home;           /* user's home directory                 */
	char *h_shell;          /* user's shell                          */
	int h_ngrps;            /* number of groups this user belongs to */
	struct home *h_next;    /* next home in list                     */
};

struct home *seek_home(char *);

/*
** prototypes
*/
int alias(char *);
int akvisible(void);
void init_pw(void);
char *akresult(struct aka *);
char *akvalue(char *);
char *akerror(int);

/* codes returned by alias() */

#define AK_OK       0   /* file parsed ok        */
#define AK_NOFILE   1   /* couldn't read file    */
#define AK_ERROR    2   /* error parsing file    */
#define AK_LIMIT    3   /* memory limit exceeded */
#define AK_NOGROUP  4   /* no such group         */