* Initialize the static structure to zeros, then
* apply all the default values.
*/
-void init_resource(int type, RES_ITEM *items)
+void init_resource(int type, RES_ITEM *items, int pass)
{
int i;
int rindex = type - r_first;
*(uint64_t *)(items[i].value) = (uint64_t)items[i].default_value;
} else if (items[i].handler == store_time) {
*(utime_t *)(items[i].value) = (utime_t)items[i].default_value;
+ } else if (pass == 1 && items[i].handler == store_addresses) {
+ init_default_addresses((dlist**)items[i].value, items[i].default_value);
}
}
/* If this triggers, take a look at lib/parse_conf.h */
scan_err3(lc, _("Could not find config Resource %s referenced on line %d : %s\n"),
lc->str, lc->line_no, lc->line);
}
+ if (*(item->value)) {
+ scan_err3(lc, _("Attempt to redefine resource \"%s\" referenced on line %d : %s\n"),
+ lc->str, lc->line_no, lc->line);
+ }
*(item->value) = (char *)res;
}
scan_to_eol(lc);
state = p_resource;
items = resources[i].items;
res_type = resources[i].rcode;
- init_resource(res_type, items);
+ init_resource(res_type, items, pass);
break;
}
if (state == p_none) {
}
return res;
}
+
+RES **new_res_head()
+{
+ int size = (r_last - r_first + 1) * sizeof(RES *);
+ RES **res = (RES **)malloc(size);
+ memset(res, 0, size);
+ return res;
+}