Return to defaults.h CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / sudo / plugins / sudoers |
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 */