/* [<][>][^][v][top][bottom][index][help] */
DEFINITIONS
This source file includes following functions.
- RF_RIPE
- RF_INTERNIC
- RF_SIMPLE
- RF_CLIENTADDRESS
- refer_t
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,
/* [<][>][^][v][top][bottom][index][help] */
117 RF_INTERNIC,
/* [<][>][^][v][top][bottom][index][help] */
118 RF_SIMPLE,
/* [<][>][^][v][top][bottom][index][help] */
119 RF_CLIENTADDRESS
/* [<][>][^][v][top][bottom][index][help] */
120 } refer_t;
/* [<][>][^][v][top][bottom][index][help] */
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