modules/up/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