1    | /***************************************
2    |   $Revision: 1.15 $
3    | 
4    |   NT (Notifications) module
5    | 
6    |   Status: NOT REVIEWED, NOT TESTED
7    | 
8    |   Author(s):       Engin Gunduz
9    | 
10   |   ******************/ /******************
11   |   Modification History:
12   |         engin (06/07/2000) Created.
13   |   ******************/ /******************
14   |   Copyright (c) 2000,2001,2002                    RIPE NCC
15   |  
16   |   All Rights Reserved
17   |   
18   |   Permission to use, copy, modify, and distribute this software and its
19   |   documentation for any purpose and without fee is hereby granted,
20   |   provided that the above copyright notice appear in all copies and that
21   |   both that copyright notice and this permission notice appear in
22   |   supporting documentation, and that the name of the author not be
23   |   used in advertising or publicity pertaining to distribution of the
24   |   software without specific, written prior permission.
25   |   
26   |   THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
27   |   ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS; IN NO EVENT SHALL
28   |   AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
29   |   DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
30   |   AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
31   |   OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
32   |  ***************************************/
33   | 
34   | #ifndef NOTIFICATION_H
35   | #define NOTIFICATION_H 
36   | 
37   | 
38   | #include <stdarg.h>
39   | #include <stdio.h>
40   | #include <strings.h>
41   | #include <unistd.h>
42   | #include <stdlib.h>
43   | #include <time.h>
44   | #include <glib.h>
45   | #include "UP_util.h"
46   | 
47   | typedef struct {
48   |       GList * less_spec; 
49   |       GList * exact_match;
50   |       GList * more_spec;
51   | } overlap_routes;
52   | 
53   | 
54   | extern int tracing;
55   | extern int reading_from_mail;
56   | extern int networkupdate;
57   | /* global config variables */
58   | extern char *mailcmd;
59   | extern char *tmpdir;
60   | extern char *notitxt;
61   | extern char *fwtxt;
62   | extern char *humailbox;
63   | extern char *notimailtxt;
64   | extern char *notinetworktxt;
65   | extern char *fwmailtxt;
66   | extern char *mtfwheader;
67   | extern char *mtfwtxt;
68   | extern char *query_host;
69   | extern int query_port;
70   | extern char *cn_subject_add;
71   | extern char *cn_subject_del;
72   | extern char *cn_explain_add;
73   | extern char *cn_explain_del;
74   | extern char *cn_overlap_add;
75   | extern char *cn_overlap_del;
76   | extern char *cno_subject_add;
77   | extern char *cno_subject_del;
78   | extern char *cno_explain_add;
79   | extern char *cno_explain_del;
80   | extern char *cno_overlap_add;
81   | extern char *cno_overlap_del;  
82   | 
83   | #define ADDITION 0
84   | #define DELETION 1
85   | 
86   | char * NT_ntfy_filename_generate( const char * tmpdir, const char * e_mail);
87   | 
88   | char * NT_forwd_filename_generate( const char * tmpdir, const char * e_mail);
89   | 
90   | char * NT_crossntfy_filename_generate( const char * tmpdir, const char * e_mail);
91   | 
92   | void NT_add_to_ntfy( char * filename, char * fmt, ... );
93   | 
94   | void NT_send_ntfy( const char * filename, const char * to_address, const char * mailercommand);
95   | 
96   | void NT_log_ntfy( const char * filename, const char * logfilename);
97   | 
98   | void NT_delete_ntfy( const char * filename);
99   | 
100  | void NT_send_ntfy_list( GHashTable * filehash, char * mailercommand);
101  | 
102  | void NT_log_ntfy_list( GHashTable * filehash, char * log_file);
103  | 
104  | void NT_delete_ntfy_list( GHashTable * filehash);
105  | 
106  | GList * NT_gather_ntfy_addresses( const char * old_object, const char * new_object);
107  | 
108  | GList *NT_compare_lists(GList *old_irts, GList *new_irts, int option);
109  | 
110  | void NT_write_all_ntfs(char * old_object, char * new_object, char * formatted_object,
111  |                        const char * tempdir, GHashTable * ntfy_hash,  
112  |                        GHashTable * forwd_hash, GHashTable * cross_hash, 
113  |                        char * from_address);
114  | 
115  | void NT_write_all_frwds(char * old_object, char * new_object, const char * tempdir,
116  |                        GHashTable * ntfy_hash,  GHashTable * forwd_hash, GHashTable * cross_hash, 
117  |                        const char * from_address); 
118  | 
119  | void NT_forw_create_req(const char * object);
120  | 
121  | 
122  | #endif