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