diff options
author | dd <dd@FreeBSD.org> | 2002-10-08 04:21:54 +0000 |
---|---|---|
committer | dd <dd@FreeBSD.org> | 2002-10-08 04:21:54 +0000 |
commit | eff660789ca1ead1552913158e5d63c446ae9779 (patch) | |
tree | 7b2728a9c740406e8461e5a2bcaab1ec8d8491c8 /sys/fs/devfs/devfs_rule.c | |
parent | ad775810328c27239d98ff30a2094979615da054 (diff) | |
download | FreeBSD-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.c | 16 |
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); } /* |