Commit 363fc54a authored by Huw Davies's avatar Huw Davies Committed by Alexandre Julliard

iphlpapi: Rewrite ConvertInterfaceLuidToNameA/NameToLuidA() to call their unicode equivalents.

parent 84a51219
...@@ -3244,21 +3244,20 @@ DWORD WINAPI ConvertInterfaceLuidToIndex(const NET_LUID *luid, NET_IFINDEX *inde ...@@ -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 WINAPI ConvertInterfaceLuidToNameA(const NET_LUID *luid, char *name, SIZE_T len)
{ {
DWORD ret; DWORD err;
MIB_IFROW row; 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 (!luid) return ERROR_INVALID_PARAMETER;
if (!name || !len) return ERROR_NOT_ENOUGH_MEMORY;
row.dwIndex = luid->Info.NetLuidIndex; err = ConvertInterfaceLuidToNameW( luid, nameW, ARRAY_SIZE(nameW) );
if ((ret = GetIfEntry( &row ))) return ret; if (err) return err;
if (!name || len < WideCharToMultiByte( CP_UNIXCP, 0, row.wszName, -1, NULL, 0, NULL, NULL ))
return ERROR_NOT_ENOUGH_MEMORY;
WideCharToMultiByte( CP_UNIXCP, 0, row.wszName, -1, name, len, NULL, NULL ); if (!WideCharToMultiByte( CP_UNIXCP, 0, nameW, -1, name, len, NULL, NULL ))
return NO_ERROR; err = GetLastError();
return err;
} }
/****************************************************************** /******************************************************************
...@@ -3286,22 +3285,15 @@ DWORD WINAPI ConvertInterfaceLuidToNameW(const NET_LUID *luid, WCHAR *name, SIZE ...@@ -3286,22 +3285,15 @@ DWORD WINAPI ConvertInterfaceLuidToNameW(const NET_LUID *luid, WCHAR *name, SIZE
*/ */
DWORD WINAPI ConvertInterfaceNameToLuidA(const char *name, NET_LUID *luid) DWORD WINAPI ConvertInterfaceNameToLuidA(const char *name, NET_LUID *luid)
{ {
DWORD ret; WCHAR nameW[IF_MAX_STRING_SIZE];
IF_INDEX index;
MIB_IFROW row;
TRACE("(%s %p)\n", debugstr_a(name), luid);
if ((ret = getInterfaceIndexByName( name, &index ))) return ERROR_INVALID_NAME; TRACE( "(%s %p)\n", debugstr_a(name), luid );
if (!luid) return ERROR_INVALID_PARAMETER;
row.dwIndex = index; if (!name) return ERROR_INVALID_NAME;
if ((ret = GetIfEntry( &row ))) return ret; if (!MultiByteToWideChar( CP_UNIXCP, 0, name, -1, nameW, ARRAY_SIZE(nameW) ))
return GetLastError();
luid->Info.Reserved = 0; return ConvertInterfaceNameToLuidW( nameW, luid );
luid->Info.NetLuidIndex = index;
luid->Info.IfType = row.dwType;
return NO_ERROR;
} }
/****************************************************************** /******************************************************************
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment