[Bridge] [PATCH] skip . and .. in accurately in isbridge()
Stephen Hemminger
shemminger at vyatta.com
Mon Sep 5 09:43:21 PDT 2011
On Mon, 5 Sep 2011 22:58:07 +0800
Xiaochen Wang <wangxiaochen0 at gmail.com> wrote:
> 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 <wangxiaochen0 at gmail.com>
> ---
> 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);
This was an accident originally, but allowing hidden bridges might be useful.
And is common for other commands to not show names starting with .
More information about the Bridge
mailing list