summaryrefslogtreecommitdiffstats
path: root/sys/fs/devfs/devfs_rule.c
diff options
context:
space:
mode:
authordd <dd@FreeBSD.org>2002-10-08 04:21:54 +0000
committerdd <dd@FreeBSD.org>2002-10-08 04:21:54 +0000
commiteff660789ca1ead1552913158e5d63c446ae9779 (patch)
tree7b2728a9c740406e8461e5a2bcaab1ec8d8491c8 /sys/fs/devfs/devfs_rule.c
parentad775810328c27239d98ff30a2094979615da054 (diff)
downloadFreeBSD-src-eff660789ca1ead1552913158e5d63c446ae9779.zip
FreeBSD-src-eff660789ca1ead1552913158e5d63c446ae9779.tar.gz
Treat the pathptrn field as a real pattern with the aid of fnmatch().
Diffstat (limited to 'sys/fs/devfs/devfs_rule.c')
-rw-r--r--sys/fs/devfs/devfs_rule.c16
1 files changed, 1 insertions, 15 deletions
diff --git a/sys/fs/devfs/devfs_rule.c b/sys/fs/devfs/devfs_rule.c
index 74da699..47a0d91 100644
--- a/sys/fs/devfs/devfs_rule.c
+++ b/sys/fs/devfs/devfs_rule.c
@@ -630,7 +630,6 @@ devfs_rule_matchpath(struct devfs_krule *dk, struct devfs_dirent *de)
struct devfs_rule *dr = &dk->dk_rule;
char *pname;
dev_t dev;
- int plen;
dev = devfs_rule_getdev(de);
if (dev != NULL)
@@ -640,20 +639,7 @@ devfs_rule_matchpath(struct devfs_krule *dk, struct devfs_dirent *de)
return (0);
KASSERT(pname != NULL, ("devfs_rule_matchpath: NULL pname"));
- /*
- * XXX: Interpret dr_pathptrn as a real pattern (support '*',
- * '?', and perhaps brace expansion). For now, we only
- * support one trailing asterisk.
- */
- plen = strlen(dr->dr_pathptrn);
- if (dr->dr_pathptrn[plen - 1] == '*') {
- if (strlen(pname) >= plen - 1 &&
- strncmp(dr->dr_pathptrn, pname, plen - 1) == 0)
- return (1);
- } else
- if (strcmp(dr->dr_pathptrn, pname) == 0)
- return (1);
- return (0);
+ return (fnmatch(dr->dr_pathptrn, pname, 0) == 0);
}
/*
OpenPOWER on IntegriCloud