1 | /*************************************** 2 | $Revision: 1.12 $ 3 | 4 | Status: NOT REVUED, NOT TESTED 5 | 6 | Author(s): Andrei Robachevsky 7 | 8 | ******************/ /****************** 9 | Modification History: 10 | andrei (17/01/2000) Created. 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 | #ifndef _UD_H 32 | #define _UD_H 33 | 34 | /* Error codes definition */ 35 | #define ERROR_U_MEM 0x0001 /* memory allocation error */ 36 | #define ERROR_U_DBS 0x0002 /* database (sql) error */ 37 | #define ERROR_U_OBJ 0x0004 /* referential integrity failure */ 38 | #define ERROR_U_AUT 0x0008 /* membership authirization failure */ 39 | 40 | #define ERROR_U_BADOP 0x0010 /* unknown operation */ 41 | #define ERROR_U_COP 0x0020 /* conflicting operation (e.g. deletig non-existent object) */ 42 | #define ERROR_U_NSUP 0x0040 /* object type not supported */ 43 | #define ERROR_U_BUG 0x0080 /* software bug - report to developer */ 44 | 45 | /* definition of mode bits */ 46 | #define B_DUMMY 0x01 47 | #define B_UPDATE 0x02 48 | #define B_NRTM_CLNT 0x04 49 | #define B_STANDALONE 0x08 50 | 51 | /* no NHR store - when mirroring foreign db */ 52 | #define B_NO_NHR 0x10 53 | /* invitation includes -k */ 54 | #define B_PERSIST_MIRR 0x20 55 | 56 | 57 | /* macros for update mode operation */ 58 | #define IS_DUMMY_ALLOWED(a) ((a)&(B_DUMMY)) 59 | #define IS_UPDATE(a) ((a)&(B_UPDATE)) 60 | #define IS_NRTM_CLNT(a) ((a)&(B_NRTM_CLNT)) 61 | #define IS_STANDALONE(a) ((a)&(B_STANDALONE)) 62 | 63 | #define IS_PERSIST_MIRR(a) ((a)&(B_PERSIST_MIRR)) 64 | #define IS_NO_NHR(a) ((a)&(B_NO_NHR)) 65 | 66 | /* XXX SQL transaction types */ 67 | 68 | #define TR_UPDATE 1000 69 | #define TR_INSERT 2000 70 | #define TR_CREATE TR_INSERT 71 | #define TR_DELETE 3000 72 | 73 | 74 | 75 | /* Transaction action (tr.action ) */ 76 | #define TA_CREATE 0x01 77 | #define TA_UPDATE 0x02 78 | #define TA_DELETE 0x04 79 | #define TA_UPD_NHR 0x08 80 | #define TA_UPD_RX 0x10 81 | #define TA_DUMMY 0x20 82 | #define TA_CLLPS 0x40 83 | #define TA_UPD_DUMMY (TA_UPDATE | TA_DUMMY) 84 | #define TA_UPD_CLLPS (TA_UPDATE | TA_CLLPS) 85 | 86 | 87 | 88 | /* macros for transaction operation bitmask (tr.action) */ 89 | #define ACT_CREATE(a) ((a)&TA_CREATE) 90 | #define ACT_UPDATE(a) ((a)&TA_UPDATE) 91 | #define ACT_DELETE(a) ((a)&TA_DELETE) 92 | #define ACT_UPD_NHR(a) ((a)&TA_UPD_NHR) /* update Nic Handle Repository */ 93 | #define ACT_UPD_RX(a) ((a)&TA_UPD_RX) /* update radix tree */ 94 | 95 | #define ACT_UPD_DUMMY(a) ((a)&TA_DUMMY) /* update of a dummy object */ 96 | #define ACT_UPD_CLLPS(a) ((a)&TA_CLLPS) /* collapsed (DEL+ADD) update */ 97 | 98 | 99 | 100 | #define OP_ADD 1 101 | #define OP_DEL 2 102 | #define OP_UPD 3 103 | #define OP_NOOP 4 104 | 105 | /* class type for dummy objects */ 106 | #define DUMMY_TYPE 100 107 | 108 | /* Definitions for "refer" (domain referral mechanism) */ 109 | #define S_RIPE "RIPE" 110 | #define S_INTERNIC "InterNIC" 111 | #define S_SIMPLE "SIMPLE" 112 | #define S_CLIENTADDERSS "CLIENTADDRESS" 113 | 114 | 115 | typedef enum { 116 | RF_RIPE=1, 117 | RF_INTERNIC, 118 | RF_SIMPLE, 119 | RF_CLIENTADDRESS 120 | } refer_t; 121 | 122 | #define RF_DEF_PORT 43 123 | 124 | 125 | 126 | void UD_do_nrtm(void *args); 127 | void UD_do_updates(void *args); 128 | 129 | 130 | #endif /* _UD_H */ 131 |