## modules/ud/ud_comrol.h

/* [<][>][^][v][top][bottom][index][help] */

## FUNCTIONS

This source file includes following functions.

       1 /***************************************
       2   $Revision: 1.13 $
       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
      32 /* XXX                  IMPORTANT                        XXX  */
      33 /* XXX Many of the definitions are hardcoded here        XXX */
      34 /* XXX Incase of adding or reordering classes/attributes XXX */
      35 /* XXX Check this file, please                           XXX */
      36
      37 /*********************************************************************
      38
      39
      40 This is needed for commit or rollback of the transaction (v3 software
      41 doesn't rely on transaction support from the underlying RDBMS; MySQL
      42 doesn't have it at all). The transaction in progress can be identified
      43 by thread_id field not being equal 0 in corresponding tables. According
      44 to the value of this field (insert or  update) the commit/rollback
      45 routine either deletes or updates the record.
      46
      47 The arrays have the following format: first come tables that may be
      48 affected when dummy object is created to resolve references. For
      49 example, if one creates a inetnum object that has no corresponding
      50 admin-c, tech-c, mnt-by, etc., dummy records will be created in
      51 person_role table and mntner table. We need to clean up them.
      52
      53 Secondly (starting with TAB_START) come tables that may be affected by
      54 the object itself. Basically it is a list of all possible attributes of
      55 the object of the type that are stored in the db. I guess this may be
      56 also derived from xml in the future.
      57
      58 And NULL is a delimiter; it is also used for padding.
      59
      60 **********************************************************************/
      61
      62 #define TAB_START       6
      63 char *t_ak[]={  "mntner","person_role","names",NULL,NULL,NULL,
      64                 "admin_c","tech_c","notify","mnt_by","mnt_lower",NULL };
      65
      66 char *t_an[]={  "mntner","person_role","as_set","names","mbrs_by_ref",NULL,
      67                 "cross_nfy","cross_mnt","member_of","admin_c","tech_c","notify","mnt_by","mnt_lower","mnt_routes",NULL };
      68
      69 char *t_dn[]={  "mntner","person_role","names",NULL,NULL,NULL,
      70                 "admin_c","tech_c","zone_c","nserver","sub_dom","notify","mnt_by","mnt_lower","refer","inaddr_arpa", "ip6int", NULL }; /*C_DN, */
      71
      72 char *t_i6[]={  "mntner","person_role","names","irt",NULL,NULL,
      73                 "admin_c","tech_c","rev_srv","notify","mnt_by","mnt_lower","mnt_routes","mnt_irt",NULL}; /*C_I6,*/
      74
      75 char *t_in[]={  "mntner","person_role","names","irt",NULL,NULL,
      76                 "admin_c","tech_c","rev_srv","notify","mnt_by","mnt_lower","mnt_routes","mnt_irt",NULL}; /*C_IN,*/
      77
      78 char *t_ir[]={  "mntner","person_role","names",NULL,NULL,NULL,
      79                 "ifaddr","admin_c","tech_c","notify","mnt_by",NULL}; /*C_IR,*/
      80
      81 char *t_kc[]={  "mntner",NULL,NULL,NULL,NULL,NULL,
      82                 "notify","mnt_by",NULL}; /*C_KC,*/
      83
      84 char *t_li[]={  "mntner","person_role","names",NULL,NULL,NULL,
      85                 "admin_c","author","notify","mnt_by",NULL}; /*C_LI,*/
      86
      87 char *t_mt[]={  "mntner","person_role","names",NULL,NULL,NULL,
      88                 "admin_c","tech_c","upd_to","mnt_nfy","auth","notify","mnt_by","auth_override","referral_by",NULL}; /*C_MT,*/
      89
      90 char *t_pn[]={  "mntner",NULL,NULL,NULL,NULL,NULL,
      91                 "names","e_mail","notify","mnt_by",NULL}; /*C_PN,*/
      92
      93 char *t_ro[]={  "mntner","person_role","names",NULL,NULL,NULL,
      94                 "names","e_mail","admin_c","tech_c","notify","mnt_by",NULL}; /**C_RO,*/
      95
      96 char *t_rt[]={  "route_set","mntner","person_role",NULL,NULL,NULL, /* admin-c, tech-c may appear in RADB */
      97                 "cross_nfy","cross_mnt","member_of","notify","mnt_by","mnt_lower", "mnt_routes", NULL}; /*C_RT,*/
      98
      99 char *t_as[]={  "mntner","person_role","names",NULL,NULL,NULL,
     100                 "mbrs_by_ref","admin_c","tech_c","notify","mnt_by",NULL}; /*C_AS,*/
     101
     102 char *t_rs[]={  "mntner","person_role","names",NULL,NULL,NULL,
     103                 "mbrs_by_ref","admin_c","tech_c","notify","mnt_by",NULL}; /*C_RS,*/
     104
     105 char *t_fs[]={  "mntner","person_role","names",NULL,NULL,NULL,
     106                 "admin_c","tech_c","notify","mnt_by",NULL,NULL}; /*C_FS,*/
     107
     108 char *t_ps[]={  "mntner","person_role","names",NULL,NULL,NULL,
     109                 "admin_c","tech_c","notify","mnt_by",NULL,NULL}; /*C_PS,*/
     110
     111 char *t_is[]={  "mntner","person_role","names",NULL,NULL,NULL,
     112                 "mbrs_by_ref","admin_c","tech_c","notify","mnt_by",NULL}; /*C_IS,*/
     113
     114 char *t_it[]={  "mntner","person_role","names",NULL,NULL,NULL,
     115                 "admin_c","tech_c","notify","mnt_by","auth","irt_nfy",NULL}; /*C_IS,*/
     116
     117 /* IMPORTANT !!! */
     118 /* This stuff should be consistent with DF_classnames.def */
     119
     120 char **tables[]={
     121 t_ak,
     122 t_as,
     123 t_an,
     124 t_dn,
     125 t_ir,
     126 t_i6,
     127 t_in,
     128 t_kc,
     129 t_li,
     130 t_mt,
     131 t_pn,
     132 t_ro,
     133 t_rt,
     134 t_rs,
     135 t_fs,
     136 t_ps,
     137 t_is,
     138 t_it,
     139 NULL
     140 };
     141
     142 /* This tables are used for inverse querying when deleting an object */
     143
     144 char *t_ipn[]={  "admin_c","tech_c","zone_c","cross_nfy","author",NULL}; /*C_PN, C_RO*/
     145 char *t_imt[]={  "mnt_by","mnt_lower","mnt_routes","cross_mnt","mbrs_by_ref","referral_by",NULL}; /* C_MT */
     146 char *t_iit[]={  "mnt_irt", NULL}; /* C_IT */

/* [<][>][^][v][top][bottom][index][help] */