1 | /*************************************** 2 | $Revision: 2.4 $ 3 | 4 | Error reporting (er) er.c - er_RX_errors.h - definition of errors for the 5 | error reporting module (used in test only). 6 | 7 | Status: NOT COMPLETE, NOT REVUED, NOT TESTED, 8 | 9 | Design and implementation by: daniele@ripe.net 10 | 11 | ******************/ /****************** 12 | Copyright (c) 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 | /* I see no way of automating things here... Maybe with a perl script. 33 | 34 | There are three things to do: 35 | 1. Get a new integer number from the enum 36 | (using a ??_LOW_<mnem> symbol) 37 | 2. define a new error code (??_<mnem>) by adding the facility and 38 | severity codes. 39 | 3. put the symbol (using macro ERDUP) and text of the message into the 40 | array. Should fit in one line with the macro. 41 | 42 | The order of codes in enum does NOT have to match the order of texts. 43 | The last in the texts array must be the ER_LASTTXT constant. 44 | 45 | Sounds familiar ? That's because facilities and errors are parts 46 | of the error reporting fractal :-) 47 | */ 48 | 49 | /* use m4 macros to keep stuff in sync */ 50 | 51 | 52 | 53 | 54 | /******************************************/ 55 | /* ***** DEFINE THE CURRENT FACILITY **** */ 56 | /* * make sure no whitespaces are inside! */ 57 | /* */ /* */ 58 | /* ************************************** */ 59 | /******************************************/ 60 | 61 | /* last thing: disable processing of commented text (this allows to comment 62 | out some macro entries. Alas, the #%$@&* designers screwed up, so now we 63 | have to manually disable messing with C preprocessor commands */ 64 | 65 | 66 | 67 | 68 | 69 | typedef enum { 70 | /* fac code sev descr 71 | 72 | current facility specified inside the line below as CFAC 73 | */ 74 | 75 | LOW_MM_OK , 76 | LOW_MM_CANTOPEN , 77 | LOW_MM_LINETOOLONG , 78 | LOW_MM_INVMBX , 79 | LOW_MM_WARNCCL , 80 | LOW_MM_ERRCCL , 81 | LOW_MM_FATCCL 82 | } MM_err_code_t; 83 | 84 | /* paste the #define'd codes */ 85 | #define MM_OK (ER_SEV_I + (FAC_MM<<16) + LOW_MM_OK) 86 | #define MM_CANTOPEN (ER_SEV_F + (FAC_MM<<16) + LOW_MM_CANTOPEN) 87 | #define MM_LINETOOLONG (ER_SEV_F + (FAC_MM<<16) + LOW_MM_LINETOOLONG) 88 | #define MM_INVMBX (ER_SEV_F + (FAC_MM<<16) + LOW_MM_INVMBX) 89 | #define MM_WARNCCL (ER_SEV_W + (FAC_MM<<16) + LOW_MM_WARNCCL) 90 | #define MM_ERRCCL (ER_SEV_E + (FAC_MM<<16) + LOW_MM_ERRCCL) 91 | #define MM_FATCCL (ER_SEV_F + (FAC_MM<<16) + LOW_MM_FATCCL) 92 | 93 | 94 | #ifdef ER_IMPL 95 | er_list_t MM_mod_err[]={ 96 | 97 | /* paste the ERDUP's */ 98 | { ERDUP(MM_OK),"OK" }, 99 | { ERDUP(MM_CANTOPEN),"Cannot open file" }, 100 | { ERDUP(MM_LINETOOLONG),"Line too long: line number" }, 101 | { ERDUP(MM_INVMBX),"Invalid mailbox:" }, 102 | { ERDUP(MM_WARNCCL),"Warning from c-client:" }, 103 | { ERDUP(MM_ERRCCL),"Error from c-client:" }, 104 | { ERDUP(MM_FATCCL),"Fatal error from c-client:" }, 105 | 106 | 107 | ER_LASTTXT 108 | }; 109 | #endif /* ER_IMPL */