Source File modules/ud/ud.h

    1    | /***************************************
    2    |   $Revision: 1.11 $
    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                              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  |