From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Mon, 5 Sep 2011 22:58:07 +0800 From: Xiaochen Wang Message-ID: <20110905145807.GA9179@chii> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Subject: [Bridge] [PATCH] skip . and .. in accurately in isbridge() Reply-To: Xiaochen Wang List-Id: Linux Ethernet Bridging List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: bridge@linux-foundation.org Cc: Lennert Buytenhek , tephen Hemminger Hi all, In commit f88f8 "Skip . and .. in foreach_bridge test", the code skips all directories starting with dot. But if we create a bridge staring with dot, e.g. `.br0`, then `brctl show` cannot show this one. `.br0` should not be hidden, because we cannot find it except the command `brctl show .br0`. Signed-off-by: Xiaochen Wang --- libbridge/libbridge_init.c | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) diff --git a/libbridge/libbridge_init.c b/libbridge/libbridge_init.c index 1c1acbd..177a391 100644 --- a/libbridge/libbridge_init.c +++ b/libbridge/libbridge_init.c @@ -49,9 +49,12 @@ static int isbridge(const struct dirent *entry) char path[SYSFS_PATH_MAX]; struct stat st; - if (entry->d_name[0] == '.') + if (entry->d_name[0] == '.' + && (entry->d_name[1] == '\0' + || (entry->d_name[1] == '.' + && entry->d_name[2] == '\0'))) return 0; - + snprintf(path, SYSFS_PATH_MAX, SYSFS_CLASS_NET "%s/bridge", entry->d_name); return stat(path, &st) == 0 && S_ISDIR(st.st_mode); -- 1.7.2.3