RES_ITEM msgs_items[] = {
{"Name", store_name, ITEM(res_msgs.hdr.name), 0, 0, 0},
{"Description", store_str, ITEM(res_msgs.hdr.desc), 0, 0, 0},
- {"MailCommand", store_str, ITEM(res_msgs.mail_cmd), 0, 0, 0},
- {"OperatorCommand", store_str, ITEM(res_msgs.operator_cmd), 0, 0, 0},
+ {"MailCommand", store_str, ITEM(res_msgs.mail_cmd), 0, ITEM_ALLOW_DUPS, 0},
+ {"OperatorCommand", store_str, ITEM(res_msgs.operator_cmd), 0, ITEM_ALLOW_DUPS, 0},
{"Syslog", store_msgs, ITEM(res_msgs), MD_SYSLOG, 0, 0},
{"Mail", store_msgs, ITEM(res_msgs), MD_MAIL, 0, 0},
{"MailOnError", store_msgs, ITEM(res_msgs), MD_MAIL_ON_ERROR, 0, 0},
}
/* If this triggers, take a look at lib/parse_conf.h */
if (i >= MAX_RES_ITEMS) {
- Emsg1(M_ERROR_TERM, 0, _("Too many items in %s resource\n"), resources[rindex]);
+ Emsg1(M_ERROR_TERM, 0, _("Too many directives in \"%s\" resource\n"), resources[rindex].name);
}
}
}
{
lex_get_token(lc, T_STRING);
if (pass == 1) {
+ if (*(item->value) && (item->flags & ITEM_ALLOW_DUPS)) {
+ free(*(item->value));
+ *(item->value) = NULL;
+ }
if (*(item->value)) {
scan_err5(lc, _("Attempt to redefine \"%s\" from \"%s\" to \"%s\" referenced on line %d : %s\n"),
item->name, *(item->value), lc->str, lc->line_no, lc->line);