Signed-off-by: Huw Davies huw@codeweavers.com --- 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 ); }
/******************************************************************