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>