0e611af4109f46d86938e2e6f7062332b32ba528
[openwrt/staging/mans0n.git] /
1 From 5c464ef62e02dea96f830425cf43da7f6a272b4c Mon Sep 17 00:00:00 2001
2 From: Simon Kelley <simon@thekelleys.org.uk>
3 Date: Fri, 29 Mar 2019 23:11:05 +0000
4 Subject: [PATCH 51/57] Allow more then one --conf-file on the command line.
5
6 Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
7 ---
8 man/dnsmasq.8 | 5 +++--
9 src/option.c | 11 ++++++++---
10 2 files changed, 11 insertions(+), 5 deletions(-)
11
12 --- a/man/dnsmasq.8
13 +++ b/man/dnsmasq.8
14 @@ -1942,8 +1942,9 @@ cannot be lower than 1025 unless dnsmasq
15 of concurrent TFTP connections is limited by the size of the port range.
16 .TP
17 .B \-C, --conf-file=<file>
18 -Specify a different configuration file. The \fB--conf-file\fP option is also allowed in
19 -configuration files, to include multiple configuration files. A
20 +Specify a configuration file. The presence of this option stops dnsmasq from reading the default configuration
21 +file (normally /etc/dnsmasq.conf). Multiple files may be specified by repeating the option
22 +either on the command line or in configuration files. A
23 filename of "-" causes dnsmasq to read configuration from stdin.
24 .TP
25 .B \-7, --conf-dir=<directory>[,<file-extension>......],
26 --- a/src/option.c
27 +++ b/src/option.c
28 @@ -5012,9 +5012,14 @@ void read_opts(int argc, char **argv, ch
29 }
30 else if (option == 'C')
31 {
32 - if (conffile)
33 - free(conffile);
34 - conffile = opt_string_alloc(arg);
35 + if (!conffile)
36 + conffile = opt_string_alloc(arg);
37 + else
38 + {
39 + char *extra = opt_string_alloc(arg);
40 + one_file(extra, 0);
41 + free(extra);
42 + }
43 }
44 else
45 {