[PATCH 4/6] nsiproxy.sys: Update interface table only if LUID is not found in convert_unix_name_to_luid().
Paul Gofman
wine at gitlab.winehq.org
Mon May 16 19:03:17 CDT 2022
From: Paul Gofman <pgofman at codeweavers.com>
Signed-off-by: Paul Gofman <pgofman at codeweavers.com>
---
dlls/nsiproxy.sys/ndis.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/dlls/nsiproxy.sys/ndis.c b/dlls/nsiproxy.sys/ndis.c
index 4d21588fbe2..10b68013f42 100644
--- a/dlls/nsiproxy.sys/ndis.c
+++ b/dlls/nsiproxy.sys/ndis.c
@@ -616,8 +616,6 @@ BOOL convert_unix_name_to_luid( const char *unix_name, NET_LUID *luid )
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 ))
{
@@ -625,6 +623,20 @@ BOOL convert_unix_name_to_luid( const char *unix_name, NET_LUID *luid )
ret = TRUE;
break;
}
+ if (!ret)
+ {
+ update_if_table();
+ while (&entry->entry != &if_list)
+ {
+ if (!strcmp( entry->if_unix_name, unix_name ))
+ {
+ *luid = entry->if_luid;
+ ret = TRUE;
+ break;
+ }
+ entry = LIST_ENTRY(entry->entry.next, struct if_entry, entry);
+ }
+ }
pthread_mutex_unlock( &if_list_lock );
return ret;
--
GitLab
https://gitlab.winehq.org/wine/wine/-/merge_requests/78
More information about the wine-devel
mailing list