1 | /*************************************** 2 | $Revision: 1.23 $ 3 | 4 | Error reporting (er) er_aspects.{m4,h} - definition of error aspects 5 | for the error reporting module 6 | 7 | Status: NOT REVUED, TESTED, 8 | 9 | Design and implementation by: Marek Bukowy 10 | 11 | ******************/ /****************** 12 | Copyright (c) 1999,2000,2001,2002 RIPE NCC 13 | 14 | All Rights Reserved 15 | 16 | Permission to use, copy, modify, and distribute this software and its 17 | documentation for any purpose and without fee is hereby granted, 18 | provided that the above copyright notice appear in all copies and that 19 | both that copyright notice and this permission notice appear in 20 | supporting documentation, and that the name of the author not be 21 | used in advertising or publicity pertaining to distribution of the 22 | software without specific, written prior permission. 23 | 24 | THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING 25 | ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS; IN NO EVENT SHALL 26 | AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY 27 | DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN 28 | AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 29 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 30 | ***************************************/ 31 | 32 | /* 33 | NOTE: modify the m4 file only, do not change the resulting .h !!! 34 | */ 35 | 36 | #ifndef ER_ASPECTS_H 37 | #define ER_ASPECTS_H 38 | 39 | #include "erroutines.h" 40 | 41 | typedef struct { 42 | er_fac_code_t f; 43 | char *n; 44 | int v; 45 | } er_aspstr_t; 46 | 47 | #ifdef ER_IMPL 48 | #define EXTDEF 49 | #define EXTINI(a,b) a = b; 50 | #else 51 | #define EXTDEF extern 52 | #define EXTINI(a,b) extern a; 53 | #endif 54 | 55 | /* m4 macro: #define a symbol and put its string version into the array 56 | at the same time. The string version will have "ASP_" cut off if 57 | the string begins with it. The #defines are diverted to stream 9, so 58 | they appear later in the output (outside the /endif block) 59 | */ 60 | 61 | 62 | 63 | typedef enum { 64 | 65 | /* 0x20000000 - 0x01000000 are reserved for global tags */ 66 | 67 | /* RADIX: */ 68 | ASP_RX_NODCRE_GEN = 0x000080 , /* general node creation tag */ 69 | ASP_RX_NODCRE_DET = 0x000040 , /* also details on node creation */ 70 | 71 | ASP_RX_STKBLD_GEN = 0x000020 , /* general stack building */ 72 | ASP_RX_STKBLD_DET = 0x000010 , /* also detailed stack building */ 73 | 74 | ASP_RX_SRCH_GEN = 0x000800 , /* search */ 75 | ASP_RX_SRCH_DET = 0x000400 , 76 | 77 | ASP_RX_TREE_GEN = 0x002000 , /* general tree/forest administration */ 78 | ASP_RX_TREE_DET = 0x001000 , /* detailed */ 79 | 80 | ASP_RX_TREE_WALK = 0x000001 , 81 | 82 | 83 | /* Radix payload */ 84 | ASP_RP_PACK_DET = 0x000100 , /* pack conversion */ 85 | ASP_RP_TREE_DET = 0x001000 , /* finding tree in forest */ 86 | ASP_RP_LOAD_GEN = 0x010000 , /* loading of trees */ 87 | ASP_RP_LOAD_DET = 0x000010 , /* loading of trees - detailed */ 88 | ASP_RP_SRCH_DATA = 0x000040 , /* search - display 'immediate data' */ 89 | ASP_RP_SRCH_DET = 0x004000 , /* search - detailed */ 90 | ASP_RP_SRCH_GEN = 0x040000 , /* search - general */ 91 | 92 | 93 | /* Query instructions */ 94 | ASP_QI_LAST_DET = 0x000010 , /* ids of the objects from the LAST table */ 95 | ASP_QI_SKIP = 0x004000 , /* query skipped */ 96 | 97 | ASP_QI_REF_DET = 0x010000 , /* referral, detailed */ 98 | ASP_QI_REF_GEN = 0x020000 , /* referral */ 99 | 100 | ASP_QI_COLL_DET = 0x100000 , /* id collection (exec. of subqueries) */ 101 | ASP_QI_COLL_GEN = 0x200000 , /* query list */ 102 | ASP_QI_WATCH = 0x080000 , /* watchdog */ 103 | 104 | /* Query command */ 105 | ASP_QC_BUILD = 0x800000 , /* query preparation */ 106 | 107 | /* Threads */ 108 | ASP_TH_NEW = 0x800000 , /* new thread */ 109 | 110 | /* Sockets */ 111 | ASP_SK_GEN = 0x000100 , /* general aspect */ 112 | ASP_SK_WRIT = 0x000001 , /* writing functions; buffer printed too */ 113 | ASP_SK_WATCH = 0x000800 , /* watchdog */ 114 | 115 | /* Protocol whois */ 116 | ASP_PW_CONN = 0x001000 , /* connection opened */ 117 | 118 | /* Protocol whois - aspects for INFO (log) messages */ 119 | ASP_PW_I_PASSUN = 0x010000 , /* unauthorised address passing */ 120 | ASP_PW_I_QRYLOG = 0x100000 , /* log query after it's been processed */ 121 | ASP_PW_I_DENTRY = 0x200000 , /* log connection from a denied host */ 122 | 123 | ASP_SQ_QRYTIME = 0x000100 , /* log the query,result and time it took */ 124 | ASP_SQ_ABORT = 0x001000 , /* aborting a sql connection */ 125 | 126 | ASP_PM_INPUT = 0x000010 , /* log the query */ 127 | ASP_PM_ERESP = 0x000001 , /* print server error responses */ 128 | 129 | /* MIME Parser module */ 130 | ASP_MM_GEN = 0x000100 , /* General aspect */ 131 | ASP_MM_SEC = 0x001000 , /* Security-related aspect */ 132 | 133 | /* Main server (sv) */ 134 | ASP_SV_PORT = 0x000100 , /* listing ports */ 135 | 136 | /* UD - core update process */ 137 | ASP_UD_SQL = 0x000010 , /* print SQL queries */ 138 | ASP_UD_OBJ = 0x000100 , /* trace object update process */ 139 | ASP_UD_UPDLOG = 0x001000 , /* print summary information */ 140 | 141 | /* Access control */ 142 | ASP_AC_DECAY = 0x000100 , /* decaying process */ 143 | ASP_AC_PRUNE_DET = 0x000010 , /* pruning the access tree, detailed */ 144 | ASP_AC_I_PERMBAN = 0x002000 , /* a permanent ban was set */ 145 | 146 | /* Protocol Config */ 147 | ASP_PC_I_SESSION = 0x000100 , /* session event: log on, log off, auth fail */ 148 | ASP_PC_I_COMMAND = 0x000200 , /* command executed */ 149 | 150 | /* UP - dbupdate module */ 151 | ASP_UP_FILE = 0x000001 , /* File related */ 152 | ASP_UP_GEN = 0x000010 , /* General */ 153 | 154 | /* Public Authentication (GPG) module */ 155 | ASP_PA_GEN = 0x000100 , /* General aspect */ 156 | 157 | /* utility module */ 158 | ASP_UT_MEM = 0x00000001 , /* Memory related */ 159 | ASP_UT_FD = 0x00000010 , /* File descriptor related */ 160 | 161 | ASP_NONE = 0 162 | 163 | } er_aspect_en; 164 | 165 | EXTDEF 166 | er_aspstr_t er_asparr[] 167 | #ifdef ER_IMPL 168 | = { 169 | 170 | { FAC_RX, "RX_NODCRE_GEN", ASP_RX_NODCRE_GEN }, 171 | { FAC_RX, "RX_NODCRE_DET", ASP_RX_NODCRE_DET }, 172 | { FAC_RX, "RX_STKBLD_GEN", ASP_RX_STKBLD_GEN }, 173 | { FAC_RX, "RX_STKBLD_DET", ASP_RX_STKBLD_DET }, 174 | { FAC_RX, "RX_SRCH_GEN", ASP_RX_SRCH_GEN }, 175 | { FAC_RX, "RX_SRCH_DET", ASP_RX_SRCH_DET }, 176 | { FAC_RX, "RX_TREE_GEN", ASP_RX_TREE_GEN }, 177 | { FAC_RX, "RX_TREE_DET", ASP_RX_TREE_DET }, 178 | { FAC_RX, "RX_TREE_WALK", ASP_RX_TREE_WALK }, 179 | { FAC_RP, "RP_PACK_DET", ASP_RP_PACK_DET }, 180 | { FAC_RP, "RP_TREE_DET", ASP_RP_TREE_DET }, 181 | { FAC_RP, "RP_LOAD_GEN", ASP_RP_LOAD_GEN }, 182 | { FAC_RP, "RP_LOAD_DET", ASP_RP_LOAD_DET }, 183 | { FAC_RP, "RP_SRCH_DATA", ASP_RP_SRCH_DATA }, 184 | { FAC_RP, "RP_SRCH_DET", ASP_RP_SRCH_DET }, 185 | { FAC_RP, "RP_SRCH_GEN", ASP_RP_SRCH_GEN }, 186 | { FAC_QI, "QI_LAST_DET", ASP_QI_LAST_DET }, 187 | { FAC_QI, "QI_SKIP", ASP_QI_SKIP }, 188 | { FAC_QI, "QI_REF_DET", ASP_QI_REF_DET }, 189 | { FAC_QI, "QI_REF_GEN", ASP_QI_REF_GEN }, 190 | { FAC_QI, "QI_COLL_DET", ASP_QI_COLL_DET }, 191 | { FAC_QI, "QI_COLL_GEN", ASP_QI_COLL_GEN }, 192 | { FAC_QI, "QI_WATCH", ASP_QI_WATCH }, 193 | { FAC_QC, "QC_BUILD", ASP_QC_BUILD }, 194 | { FAC_TH, "TH_NEW", ASP_TH_NEW }, 195 | { FAC_SK, "SK_GEN", ASP_SK_GEN }, 196 | { FAC_SK, "SK_WRIT", ASP_SK_WRIT }, 197 | { FAC_SK, "SK_WATCH", ASP_SK_WATCH }, 198 | { FAC_PW, "PW_CONN", ASP_PW_CONN }, 199 | { FAC_PW, "PW_I_PASSUN", ASP_PW_I_PASSUN }, 200 | { FAC_PW, "PW_I_QRYLOG", ASP_PW_I_QRYLOG }, 201 | { FAC_PW, "PW_I_DENTRY", ASP_PW_I_DENTRY }, 202 | { FAC_SQ, "SQ_QRYTIME", ASP_SQ_QRYTIME }, 203 | { FAC_SQ, "SQ_ABORT", ASP_SQ_ABORT }, 204 | { FAC_PM, "PM_INPUT", ASP_PM_INPUT }, 205 | { FAC_PM, "PM_ERESP", ASP_PM_ERESP }, 206 | { FAC_MM, "MM_GEN", ASP_MM_GEN }, 207 | { FAC_MM, "MM_SEC", ASP_MM_SEC }, 208 | { FAC_SV, "SV_PORT", ASP_SV_PORT }, 209 | { FAC_UD, "UD_SQL", ASP_UD_SQL }, 210 | { FAC_UD, "UD_OBJ", ASP_UD_OBJ }, 211 | { FAC_UD, "UD_UPDLOG", ASP_UD_UPDLOG }, 212 | { FAC_AC, "AC_DECAY", ASP_AC_DECAY }, 213 | { FAC_AC, "AC_PRUNE_DET", ASP_AC_PRUNE_DET }, 214 | { FAC_AC, "AC_I_PERMBAN", ASP_AC_I_PERMBAN }, 215 | { FAC_PC, "PC_I_SESSION", ASP_PC_I_SESSION }, 216 | { FAC_PC, "PC_I_COMMAND", ASP_PC_I_COMMAND }, 217 | { FAC_UP, "UP_FILE", ASP_UP_FILE }, 218 | { FAC_UP, "UP_GEN", ASP_UP_GEN }, 219 | { FAC_PA, "PA_GEN", ASP_PA_GEN }, 220 | { FAC_UT, "UT_MEM", ASP_UT_MEM }, 221 | { FAC_UT, "UT_FD", ASP_UT_FD }, 222 | /* m4 - paste the definitions here */ 223 | 224 | {FAC_NONE, NULL, 0} 225 | } 226 | #endif /* ER_IMPL */ 227 | ; 228 | 229 | 230 | unsigned int ER_aspval(char *key); 231 | 232 | #endif /* ER_ASPECTS_H */ 233 |