Annotation of embedaddon/sudo/plugins/sudoers/defaults.h, revision 1.1
1.1 ! misho 1: /*
! 2: * Copyright (c) 1999-2005, 2008-2010
! 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:
! 22: #ifndef _SUDO_DEFAULTS_H
! 23: #define _SUDO_DEFAULTS_H
! 24:
! 25: #include <def_data.h>
! 26:
! 27: struct list_member {
! 28: char *value;
! 29: struct list_member *next;
! 30: };
! 31:
! 32: struct def_values {
! 33: char *sval; /* string value */
! 34: int ival; /* actually an enum */
! 35: };
! 36:
! 37: enum list_ops {
! 38: add,
! 39: delete,
! 40: freeall
! 41: };
! 42:
! 43: /*
! 44: * Structure describing compile-time and run-time options.
! 45: */
! 46: struct sudo_defs_types {
! 47: char *name;
! 48: int type;
! 49: char *desc;
! 50: struct def_values *values;
! 51: int (*callback)(const char *);
! 52: union {
! 53: int flag;
! 54: int ival;
! 55: double fval;
! 56: enum def_tuple tuple;
! 57: char *str;
! 58: mode_t mode;
! 59: struct list_member *list;
! 60: } sd_un;
! 61: };
! 62:
! 63: /*
! 64: * Four types of defaults: strings, integers, and flags.
! 65: * Also, T_INT, T_FLOAT or T_STR may be ANDed with T_BOOL to indicate that
! 66: * a value is not required. Flags are boolean by nature...
! 67: */
! 68: #undef T_INT
! 69: #define T_INT 0x001
! 70: #undef T_UINT
! 71: #define T_UINT 0x002
! 72: #undef T_STR
! 73: #define T_STR 0x003
! 74: #undef T_FLAG
! 75: #define T_FLAG 0x004
! 76: #undef T_MODE
! 77: #define T_MODE 0x005
! 78: #undef T_LIST
! 79: #define T_LIST 0x006
! 80: #undef T_LOGFAC
! 81: #define T_LOGFAC 0x007
! 82: #undef T_LOGPRI
! 83: #define T_LOGPRI 0x008
! 84: #undef T_TUPLE
! 85: #define T_TUPLE 0x009
! 86: #undef T_FLOAT
! 87: #define T_FLOAT 0x010
! 88: #undef T_MASK
! 89: #define T_MASK 0x0FF
! 90: #undef T_BOOL
! 91: #define T_BOOL 0x100
! 92: #undef T_PATH
! 93: #define T_PATH 0x200
! 94:
! 95: /*
! 96: * Argument to update_defaults()
! 97: */
! 98: #define SETDEF_GENERIC 0x01
! 99: #define SETDEF_HOST 0x02
! 100: #define SETDEF_USER 0x04
! 101: #define SETDEF_RUNAS 0x08
! 102: #define SETDEF_CMND 0x10
! 103: #define SETDEF_ALL (SETDEF_GENERIC|SETDEF_HOST|SETDEF_USER|SETDEF_RUNAS|SETDEF_CMND)
! 104:
! 105: /*
! 106: * Prototypes
! 107: */
! 108: void dump_default(void);
! 109: void init_defaults(void);
! 110: int set_default(char *, char *, int);
! 111: int update_defaults(int);
! 112:
! 113: extern struct sudo_defs_types sudo_defs_table[];
! 114:
! 115: #endif /* _SUDO_DEFAULTS_H */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>