Huw Davies : iphlpapi: Rewrite ConvertInterfaceLuidToNameA/NameToLuidA() to call their unicode equivalents.
Alexandre Julliard
julliard at winehq.org
Fri Jul 2 14:46:40 CDT 2021
Module: wine
Branch: master
Commit: 363fc54a1c2cad567e53515d589968294c37008e
URL: https://source.winehq.org/git/wine.git/?a=commit;h=363fc54a1c2cad567e53515d589968294c37008e
Author: Huw Davies <huw at codeweavers.com>
Date: Fri Jul 2 09:41:36 2021 +0100
iphlpapi: Rewrite ConvertInterfaceLuidToNameA/NameToLuidA() to call their unicode equivalents.
Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/iphlpapi/iphlpapi_main.c | 38 +++++++++++++++-----------------------
1 file changed, 15 insertions(+), 23 deletions(-)
diff --git a/dlls/iphlpapi/iphlpapi_main.c b/dlls/iphlpapi/iphlpapi_main.c
index 8540b594e53..b6b96165027 100644
--- a/dlls/iphlpapi/iphlpapi_main.c
+++ b/dlls/iphlpapi/iphlpapi_main.c
@@ -3244,21 +3244,20 @@ DWORD WINAPI ConvertInterfaceLuidToIndex(const NET_LUID *luid, NET_IFINDEX *inde
*/
DWORD WINAPI ConvertInterfaceLuidToNameA(const NET_LUID *luid, char *name, SIZE_T len)
{
- DWORD ret;
- MIB_IFROW row;
+ DWORD err;
+ WCHAR nameW[IF_MAX_STRING_SIZE + 1];
- TRACE("(%p %p %u)\n", luid, name, (DWORD)len);
+ TRACE( "(%p %p %u)\n", luid, name, (DWORD)len );
if (!luid) return ERROR_INVALID_PARAMETER;
+ if (!name || !len) return ERROR_NOT_ENOUGH_MEMORY;
- row.dwIndex = luid->Info.NetLuidIndex;
- if ((ret = GetIfEntry( &row ))) return ret;
-
- if (!name || len < WideCharToMultiByte( CP_UNIXCP, 0, row.wszName, -1, NULL, 0, NULL, NULL ))
- return ERROR_NOT_ENOUGH_MEMORY;
+ err = ConvertInterfaceLuidToNameW( luid, nameW, ARRAY_SIZE(nameW) );
+ if (err) return err;
- WideCharToMultiByte( CP_UNIXCP, 0, row.wszName, -1, name, len, NULL, NULL );
- return NO_ERROR;
+ if (!WideCharToMultiByte( CP_UNIXCP, 0, nameW, -1, name, len, NULL, NULL ))
+ err = GetLastError();
+ return err;
}
/******************************************************************
@@ -3286,22 +3285,15 @@ DWORD WINAPI ConvertInterfaceLuidToNameW(const NET_LUID *luid, WCHAR *name, SIZE
*/
DWORD WINAPI ConvertInterfaceNameToLuidA(const char *name, NET_LUID *luid)
{
- DWORD ret;
- IF_INDEX index;
- MIB_IFROW row;
-
- TRACE("(%s %p)\n", debugstr_a(name), luid);
+ WCHAR nameW[IF_MAX_STRING_SIZE];
- if ((ret = getInterfaceIndexByName( name, &index ))) return ERROR_INVALID_NAME;
- if (!luid) return ERROR_INVALID_PARAMETER;
+ TRACE( "(%s %p)\n", debugstr_a(name), luid );
- row.dwIndex = index;
- if ((ret = GetIfEntry( &row ))) return ret;
+ if (!name) return ERROR_INVALID_NAME;
+ if (!MultiByteToWideChar( CP_UNIXCP, 0, name, -1, nameW, ARRAY_SIZE(nameW) ))
+ return GetLastError();
- luid->Info.Reserved = 0;
- luid->Info.NetLuidIndex = index;
- luid->Info.IfType = row.dwType;
- return NO_ERROR;
+ return ConvertInterfaceNameToLuidW( nameW, luid );
}
/******************************************************************
More information about the wine-cvs
mailing list