}
if (type->type == ACO_GLOBAL && *field) {
- if (aco_set_defaults(type, cat, *field)) {
- ast_log(LOG_ERROR, "In %s: Setting defaults for %s failed\n", file->filename, cat);
- return -1;
- }
if (aco_process_category_options(type, cfg, cat, *field)) {
ast_log(LOG_ERROR, "In %s: Processing options for %s failed\n", file->filename, cat);
return -1;
while (res != ACO_PROCESS_ERROR && (file = info->files[x++])) {
const char *filename = file->filename;
+ struct aco_type *match;
+ int i;
+
+ /* set defaults for global objects */
+ for (i = 0, match = file->types[i]; match; match = file->types[++i]) {
+ void **field = info->internal->pending + match->item_offset;
+
+ if (match->type != ACO_GLOBAL || !*field) {
+ continue;
+ }
+
+ if (aco_set_defaults(match, match->category, *field)) {
+ ast_log(LOG_ERROR, "In %s: Setting defaults for %s failed\n", file->filename, match->category);
+ res = ACO_PROCESS_ERROR;
+ break;
+ }
+ }
+
+ if (res == ACO_PROCESS_ERROR) {
+ break;
+ }
+
try_alias:
if (!(cfg = ast_config_load(filename, cfg_flags))) {
if (file->alias && strcmp(file->alias, filename)) {