1    | /***************************************
2    |   $Revision: 1.11 $
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                              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   | 
35   | #include <stdarg.h>
36   | #include <stdio.h>
37   | #include <strings.h>
38   | #include <unistd.h>
39   | #include <stdlib.h>
40   | #include <time.h>
41   | #include <glib.h>
42   | #include "UP_util.h"
43   | 
44   | typedef struct {
45   |       GSList * less_spec; 
46   |       GSList * exact_match;
47   |       GSList * more_spec;
48   | } overlap_routes;
49   | 
50   | 
51   | extern int tracing;
52   | extern int reading_from_mail;
53   | extern int networkupdate;
54   | /* global config variables */
55   | extern char *mailcmd;
56   | extern char *tmpdir;
57   | extern char *notitxt;
58   | extern char *fwtxt;
59   | extern char *humailbox;
60   | extern char *notimailtxt;
61   | extern char *notinetworktxt;
62   | extern char *fwmailtxt;
63   | extern char *mtfwheader;
64   | extern char *mtfwtxt;
65   | extern char *query_host;
66   | extern int query_port;
67   | extern char *cn_subject_add;
68   | extern char *cn_subject_del;
69   | extern char *cn_explain_add;
70   | extern char *cn_explain_del;
71   | extern char *cn_overlap_add;
72   | extern char *cn_overlap_del;
73   | extern char *cno_subject_add;
74   | extern char *cno_subject_del;
75   | extern char *cno_explain_add;
76   | extern char *cno_explain_del;
77   | extern char *cno_overlap_add;
78   | extern char *cno_overlap_del;  
79   | 
80   | #define ADDITION 0
81   | #define DELETION 1
82   | 
83   | char * NT_ntfy_filename_generate( const char * tmpdir, const char * e_mail);
84   | 
85   | char * NT_forwd_filename_generate( const char * tmpdir, const char * e_mail);
86   | 
87   | char * NT_crossntfy_filename_generate( const char * tmpdir, const char * e_mail);
88   | 
89   | void NT_add_to_ntfy( char * filename, char * fmt, ... );
90   | 
91   | void NT_send_ntfy( const char * filename, const char * to_address, const char * mailercommand);
92   | 
93   | void NT_log_ntfy( const char * filename, const char * logfilename);
94   | 
95   | void NT_delete_ntfy( const char * filename);
96   | 
97   | void NT_send_ntfy_list( GHashTable * filehash, char * mailercommand);
98   | 
99   | void NT_log_ntfy_list( GHashTable * filehash, char * log_file);
100  | 
101  | void NT_delete_ntfy_list( GHashTable * filehash);
102  | 
103  | GSList * NT_gather_ntfy_addresses( const char * old_object, const char * new_object);
104  | 
105  | void NT_write_all_ntfs(char * old_object, char * new_object, char * formatted_object,
106  |                        const char * tempdir, GHashTable * ntfy_hash,  
107  |                        GHashTable * forwd_hash, GHashTable * cross_hash, 
108  |                        char * from_address);
109  | 
110  | void NT_write_all_frwds(char * old_object, char * new_object, const char * tempdir,
111  |                        GHashTable * ntfy_hash,  GHashTable * forwd_hash, GHashTable * cross_hash, 
112  |                        const char * from_address); 
113  | 
114  | void NT_forw_create_req(const char * object);
115  |