include/dbupdate.h

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

FUNCTIONS

This source file includes following functions.

   1 /******************
   2   Copyright (c) 2002                                        RIPE NCC
   3 
   4   All Rights Reserved
   5 
   6   Permission to use, copy, modify, and distribute this software and its
   7   documentation for any purpose and without fee is hereby granted,
   8   provided that the above copyright notice appear in all copies and that
   9   both that copyright notice and this permission notice appear in
  10   supporting documentation, and that the name of the author not be
  11   used in advertising or publicity pertaining to distribution of the
  12   software without specific, written prior permission.
  13 
  14   THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  15   ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS; IN NO EVENT SHALL
  16   AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
  17   DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
  18   AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  19   OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  20   ***************************************/
  21 
  22 #ifndef UPDATE_UPPER_H
  23 #define UPDATE_UPPER_H
  24 
  25 
  26 #include <stdio.h>
  27 #include <stdlib.h> 
  28 #include <string.h> 
  29 #include <stubs.h>
  30 /*#include <string>*/
  31 #include <glib.h>
  32 /*#include <iostream.h>
  33 #include <fstream>*/
  34 
  35 #include <netdb.h> 
  36 #include <sys/types.h> 
  37 #include <netinet/in.h> 
  38 #include <sys/socket.h> 
  39 #include <errno.h> 
  40 #include <unistd.h>
  41 
  42 #include "rip.h"
  43 #undef close
  44 
  45 #include <config.h>
  46 /* #include <istream.h>
  47 #include "rpsl/object.hh"
  48 #include "util/rusage.hh"
  49 #include "util/debug.hh"
  50 #include "util/trace.hh"
  51 #include "util/Argv.hh"
  52 #include "util/version.hh"
  53 #ifdef IRR_NEEDED
  54 #include "irr/irr.hh"
  55 #include "irr/rawhoisc.hh"
  56 #endif */ /* IRR_NEEDED */
  57 /* #include "rpsl/schema.hh"
  58 */
  59 #include "erroutines.h"
  60 #include "AU_util.h"
  61 #include "ack.h"
  62 #define private private_xx
  63 #include "mm.h"
  64 #include "mysql_driver.h"
  65 /*#include "mail_parser.h"*/
  66 #undef private
  67 
  68 
  69 #define MAXDATASIZE 100 /* max number of bytes we can get at once */
  70 
  71 #define OVR_OK 0 /* override succeded */
  72 
  73 
  74 #define ACK_FILE_PREFIX "ack"
  75 
  76 extern char *sources[];
  77 
  78 typedef enum {
  79   UP_AUTH_OK=0, /* Auth succeded */
  80   UP_MOR, /* got more than one object from the db, where extected only one */
  81   UP_NSO, /* no such object */
  82   UP_AUF, /* auth failed */
  83   UP_NIY, /* not implemented yet */
  84   UP_ABN, /* as-block does not exist */
  85   UP_HOF, /* hierarchical auth failed */
  86   UP_OVF, /* override failed */
  87   UP_OVS, /* override syntax error */
  88   UP_NOM, /* no match. the old & nw versions of the object are not the same */
  89   UP_ANE, /* AUTO NIC hdl error */
  90   UP_FWD, /* mntner or as-block creation will be forwarded to <HUMAILBOX> */
  91   UP_SYN, /* syntax error in the object */
  92   UP_NAM, /* name of a person/role object cannot be changed */
  93   UP_INT  /* internal error */
  94 
  95 } return_codes;
  96 
  97 typedef struct _up_ripupd_result_struct {
  98   int result;
  99   char * error_str;
 100 } up_ripupd_result_struct;
 101 
 102 
 103 
 104 up_ripupd_result_struct * send_object_db(rpsl_object_t * object, char * assigned_NIC, char * operation);
 105 
 106 /* char * get_class_type(Object *arg); */
 107 
 108 char * get_search_key(rpsl_object_t *object, const char * type);
 109 
 110 /* GSList *get_attributes(Object * o, const char * attrib, const char * text); */
 111 
 112 char * send_and_get(char * host, int port, char * arg);
 113 
 114 int count_objects(char * arg);
 115 
 116 char * take_object(char * arg);
 117 
 118 char * get_as_block(rpsl_object_t *autnum_object);
 119 
 120 char * get_less_specific_domain(rpsl_object_t *domain_object);
 121 
 122 char * get_less_specific_set(rpsl_object_t *set_object, const char *type);
 123 
 124 char * get_less_specific(rpsl_object_t *inetnum_object, const char *type);
 125 
 126 GList *get_mntners(rpsl_object_t * object);
 127 
 128 GList *get_auths(char * object_str);
 129 
 130 GList *get_attr_list(rpsl_object_t * object, const char * attr_type);
 131 
 132 GList *get_mnt_lowers(rpsl_object_t * object);
 133 
 134 char *get_override(rpsl_object_t * object);
 135 
 136 int check_override(char * string);
 137 
 138 GSList * add_to_auth_vector(GSList * list_of_auth_struct, GList * auths, char * mntner_name);
 139 
 140 GSList * get_auth_vector(GList * mntners);
 141 
 142 GList * get_mntnfy_vector(GList * mntners);
 143 
 144 int check_auth(rpsl_object_t *new_object, rpsl_object_t *old_object, const char *type, credentials_struct credentials);
 145 
 146 char * get_old_version(rpsl_object_t * object, char * arg);
 147 
 148 /* int process_object(char * arg, credentials_struct credentials, GHashTable * NIC_hdl_hash, char * ack_file_name); */
 149 
 150 void process_mail_header(credentials_struct * credentials_ptr ,char * header);
 151 
 152 int has_ref_to_AUTO_nic_hdl(rpsl_object_t * object);
 153 
 154 char * find_email_address(const char * from_line);
 155 
 156 char * replace_refs_to_AUTO_NIC_hdl(rpsl_object_t * object, GHashTable * auto_nic_hash , char *arg);
 157 
 158 int identical(const char * old_version, rpsl_object_t * object);
 159 
 160 int has_AUTO_NIC_hdl(const rpsl_object_t * object);
 161 
 162 rpsl_object_t * replace_AUTO_NIC_hdl(rpsl_object_t * object, char * auto_nic_hdl);
 163 
 164 /* char * get_class_type_char(char * object); */
 165 
 166 void up_string_pack(char *dest, const char *source);
 167 
 168 void UP_add_to_upd_log(const char * filename); 
 169 
 170 void UP_log_networkupdate(const char * object_str, const char * host);
 171 
 172 
 173 #endif

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