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  |