Partial fix for UpnpGetIfInfo with MSVC
This commit is contained in:
parent
3a9ae348bc
commit
7338411c08
@ -2,6 +2,11 @@
|
|||||||
Version 1.6.13
|
Version 1.6.13
|
||||||
*******************************************************************************
|
*******************************************************************************
|
||||||
|
|
||||||
|
2011-03-08 Iain Denniston <iain.denniston(at)gmail.com>
|
||||||
|
Partial fix for UpnpGetIfInfo with MSVC - convert wchar string to
|
||||||
|
char string (full fix requires a lot of work - potentially impacting
|
||||||
|
all supported platforms)
|
||||||
|
|
||||||
2011-03-11 Marcelo Roberto Jimenez <mroberto(at)users.sourceforge.net>
|
2011-03-11 Marcelo Roberto Jimenez <mroberto(at)users.sourceforge.net>
|
||||||
|
|
||||||
Created the macros PRIzd and PRIzx to deal with MSVC lack of C99.
|
Created the macros PRIzd and PRIzx to deal with MSVC lack of C99.
|
||||||
|
@ -3016,16 +3016,47 @@ int UpnpGetIfInfo(const char *IfName)
|
|||||||
}
|
}
|
||||||
if (ifname_found == 0) {
|
if (ifname_found == 0) {
|
||||||
/* We have found a valid interface name. Keep it. */
|
/* We have found a valid interface name. Keep it. */
|
||||||
|
#ifdef UPNP_USE_MSVCPP
|
||||||
|
/*
|
||||||
|
* Partial fix for VC - friendly name is wchar string,
|
||||||
|
* but currently gIF_NAME is char string. For now try
|
||||||
|
* to convert it, which will work with many (but not
|
||||||
|
* all) adapters. A full fix would require a lot of
|
||||||
|
* big changes (gIF_NAME to wchar string?).
|
||||||
|
*/
|
||||||
|
wcstombs(gIF_NAME, adapts_item->FriendlyName,
|
||||||
|
sizeof(gIF_NAME));
|
||||||
|
#else
|
||||||
strncpy(gIF_NAME, adapts_item->FriendlyName,
|
strncpy(gIF_NAME, adapts_item->FriendlyName,
|
||||||
sizeof(gIF_NAME));
|
sizeof(gIF_NAME));
|
||||||
|
#endif
|
||||||
ifname_found = 1;
|
ifname_found = 1;
|
||||||
} else {
|
} else {
|
||||||
|
#ifdef UPNP_USE_MSVCPP
|
||||||
|
/*
|
||||||
|
* Partial fix for VC - friendly name is wchar string,
|
||||||
|
* but currently gIF_NAME is char string. For now try
|
||||||
|
* to convert it, which will work with many (but not
|
||||||
|
* all) adapters. A full fix would require a lot of
|
||||||
|
* big changes (gIF_NAME to wchar string?).
|
||||||
|
*/
|
||||||
|
char tmpIfName[LINE_SIZE] = { 0 };
|
||||||
|
wcstombs(tmpIfName, adapts_item->FriendlyName,
|
||||||
|
sizeof(tmpIfName));
|
||||||
|
if (strncmp
|
||||||
|
(gIF_NAME, tmpIfName,
|
||||||
|
sizeof(gIF_NAME)) != 0) {
|
||||||
|
/* This is not the interface we're looking for. */
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
#else
|
||||||
if (strncmp
|
if (strncmp
|
||||||
(gIF_NAME, adapts_item->FriendlyName,
|
(gIF_NAME, adapts_item->FriendlyName,
|
||||||
sizeof(gIF_NAME)) != 0) {
|
sizeof(gIF_NAME)) != 0) {
|
||||||
/* This is not the interface we're looking for. */
|
/* This is not the interface we're looking for. */
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
/* Loop thru this adapter's unicast IP addresses. */
|
/* Loop thru this adapter's unicast IP addresses. */
|
||||||
uni_addr = adapts_item->FirstUnicastAddress;
|
uni_addr = adapts_item->FirstUnicastAddress;
|
||||||
|
Loading…
Reference in New Issue
Block a user