1 Index: src/lib/message.c
2 ===================================================================
3 --- src/lib/message.c (révision 6325)
4 +++ src/lib/message.c (copie de travail)
9 +static bool dispatch_it(JCR *jcr, int type, DEST *d)
13 + if (!bit_is_set(type, d->msg_types)) {
17 + /* check if M_FILTER are set */
19 + set_bit(M_MAX, max);
21 + if (d->msg_types <= max) {
25 + /* check this if msg_types contains a level */
26 + switch (jcr->JobLevel) {
28 + ret = bit_is_set(M_FILTER_FULL, d->msg_types);
31 + case L_DIFFERENTIAL:
32 + ret = bit_is_set(M_FILTER_DIFFERENTIAL, d->msg_types);
36 + ret = bit_is_set(M_FILTER_INCREMENTAL, d->msg_types);
40 + /* check this if msg_types contains a jobtype */
41 + switch (jcr->JobType) {
43 + ret = bit_is_set(M_FILTER_BACKUP, d->msg_types);
46 + ret = bit_is_set(M_FILTER_VERIFY, d->msg_types);
49 + ret = bit_is_set(M_FILTER_RESTORE, d->msg_types);
51 + case JT_MIGRATED_JOB:
52 + ret = bit_is_set(M_FILTER_MIGRATION, d->msg_types);
59 * Handle sending the message to the appropriate place
64 for (d=msgs->dest_chain; d; d=d->next) {
65 - if (bit_is_set(type, d->msg_types)) {
66 + /* check for filter her */
67 + if (dispatch_it(jcr, type, d)) {
68 switch (d->dest_code) {
71 Index: src/lib/message.h
72 ===================================================================
73 --- src/lib/message.h (révision 6325)
74 +++ src/lib/message.h (copie de travail)
76 M_RESTORED, /* ls -l of restored files */
77 M_SECURITY, /* security violation */
78 M_ALERT, /* tape alert messages */
79 - M_VOLMGMT /* Volume management messages */
81 + M_VOLMGMT, /* Volume management messages */
83 + /* following options are used as filter */
84 + M_FILTER_VERIFY, /* verify job */
85 + M_FILTER_ADMIN, /* admin job */
86 + M_FILTER_RESTORE, /* restore job */
87 + M_FILTER_MIGRATION, /* migration job */
88 + M_FILTER_BACKUP, /* backup job */
89 + M_FILTER_INCREMENTAL, /* incremental backup job */
90 + M_FILTER_DIFFERENTIAL, /* differential backup job */
91 + M_FILTER_FULL, /* full backup job */
92 + M_FILTER_ALL /* all */
95 #define M_MAX M_VOLMGMT /* keep this updated ! */
97 /* Define message destination structure */
98 /* *** FIXME **** where should be extended to handle multiple values */
99 typedef struct s_dest {
101 + int filter; /* message filter (M_FILTER_) */
102 int dest_code; /* destination (one of the MD_ codes) */
103 int max_len; /* max mail line length */
104 FILE *fd; /* file descriptor */
105 Index: src/lib/parse_conf.c
106 ===================================================================
107 --- src/lib/parse_conf.c (révision 6325)
108 +++ src/lib/parse_conf.c (copie de travail)
113 +/* following types are used as message filter */
114 +static struct s_mfilters msg_filters[] = {
115 + {"admin", M_FILTER_ADMIN},
116 + {"verify" M_FILTER_VERIFY},
117 + {"restore", M_FILTER_RESTORE},
118 + {"full", M_FILTER_FULL},
119 + {"incremental", M_FILTER_INCREMENTAL},
120 + {"differential", M_FILTER_DIFFERENTIAL},
124 /* Used for certain KeyWord tables */
130 + int msg_filter = 0;