/* [<][>][^][v][top][bottom][index][help] */
DEFINITIONS
This source file includes following functions.
- UP_AUTH_OK
- UP_MOR
- UP_NSO
- UP_AUF
- UP_NIY
- UP_ABN
- UP_HOF
- UP_OVF
- UP_OVS
- UP_NOM
- UP_ANE
- UP_FWD
- UP_SYN
- UP_NAM
- UP_INT
- UP_MFF
- UP_MIX
- UP_OKM
- return_codes
- up_ripupd_result_struct
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 *current_source;
77
78 typedef enum {
79 UP_AUTH_OK=0, /* Auth succeded */
/* [<][>][^][v][top][bottom][index][help] */
80 UP_MOR, /* got more than one object from the db, where extected only one */
/* [<][>][^][v][top][bottom][index][help] */
81 UP_NSO, /* no such object */
/* [<][>][^][v][top][bottom][index][help] */
82 UP_AUF, /* auth failed */
/* [<][>][^][v][top][bottom][index][help] */
83 UP_NIY, /* not implemented yet */
/* [<][>][^][v][top][bottom][index][help] */
84 UP_ABN, /* as-block does not exist */
/* [<][>][^][v][top][bottom][index][help] */
85 UP_HOF, /* hierarchical auth failed */
/* [<][>][^][v][top][bottom][index][help] */
86 UP_OVF, /* override failed */
/* [<][>][^][v][top][bottom][index][help] */
87 UP_OVS, /* override syntax error */
/* [<][>][^][v][top][bottom][index][help] */
88 UP_NOM, /* no match. the old & nw versions of the object are not the same */
/* [<][>][^][v][top][bottom][index][help] */
89 UP_ANE, /* AUTO NIC hdl error */
/* [<][>][^][v][top][bottom][index][help] */
90 UP_FWD, /* mntner or as-block creation will be forwarded to <HUMAILBOX> */
/* [<][>][^][v][top][bottom][index][help] */
91 UP_SYN, /* syntax error in the object */
/* [<][>][^][v][top][bottom][index][help] */
92 UP_NAM, /* name of a person/role object cannot be changed */
/* [<][>][^][v][top][bottom][index][help] */
93 UP_INT, /* internal error */
/* [<][>][^][v][top][bottom][index][help] */
94 UP_MFF, /* failed with MAIL-FROM auth method only */
/* [<][>][^][v][top][bottom][index][help] */
95 UP_MIX, /* failed with mix of MAIL-FROM and other auth methods */
/* [<][>][^][v][top][bottom][index][help] */
96 UP_OKM /* Auth succeded but also contained a deprecated MAIL-FROM */
/* [<][>][^][v][top][bottom][index][help] */
97
98 } return_codes;
/* [<][>][^][v][top][bottom][index][help] */
99
100 typedef struct _up_ripupd_result_struct {
101 int result;
102 char * error_str;
103 } up_ripupd_result_struct;
/* [<][>][^][v][top][bottom][index][help] */
104
105
106
107 up_ripupd_result_struct * send_object_db(rpsl_object_t * object, char * assigned_NIC, char * operation);
108
109 /* char * get_class_type(Object *arg); */
110
111 char * get_search_key(rpsl_object_t *object, const char * type);
112
113 /* GSList *get_attributes(Object * o, const char * attrib, const char * text); */
114
115 char * send_and_get(char * host, int port, char * arg);
116
117 int count_objects(char * arg);
118
119 char * take_object(char * arg);
120
121 char * get_as_block(rpsl_object_t *autnum_object);
122
123 char * get_less_specific_domain(rpsl_object_t *domain_object);
124
125 char * get_less_specific_set(rpsl_object_t *set_object, const char *type);
126
127 char * get_less_specific(rpsl_object_t *inetnum_object, const char *type);
128
129 GList *get_mntners(rpsl_object_t * object);
130
131 GList *get_auths(char * object_str);
132
133 GList *get_attr_list(rpsl_object_t * object, const char * attr_type);
134
135 GList *get_mnt_lowers(rpsl_object_t * object);
136
137 char *get_override(rpsl_object_t * object);
138
139 int check_override(char * string);
140
141 GSList * add_to_auth_vector(GSList * list_of_auth_struct, GList * auths, char * mntner_name);
142
143 GSList * get_auth_vector(GList * mntners);
144
145 GList * get_mntnfy_vector(GList * mntners);
146
147 int check_auth(rpsl_object_t *new_object, rpsl_object_t *old_object, const char *type, credentials_struct credentials);
148
149 char * get_old_version(rpsl_object_t * object, char * arg);
150
151 /* int process_object(char * arg, credentials_struct credentials, GHashTable * NIC_hdl_hash, char * ack_file_name); */
152
153 void process_mail_header(credentials_struct * credentials_ptr ,char * header);
154
155 int has_ref_to_AUTO_nic_hdl(rpsl_object_t * object);
156
157 char * find_email_address(const char * from_line);
158
159 char * replace_refs_to_AUTO_NIC_hdl(rpsl_object_t * object, GHashTable * auto_nic_hash , char *arg);
160
161 int identical(const char * old_version, rpsl_object_t * object);
162
163 int has_AUTO_NIC_hdl(const rpsl_object_t * object);
164
165 rpsl_object_t * replace_AUTO_NIC_hdl(rpsl_object_t * object, char * auto_nic_hdl);
166
167 /* char * get_class_type_char(char * object); */
168
169 void up_string_pack(char *dest, const char *source);
170
171 void UP_add_to_upd_log(const char * filename);
172
173 void UP_log_networkupdate(const char * object_str, const char * host);
174
175
176 #endif