modules/up/dbupdate.h
/* [<][>][^][v][top][bottom][index][help] */
FUNCTIONS
This source file includes following functions.
1 #ifndef UPDATE_UPPER_H
2 #define UPDATE_UPPER_H
3
4
5 #include <stdio.h>
6 #include <stdlib.h>
7 #include <string.h>
8 #include <stubs.h>
9 #include <string>
10 #include <glib.h>
11 #include <iostream.h>
12 #include <fstream>
13
14 #include <netdb.h>
15 #include <sys/types.h>
16 #include <netinet/in.h>
17 #include <sys/socket.h>
18 #include <errno.h>
19 #include <unistd.h>
20
21 #include <config.h>
22 #include <istream.h>
23 #include "rpsl/object.hh"
24 #include "util/rusage.hh"
25 #include "util/debug.hh"
26 #include "util/trace.hh"
27 #include "util/Argv.hh"
28 #include "util/version.hh"
29 #ifdef IRR_NEEDED
30 #include "irr/irr.hh"
31 #include "irr/rawhoisc.hh"
32 #endif // IRR_NEEDED
33 #include "rpsl/schema.hh"
34 #include "erroutines.h"
35 #include "AU_util.h"
36 #include "ack.h"
37 #define private private_xx
38 #include "mm.h"
39 #include "mysql_driver.h"
40 //#include "mail_parser.h"
41 #undef private
42
43
44 #define MAXDATASIZE 100 /* max number of bytes we can get at once */
45
46 #define OVR_OK 0 /* override succeded */
47
48
49 #define ACK_FILE_PREFIX "ack"
50
51 typedef enum {
52 UP_AUTH_OK=0, /* Auth succeded */
53 UP_MOR, /* got more than one object from the db, where extected only one */
54 UP_NSO, /* no such object */
55 UP_AUF, /* auth failed */
56 UP_NIY, /* not implemented yet */
57 UP_ABN, /* as-block does not exist */
58 UP_HOF, /* hierarchical auth failed */
59 UP_OVF, /* override failed */
60 UP_OVS, /* override syntax error */
61 UP_NOM, /* no match. the old & nw versions of the object are not the same */
62 UP_ANE, /* AUTO NIC hdl error */
63 UP_FWD, /* mntner or as-block creation will be forwarded to <HUMAILBOX> */
64 UP_SYN, /* syntax error in the object */
65 UP_INT /* internal error */
66
67 } return_codes;
68
69 typedef struct _up_ripupd_result_struct {
70 int result;
71 char * error_str;
72 } up_ripupd_result_struct;
73
74
75 #ifdef __cplusplus
76 extern "C" {
77 #endif
78
79
80
81 up_ripupd_result_struct * send_object_db(char * arg, char * assigned_NIC, char * operation);
82
83 char * get_class_type(Object *arg);
84
85 char * get_search_key(Object *arg, char * type, const char * text);
86
87 GSList *get_attributes(Object * o, const char * attrib, const char * text);
88
89 char * send_and_get(char * host, int port, char * arg);
90
91 int count_objects(char * arg);
92
93 char * take_object(char * arg);
94
95 char * get_as_block(char *autnum_object);
96
97 char * get_less_specific_domain(char *domain_object);
98
99 char * get_less_specific_set(char *set_object, char *type);
100
101 char * get_less_specific(char *inetnum_object, char *type);
102
103 GSList *get_mntners(char * object);
104
105 GSList *get_auths(char * object);
106
107 GSList *get_attr_list(char * object, char * attr_type);
108
109 GSList *get_mnt_lowers(char * object);
110
111 char *get_override(char * object);
112
113 int check_override(char * string);
114
115 GSList * add_to_auth_vector(GSList * list_of_auth_struct, GSList * auths, char * mntner_name);
116
117 GSList * get_auth_vector(GSList * mntners);
118
119 GSList * get_mntnfy_vector(GSList * mntners);
120
121 int check_auth(char *new_object, char *old_object, char *type, credentials_struct credentials);
122
123 char * get_old_version(char * arg);
124
125 //int process_object(char * arg, credentials_struct credentials, GHashTable * NIC_hdl_hash, char * ack_file_name);
126
127 void process_mail_header(credentials_struct * credentials_ptr ,char * header);
128
129 int has_ref_to_AUTO_nic_hdl(const char * object);
130
131 char * find_email_address(const char * from_line);
132
133 char * replace_refs_to_AUTO_NIC_hdl(char * changed_obj, char * arg, GHashTable * auto_nic_hash);
134
135 int identical(const char * old_version, const char * new_version);
136
137 int has_AUTO_NIC_hdl(const char * object);
138
139 char * replace_AUTO_NIC_hdl(char * arg, char * auto_nic_hdl);
140
141 char * get_class_type_char(char * object);
142
143 void up_string_pack(char *dest, const char *source);
144
145 void UP_add_to_upd_log(const char * filename);
146
147 void UP_log_networkupdate(const char * object, const char * host);
148
149 #ifdef __cplusplus
150 }
151 #endif
152
153
154 #endif