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 |