[Bridge] [PATCH] skip . and .. in accurately in isbridge()

Xiaochen Wang wangxiaochen0 at gmail.com
Wed Sep 7 00:33:13 PDT 2011


On Tue, Sep 6, 2011 at 12:43 AM, Stephen Hemminger
<shemminger at vyatta.com> wrote:
> 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 .
>
I see.


More information about the Bridge mailing list