if (macaddr != NULL) {
free(macstring);
}
+ fclose(dhcpd_leases);
return 0;
}
range_p->backups = 0;
range_p->shared_net = shared_p;
num_ranges++;
- if (RANGES < num_ranges) {
- errx(EXIT_FAILURE,
- "parse_config: Range space full! Increase RANGES and recompile.");
+ if (RANGES < num_ranges + 1) {
+ RANGES *= 2;
+ ranges =
+ safe_realloc(ranges,
+ sizeof(struct
+ range_t) *
+ RANGES);
+ range_p = ranges + num_ranges;
}
newclause = true;
break;
* away by reallocationg
* more space. */
errx(EXIT_FAILURE,
- "parse_config: End of shared-network space, increase SHARED_NETWORKS_NAMES and recompile");
+ "parse_config: increase default.h SHARED_NETWORKS_NAMES and recompile");
+ }
+ if (SHARED_NETWORKS <
+ num_shared_networks + 2) {
+ /* FIXME: make this
+ * away by reallocationg
+ * more space. */
+ errx(EXIT_FAILURE,
+ "parse_config: increase default.h SHARED_NETWORKS and recompile");
}
argument = 0;
braces_shared = braces;
}
}
free(word);
+ fclose(dhcpd_config);
return next_free_shared_name;
}