sysctl: enable pattern matching with path
Pattern matching support in `sysctl: implement --pattern option' commit did not work when variable path was defined, for example $ sysctl net.ipv4 -r arp.ignore gave no output. Reason being was tht the pattern was matched agains the specified argument and not the output variable list. Signed-off-by: Sami Kerola <kerolasa@iki.fi>
This commit is contained in:
parent
5862f47b96
commit
a10282422b
10
sysctl.c
10
sysctl.c
@ -164,11 +164,6 @@ static int ReadSetting(const char *restrict const name) {
|
|||||||
outname = xstrdup(name);
|
outname = xstrdup(name);
|
||||||
slashdot(outname,'/','.'); /* change / to . */
|
slashdot(outname,'/','.'); /* change / to . */
|
||||||
|
|
||||||
if (pattern && !pattern_match(outname, pattern)){
|
|
||||||
free(outname);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* used to open the file */
|
/* used to open the file */
|
||||||
tmpname = xmalloc(strlen(name)+strlen(PROC_PATH)+2);
|
tmpname = xmalloc(strlen(name)+strlen(PROC_PATH)+2);
|
||||||
strcpy(tmpname, PROC_PATH);
|
strcpy(tmpname, PROC_PATH);
|
||||||
@ -198,6 +193,11 @@ static int ReadSetting(const char *restrict const name) {
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (pattern && !pattern_match(outname, pattern)){
|
||||||
|
free(outname);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
fp = fopen(tmpname, "r");
|
fp = fopen(tmpname, "r");
|
||||||
|
|
||||||
if (!fp) {
|
if (!fp) {
|
||||||
|
Loading…
Reference in New Issue
Block a user