25 |
* Simple context-free grammar for parsing the control file. |
* Simple context-free grammar for parsing the control file. |
26 |
* |
* |
27 |
* @author Jan-Henrik Haukeland, <hauk@tildeslash.com> |
* @author Jan-Henrik Haukeland, <hauk@tildeslash.com> |
28 |
* @author Olivier Beyssac, <ob@r14.freenix.oraddmailg> |
* @author Olivier Beyssac, <ob@r14.freenix.org> |
29 |
* @author Kianusch Sayah Karadji <kianusch.sayah.karadji@sk-tech.net> |
* @author Kianusch Sayah Karadji <kianusch.sayah.karadji@sk-tech.net> |
30 |
* @author Martin Pala <martin.pala@iol.cz> |
* @author Martin Pala <martin.pala@iol.cz> |
31 |
* @author Christian Hopp <chopp@iei.tu-clausthal.de> |
* @author Christian Hopp <chopp@iei.tu-clausthal.de> |
232 |
static void initialize(); |
static void initialize(); |
233 |
static void postparse(); |
static void postparse(); |
234 |
static void addservice(Service_T); |
static void addservice(Service_T); |
235 |
static void addmail(char *, Mail_T, unsigned int); |
static void addmail(char *, Mail_T, Mail_T *, unsigned int); |
236 |
static void createservice(int, char *, char *); |
static void createservice(int, char *, char *); |
237 |
static void adddependant(char *); |
static void adddependant(char *); |
238 |
static void addport(struct PortSet *); |
static void addport(struct PortSet *); |
331 |
| statement_list statement |
| statement_list statement |
332 |
; |
; |
333 |
|
|
334 |
statement : setdaemon |
statement : setalert |
335 |
|
| setdaemon |
336 |
| setlog |
| setlog |
337 |
| setmailservers |
| setmailservers |
338 |
| setmailformat |
| setmailformat |
438 |
| depend |
| depend |
439 |
; |
; |
440 |
|
|
441 |
|
setalert : SET alertmail '{' eventoptionlist '}' formatlist { |
442 |
|
addmail($<string>2, &mailset, &Run.maillist, eventset); |
443 |
|
} |
444 |
|
| SET alertmail formatlist { |
445 |
|
addmail($<string>2, &mailset, &Run.maillist, eventset); |
446 |
|
} |
447 |
|
; |
448 |
|
|
449 |
setdaemon : SET DAEMON NUMBER { |
setdaemon : SET DAEMON NUMBER { |
450 |
if(!Run.isdaemon || ihp.daemon) { |
if(!Run.isdaemon || ihp.daemon) { |
451 |
ihp.daemon= TRUE; |
ihp.daemon= TRUE; |
812 |
|
|
813 |
|
|
814 |
alert : alertmail '{' eventoptionlist '}' formatlist { |
alert : alertmail '{' eventoptionlist '}' formatlist { |
815 |
addmail($<string>1, &mailset, eventset); |
addmail($<string>1, &mailset, ¤t->maillist, eventset); |
816 |
} |
} |
817 |
| alertmail formatlist { |
| alertmail formatlist { |
818 |
addmail($<string>1, &mailset, eventset); |
addmail($<string>1, &mailset, ¤t->maillist, eventset); |
819 |
} |
} |
820 |
; |
; |
821 |
|
|
1193 |
FREE(Run.bind_addr); |
FREE(Run.bind_addr); |
1194 |
Run.bind_addr= NULL; |
Run.bind_addr= NULL; |
1195 |
} |
} |
1196 |
|
if(Run.maillist) { |
1197 |
|
gc_mail_list(&Run.maillist); |
1198 |
|
} |
1199 |
if(Run.mailservers) { |
if(Run.mailservers) { |
1200 |
gc_mail_server(&Run.mailservers); |
gc_mail_server(&Run.mailservers); |
1201 |
} |
} |
1334 |
|
|
1335 |
/* |
/* |
1336 |
* Add the given mailaddress with the apropriate alert notification |
* Add the given mailaddress with the apropriate alert notification |
1337 |
* values and mail attributes to the current service's mailinglist. |
* values and mail attributes to the given mailinglist. |
1338 |
*/ |
*/ |
1339 |
static void addmail(char *mailto, Mail_T f, unsigned int events) { |
static void addmail(char *mailto, Mail_T f, Mail_T *l, unsigned int events) { |
1340 |
|
|
1341 |
Mail_T m; |
Mail_T m; |
1342 |
|
|
1355 |
m->subject= f->subject; |
m->subject= f->subject; |
1356 |
m->message= f->message; |
m->message= f->message; |
1357 |
|
|
1358 |
m->next= current->maillist; |
m->next= *l; |
1359 |
current->maillist= m; |
*l= m; |
1360 |
|
|
1361 |
reset_mailset(); |
reset_mailset(); |
1362 |
|
|