Annotation of embedaddon/sudo/plugins/sudoers/defaults.h, revision 1.1.1.5
1.1 misho 1: /*
1.1.1.4 misho 2: * Copyright (c) 1999-2005, 2008-2013
1.1 misho 3: * Todd C. Miller <Todd.Miller@courtesan.com>
4: *
5: * Permission to use, copy, modify, and distribute this software for any
6: * purpose with or without fee is hereby granted, provided that the above
7: * copyright notice and this permission notice appear in all copies.
8: *
9: * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10: * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11: * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12: * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13: * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14: * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15: * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16: *
17: * Sponsored in part by the Defense Advanced Research Projects
18: * Agency (DARPA) and Air Force Research Laboratory, Air Force
19: * Materiel Command, USAF, under agreement number F39502-99-1-0512.
20: */
21:
1.1.1.4 misho 22: #ifndef _SUDOERS_DEFAULTS_H
23: #define _SUDOERS_DEFAULTS_H
1.1 misho 24:
25: #include <def_data.h>
26:
27: struct list_member {
1.1.1.5 ! misho 28: SLIST_ENTRY(list_member) entries;
1.1 misho 29: char *value;
30: };
31:
1.1.1.5 ! misho 32: SLIST_HEAD(list_members, list_member);
1.1 misho 33:
34: enum list_ops {
35: add,
36: delete,
37: freeall
38: };
39:
1.1.1.5 ! misho 40: /* Mapping of tuple string value to enum def_tuple. */
! 41: struct def_values {
! 42: char *sval; /* string value */
! 43: enum def_tuple nval;/* numeric value */
! 44: };
! 45:
1.1 misho 46: /*
47: * Structure describing compile-time and run-time options.
48: */
49: struct sudo_defs_types {
50: char *name;
51: int type;
52: char *desc;
53: struct def_values *values;
54: int (*callback)(const char *);
55: union {
56: int flag;
57: int ival;
1.1.1.5 ! misho 58: unsigned int uival;
1.1 misho 59: double fval;
60: enum def_tuple tuple;
61: char *str;
62: mode_t mode;
1.1.1.5 ! misho 63: struct list_members list;
1.1 misho 64: } sd_un;
65: };
66:
67: /*
68: * Four types of defaults: strings, integers, and flags.
69: * Also, T_INT, T_FLOAT or T_STR may be ANDed with T_BOOL to indicate that
70: * a value is not required. Flags are boolean by nature...
71: */
72: #undef T_INT
73: #define T_INT 0x001
74: #undef T_UINT
75: #define T_UINT 0x002
76: #undef T_STR
77: #define T_STR 0x003
78: #undef T_FLAG
79: #define T_FLAG 0x004
80: #undef T_MODE
81: #define T_MODE 0x005
82: #undef T_LIST
83: #define T_LIST 0x006
84: #undef T_LOGFAC
85: #define T_LOGFAC 0x007
86: #undef T_LOGPRI
87: #define T_LOGPRI 0x008
88: #undef T_TUPLE
89: #define T_TUPLE 0x009
90: #undef T_FLOAT
91: #define T_FLOAT 0x010
92: #undef T_MASK
93: #define T_MASK 0x0FF
94: #undef T_BOOL
95: #define T_BOOL 0x100
96: #undef T_PATH
97: #define T_PATH 0x200
98:
99: /*
1.1.1.3 misho 100: * Argument to update_defaults() and check_defaults()
1.1 misho 101: */
102: #define SETDEF_GENERIC 0x01
103: #define SETDEF_HOST 0x02
104: #define SETDEF_USER 0x04
105: #define SETDEF_RUNAS 0x08
106: #define SETDEF_CMND 0x10
107: #define SETDEF_ALL (SETDEF_GENERIC|SETDEF_HOST|SETDEF_USER|SETDEF_RUNAS|SETDEF_CMND)
108:
109: /*
110: * Prototypes
111: */
112: void dump_default(void);
113: void init_defaults(void);
1.1.1.3 misho 114: bool set_default(char *var, char *val, int op);
115: bool update_defaults(int what);
116: bool check_defaults(int what, bool quiet);
1.1 misho 117:
118: extern struct sudo_defs_types sudo_defs_table[];
119:
1.1.1.4 misho 120: #endif /* _SUDOERS_DEFAULTS_H */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>