[git commit] ifupdown: support "source-directory" stanza
Denys Vlasenko
vda.linux at googlemail.com
Sun Sep 30 11:23:05 UTC 2018
commit: https://git.busybox.net/busybox/commit/?id=14454b3071c7a5c053fde8eed416ab3b2f8475fb
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master
Support the "source-directory" stanza from ifupdown[1]. source-directory
will include all files in the named directory. Similar to the Busybox
version of the "source" stanza, this version of source-directory does
not currently support shell wildcards.
We only check that the stanza starts with "source-dir" as ifupdown does[2].
[1] https://manpages.debian.org/stretch/ifupdown/interfaces.5.en.html#INCLUDING_OTHER_FILES
[2] https://salsa.debian.org/debian/ifupdown/blob/0.8.33/config.c#L498
function old new delta
read_interfaces 1150 1241 +91
Signed-off-by: Brandon Maier <brandon.maier at rockwellcollins.com>
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
networking/ifupdown.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/networking/ifupdown.c b/networking/ifupdown.c
index 5481134e5..80fce87a6 100644
--- a/networking/ifupdown.c
+++ b/networking/ifupdown.c
@@ -1022,6 +1022,22 @@ static struct interfaces_file_t *read_interfaces(const char *filename, struct in
currently_processing = NONE;
} else if (strcmp(first_word, "source") == 0) {
read_interfaces(next_word(&rest_of_line), defn);
+ } else if (is_prefixed_with(first_word, "source-dir")) {
+ const char *dirpath;
+ DIR *dir;
+ struct dirent *entry;
+
+ dirpath = next_word(&rest_of_line);
+ dir = xopendir(dirpath);
+ while ((entry = readdir(dir)) != NULL) {
+ char *path;
+ if (entry->d_name[0] == '.')
+ continue;
+ path = concat_path_file(dirpath, entry->d_name);
+ read_interfaces(path, defn);
+ free(path);
+ }
+ closedir(dir);
} else {
switch (currently_processing) {
case IFACE:
More information about the busybox-cvs
mailing list