summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSami Kerola <kerolasa@iki.fi>2011-12-18 16:24:36 +0100
committerSami Kerola <kerolasa@iki.fi>2011-12-20 17:30:55 +0100
commita10282422b9386a2192c1603bad82b81dfcb46e7 (patch)
tree001e7dafcb5deb52144a7b87cc9f289927e707a9
parent5862f47b96afe21490c7d891b492bd31003ab77a (diff)
downloadprocps-ng-a10282422b9386a2192c1603bad82b81dfcb46e7.tar.gz
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>
-rw-r--r--sysctl.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/sysctl.c b/sysctl.c
index ee03ee9..b4e0dea 100644
--- a/sysctl.c
+++ b/sysctl.c
@@ -164,11 +164,6 @@ static int ReadSetting(const char *restrict const name) {
outname = xstrdup(name);
slashdot(outname,'/','.'); /* change / to . */
- if (pattern && !pattern_match(outname, pattern)){
- free(outname);
- return 0;
- }
-
/* used to open the file */
tmpname = xmalloc(strlen(name)+strlen(PROC_PATH)+2);
strcpy(tmpname, PROC_PATH);
@@ -198,6 +193,11 @@ static int ReadSetting(const char *restrict const name) {
goto out;
}
+ if (pattern && !pattern_match(outname, pattern)){
+ free(outname);
+ return 0;
+ }
+
fp = fopen(tmpname, "r");
if (!fp) {