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 |