To improve the usability better use case-insensitive pattern-matching in ifstat, nstat and ss tools.
Signed-off-by: Anton Danilov <littlesmilingcl...@gmail.com> --- man/man8/rtacct.8 | 7 +++++++ misc/ifstat.c | 2 +- misc/nstat.c | 2 +- misc/ss.c | 2 +- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/man/man8/rtacct.8 b/man/man8/rtacct.8 index ccdbf6ca..988a6d1b 100644 --- a/man/man8/rtacct.8 +++ b/man/man8/rtacct.8 @@ -14,6 +14,13 @@ and .B rtacct are simple tools to monitor kernel snmp counters and network interface statistics. +.B nstat +can filter kernel snmp counters by name with one or several specified wildcards. Wildcards are case-insensitive and can include special symbols +.B ? +and +.B * +. + .SH OPTIONS .B \-h, \-\-help Print help diff --git a/misc/ifstat.c b/misc/ifstat.c index 60efe6cb..03327af8 100644 --- a/misc/ifstat.c +++ b/misc/ifstat.c @@ -104,7 +104,7 @@ static int match(const char *id) return 1; for (i = 0; i < npatterns; i++) { - if (!fnmatch(patterns[i], id, 0)) + if (!fnmatch(patterns[i], id, FNM_CASEFOLD)) return 1; } return 0; diff --git a/misc/nstat.c b/misc/nstat.c index 425e75ef..88f52eaf 100644 --- a/misc/nstat.c +++ b/misc/nstat.c @@ -114,7 +114,7 @@ static int match(const char *id) return 1; for (i = 0; i < npatterns; i++) { - if (!fnmatch(patterns[i], id, 0)) + if (!fnmatch(patterns[i], id, FNM_CASEFOLD)) return 1; } return 0; diff --git a/misc/ss.c b/misc/ss.c index f3d01812..5aa10e4a 100644 --- a/misc/ss.c +++ b/misc/ss.c @@ -1670,7 +1670,7 @@ static int unix_match(const inet_prefix *a, const inet_prefix *p) return 1; if (addr == NULL) addr = ""; - return !fnmatch(pattern, addr, 0); + return !fnmatch(pattern, addr, FNM_CASEFOLD); } static int run_ssfilter(struct ssfilter *f, struct sockstat *s) -- 2.26.2