1 /* SAMHAIN file system integrity testing */ 2 /* Copyright (C) 1999 Rainer Wichmann */ 3 /* */ 4 /* This program is free software; you can redistribute it */ 5 /* and/or modify */ 6 /* it under the terms of the GNU General Public License as */ 7 /* published by */ 8 /* the Free Software Foundation; either version 2 of the License, or */ 9 /* (at your option) any later version. */ 10 /* */ 11 /* This program is distributed in the hope that it will be useful, */ 12 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ 13 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ 14 /* GNU General Public License for more details. */ 15 /* */ 16 /* You should have received a copy of the GNU General Public License */ 17 /* along with this program; if not, write to the Free Software */ 18 /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ 19 20 21 /* Public interface for error routines 22 */ 23 #ifndef SH_ERROR_H 24 #define SH_ERROR_H 25 26 #include "sh_error_min.h" 27 28 29 enum { 30 SH_ERR_T_START = 0, 31 32 /* 1-13 = SH_LEVEL_XXX */ 33 34 SH_ERR_T_RO = SH_LEVEL_READONLY, 35 SH_ERR_T_LOGS = SH_LEVEL_LOGFILES, 36 SH_ERR_T_GLOG = SH_LEVEL_LOGGROW, 37 SH_ERR_T_NOIG = SH_LEVEL_NOIGNORE, 38 SH_ERR_T_ALLIG = SH_LEVEL_ALLIGNORE, 39 SH_ERR_T_ATTR = SH_LEVEL_ATTRIBUTES, 40 SH_ERR_T_USER0 = SH_LEVEL_USER0, 41 SH_ERR_T_USER1 = SH_LEVEL_USER1, 42 SH_ERR_T_USER2 = SH_LEVEL_USER2, 43 SH_ERR_T_USER3 = SH_LEVEL_USER3, 44 SH_ERR_T_USER4 = SH_LEVEL_USER4, 45 SH_ERR_T_PRELINK = SH_LEVEL_PRELINK, 46 47 SH_ERR_T_DIR = 13, 48 SH_ERR_T_FILE = 14, 49 SH_ERR_T_NAME = 15, 50 51 SH_ERR_T_END = 16 52 }; 53 54 55 typedef struct _errFlags { 56 int debug; 57 int HaveLog; 58 59 int loglevel; 60 int loglevel_temp; 61 int printlevel; 62 int maillevel; 63 int exportlevel; 64 int sysloglevel; 65 int externallevel; 66 int databaselevel; 67 68 int log_class; 69 int print_class; 70 int mail_class; 71 int export_class; 72 int syslog_class; 73 int external_class; 74 int database_class; 75 76 /* HAVE_LIBPRELUDE */ 77 int preludelevel; 78 int prelude_class; 79 80 } blurb_errFlags; 81 82 extern int ShDFLevel[SH_ERR_T_END]; 83 84 /* set mask for message class 85 */ 86 int sh_error_log_mask (const char * c); 87 int sh_error_print_mask (const char * c); 88 int sh_error_mail_mask (const char * c); 89 int sh_error_export_mask (const char * c); 90 int sh_error_syslog_mask (const char * c); 91 int sh_error_external_mask (const char * c); 92 int sh_error_database_mask (const char * c); 93 int sh_error_prelude_mask (const char * c); 94 95 96 int sh_error_verify (const char * s); 97 int sh_error_logverify_mod (const char * s); /* just list, don't verify */ 98 int sh_error_logverify (const char * s); 99 100 void sh_error_dbg_switch(void); 101 102 #ifdef SH_WITH_SERVER 103 104 void sh_error_set_peer(const char * str); 105 #ifdef HAVE_LIBPRELUDE 106 void sh_error_set_peer_ip(const char * str); 107 #endif 108 int set_flag_sep_log (const char * str); 109 #endif 110 111 /* init or re-init log facilities that need it 112 */ 113 void sh_error_fixup(void); 114 115 /* only to stderr (GOOD/BAD) 116 */ 117 void sh_error_only_stderr (int flag); 118 119 /* facilities unsafe for closeall() 120 */ 121 void sh_error_enable_unsafe (int flag); 122 123 /* set syslog facility 124 */ 125 int sh_log_set_facility (const char * c); 126 127 /* map heartbeat messages 128 */ 129 int sh_log_set_stamp_priority (const char * c); 130 131 /* define message header 132 */ 133 int sh_error_ehead (/*@null@*/const char * s); 134 135 /* set level for error logging 136 */ 137 int sh_error_setlog(const char * str_s); 138 139 /* set severity levels 140 */ 141 int sh_error_set_iv (int iv, const char * severity_s); 142 143 /* set priorities 144 */ 145 int sh_error_set_level(const char * str_s, int *facility); 146 147 /* set level for TCP export 148 */ 149 int sh_error_setexport(const char * str_s); 150 151 /* set level for syslog 152 */ 153 int sh_error_set_syslog (const char * flag_s); 154 155 /* set level for printing 156 */ 157 int sh_error_setprint(const char * flag_s); 158 159 /* set severity for external 160 */ 161 int sh_error_set_external (const char * str_s); 162 163 /* set severity for external 164 */ 165 int sh_error_set_database (const char * str_s); 166 167 /* set severity for external 168 */ 169 int sh_error_set_prelude (const char * str_s); 170 171 172 /* set level for mailing 173 */ 174 int sh_error_setseverity (const char * flag); 175 176 /* set debug level 177 */ 178 int sh_error_setdebug (char * debug_s); 179 180 /* switch on/off log to file temporarily 181 */ 182 void sh_error_logoff(void); 183 void sh_error_logrestore(void); 184 185 /* short errfile 186 */ 187 void sh_efile_report(); 188 int sh_efile_path(const char * str); 189 int sh_efile_group(const char * str); 190 191 /* (re)set the console device(s) 192 */ 193 int sh_log_set_console (const char * address); 194 void reset_count_dev_console(void); 195 196 /* close the message queue [no-op if !defined(WITH_MESSAGE_QUEUE)] 197 */ 198 void close_ipc (void); 199 200 #ifdef WITH_MESSAGE_QUEUE 201 /* enable message queue 202 */ 203 int enable_msgq(const char * foo); 204 #endif 205 206 #endif 207