From 8a3f816bd85735fc66cad1e5a1b9582b7d675084 Mon Sep 17 00:00:00 2001 From: "Nils Ohlmeier [:drno]" Date: Fri, 8 Jan 2016 14:37:18 -0800 Subject: [PATCH] Bug 895793: added interface type and link speed detection for Windows. r=bwc --- .../mtransport/third_party/nICEr/src/stun/addrs.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/media/mtransport/third_party/nICEr/src/stun/addrs.c b/media/mtransport/third_party/nICEr/src/stun/addrs.c index f7b2e7b7be3..ef13621f095 100644 --- a/media/mtransport/third_party/nICEr/src/stun/addrs.c +++ b/media/mtransport/third_party/nICEr/src/stun/addrs.c @@ -217,9 +217,20 @@ stun_get_win32_addrs(nr_local_addr addrs[], int maxaddrs, int *count) } strlcpy(addrs[n].addr.ifname, hex_hashed_ifname, sizeof(addrs[n].addr.ifname)); - /* TODO: (Bug 895793) Getting interface properties for Windows */ - addrs[n].interface.type = NR_INTERFACE_TYPE_UNKNOWN; + if (tmpAddress->IfType == IF_TYPE_ETHERNET_CSMACD) { + addrs[n].interface.type = NR_INTERFACE_TYPE_WIRED; + } else if (tmpAddress->IfType == IF_TYPE_IEEE80211) { + /* Note: this only works for >= Win Vista */ + addrs[n].interface.type = NR_INTERFACE_TYPE_WIFI; + } else { + addrs[n].interface.type = NR_INTERFACE_TYPE_UNKNOWN; + } +#if (_WIN32_WINNT >= 0x0600) + /* Note: only >= Vista provide link speed information */ + addrs[n].interface.estimated_speed = tmpAddress->TransmitLinkSpeed / 1000; +#else addrs[n].interface.estimated_speed = 0; +#endif if (++n >= maxaddrs) goto done; }