[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