nsiproxy.sys: Update interface table only if LUID is not found in convert_unix_name_to_luid().

Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Paul Gofman 2022-05-16 16:29:04 -05:00 committed by Alexandre Julliard
parent 1f3c1fdbc7
commit 50c27f88e3
1 changed files with 13 additions and 7 deletions

View File

@ -615,18 +615,24 @@ BOOL convert_unix_name_to_luid( const char *unix_name, NET_LUID *luid )
{
struct if_entry *entry;
BOOL ret = FALSE;
int updated = 0;
pthread_mutex_lock( &if_list_lock );
update_if_table();
LIST_FOR_EACH_ENTRY( entry, &if_list, struct if_entry, entry )
if (!strcmp( entry->if_unix_name, unix_name ))
do
{
LIST_FOR_EACH_ENTRY( entry, &if_list, struct if_entry, entry )
{
*luid = entry->if_luid;
ret = TRUE;
break;
if (!strcmp( entry->if_unix_name, unix_name ))
{
*luid = entry->if_luid;
ret = TRUE;
goto done;
}
}
} while (!updated++ && update_if_table());
done:
pthread_mutex_unlock( &if_list_lock );
return ret;