1    | /***************************************
2    |   $Revision: 1.9 $
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   | /* global config variables */
54   | extern char *mailcmd;
55   | extern char *tmpdir;
56   | extern char *notitxt;
57   | extern char *fwtxt;
58   | extern char *humailbox;
59   | extern char *notimailtxt;
60   | extern char *fwmailtxt;
61   | extern char *mtfwheader;
62   | extern char *mtfwtxt;
63   | extern char *query_host;
64   | extern int query_port;
65   | extern char *cn_subject_add;
66   | extern char *cn_subject_del;
67   | extern char *cn_explain_add;
68   | extern char *cn_explain_del;
69   | extern char *cn_overlap_add;
70   | extern char *cn_overlap_del;
71   | extern char *cno_subject_add;
72   | extern char *cno_subject_del;
73   | extern char *cno_explain_add;
74   | extern char *cno_explain_del;
75   | extern char *cno_overlap_add;
76   | extern char *cno_overlap_del;  
77   | 
78   | #define ADDITION 0
79   | #define DELETION 1
80   | 
81   | char * NT_ntfy_filename_generate( const char * tmpdir, const char * e_mail);
82   | 
83   | char * NT_forwd_filename_generate( const char * tmpdir, const char * e_mail);
84   | 
85   | char * NT_crossntfy_filename_generate( const char * tmpdir, const char * e_mail);
86   | 
87   | void NT_add_to_ntfy( char * filename, char * fmt, ... );
88   | 
89   | void NT_send_ntfy( const char * filename, const char * to_address, const char * mailercommand);
90   | 
91   | void NT_log_ntfy( const char * filename, const char * logfilename);
92   | 
93   | void NT_delete_ntfy( const char * filename);
94   | 
95   | void NT_send_ntfy_list( GHashTable * filehash, char * mailercommand);
96   | 
97   | void NT_log_ntfy_list( GHashTable * filehash, char * log_file);
98   | 
99   | void NT_delete_ntfy_list( GHashTable * filehash);
100  | 
101  | GSList * NT_gather_ntfy_addresses( const char * old_object, const char * new_object);
102  | 
103  | void NT_write_all_ntfs(char * old_object, char * new_object, /*const char * notif_log,
104  |                        const char * forw_log,    const char * cross_log,*/ const char * tempdir,
105  |                        GHashTable * ntfy_hash,  GHashTable * forwd_hash, GHashTable * cross_hash, 
106  |                        char * from_address);
107  | 
108  | void NT_write_all_frwds(char * old_object, char * new_object, /*const char * notif_log,
109  |                        const char * forw_log,    const char * cross_log,*/ const char * tempdir,
110  |                        GHashTable * ntfy_hash,  GHashTable * forwd_hash, GHashTable * cross_hash, 
111  |                        const char * from_address); 
112  | 
113  | void NT_forw_create_req(const char * object);
114  |