summaryrefslogtreecommitdiff
path: root/src/bluetooth/qbluetoothsocket_winrt.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/bluetooth/qbluetoothsocket_winrt.cpp')
-rw-r--r--src/bluetooth/qbluetoothsocket_winrt.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/bluetooth/qbluetoothsocket_winrt.cpp b/src/bluetooth/qbluetoothsocket_winrt.cpp
index f886dbfd..dc2da4ca 100644
--- a/src/bluetooth/qbluetoothsocket_winrt.cpp
+++ b/src/bluetooth/qbluetoothsocket_winrt.cpp
@@ -576,6 +576,17 @@ QString QBluetoothSocketPrivateWinRT::localName() const
return device.name();
}
+static QString fromWinApiAddress(HString address)
+{
+ // WinAPI returns address with parentheses around it. We need to remove
+ // them to convert to QBluetoothAddress.
+ QString addressStr(qt_QStringFromHString(address));
+ if (addressStr.startsWith(QLatin1Char('(')) && addressStr.endsWith(QLatin1Char(')'))) {
+ addressStr = addressStr.mid(1, addressStr.size() - 2);
+ }
+ return addressStr;
+}
+
QBluetoothAddress QBluetoothSocketPrivateWinRT::localAddress() const
{
if (!m_socketObject)
@@ -591,7 +602,7 @@ QBluetoothAddress QBluetoothSocketPrivateWinRT::localAddress() const
HString localAddress;
hr = localHost->get_CanonicalName(localAddress.GetAddressOf());
Q_ASSERT_SUCCEEDED(hr);
- return QBluetoothAddress(qt_QStringFromHString(localAddress));
+ return QBluetoothAddress(fromWinApiAddress(std::move(localAddress)));
}
quint16 QBluetoothSocketPrivateWinRT::localPort() const
@@ -648,7 +659,7 @@ QBluetoothAddress QBluetoothSocketPrivateWinRT::peerAddress() const
HString remoteAddress;
hr = remoteHost->get_CanonicalName(remoteAddress.GetAddressOf());
Q_ASSERT_SUCCEEDED(hr);
- return QBluetoothAddress(qt_QStringFromHString(remoteAddress));
+ return QBluetoothAddress(fromWinApiAddress(std::move(remoteAddress)));
}
quint16 QBluetoothSocketPrivateWinRT::peerPort() const