summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@theqtcompany.com>2015-10-15 13:49:30 +0200
committerChristian Kandeler <christian.kandeler@theqtcompany.com>2015-10-15 14:31:50 +0000
commitcbc70bc3a2ea7fb545c2d9cfb8914d50c1ba6475 (patch)
treec42d39f78d3e5284d9673ab007c6db49dc387e09
parent62ecca3d957f80d9acc7116d362517b03b2301a3 (diff)
downloadqtconnectivity-cbc70bc3a2ea7fb545c2d9cfb8914d50c1ba6475.tar.gz
Bluetooth socket: Simplify address conversion.
In most cases, callers of convertAddress() feed the result into a QBluetoothAddress, so they have no need for the output parameter. Change-Id: I23b2e8d5d49ac300c35d141b75ffa8e398e22f19 Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
-rw-r--r--src/bluetooth/bluez/hcimanager.cpp8
-rw-r--r--src/bluetooth/qbluetoothsocket_bluez.cpp32
-rw-r--r--src/bluetooth/qbluetoothsocket_p.h7
3 files changed, 17 insertions, 30 deletions
diff --git a/src/bluetooth/bluez/hcimanager.cpp b/src/bluetooth/bluez/hcimanager.cpp
index bf2754f5..30511ae5 100644
--- a/src/bluetooth/bluez/hcimanager.cpp
+++ b/src/bluetooth/bluez/hcimanager.cpp
@@ -219,12 +219,8 @@ QBluetoothAddress HciManager::addressForConnectionHandle(quint16 handle) const
}
for (int i = 0; i < infoList->conn_num; i++) {
- if (info[i].handle == handle) {
- quint64 converted;
- convertAddress(info[i].bdaddr.b, converted);
-
- return QBluetoothAddress(converted);
- }
+ if (info[i].handle == handle)
+ return QBluetoothAddress(convertAddress(info[i].bdaddr.b));
}
return QBluetoothAddress();
diff --git a/src/bluetooth/qbluetoothsocket_bluez.cpp b/src/bluetooth/qbluetoothsocket_bluez.cpp
index 71f26296..43933f26 100644
--- a/src/bluetooth/qbluetoothsocket_bluez.cpp
+++ b/src/bluetooth/qbluetoothsocket_bluez.cpp
@@ -309,20 +309,14 @@ QBluetoothAddress QBluetoothSocketPrivate::localAddress() const
sockaddr_rc addr;
socklen_t addrLength = sizeof(addr);
- if (::getsockname(socket, reinterpret_cast<sockaddr *>(&addr), &addrLength) == 0) {
- quint64 bdaddr;
- convertAddress(addr.rc_bdaddr.b, bdaddr);
- return QBluetoothAddress(bdaddr);
- }
+ if (::getsockname(socket, reinterpret_cast<sockaddr *>(&addr), &addrLength) == 0)
+ return QBluetoothAddress(convertAddress(addr.rc_bdaddr.b));
} else if (socketType == QBluetoothServiceInfo::L2capProtocol) {
sockaddr_l2 addr;
socklen_t addrLength = sizeof(addr);
- if (::getsockname(socket, reinterpret_cast<sockaddr *>(&addr), &addrLength) == 0) {
- quint64 bdaddr;
- convertAddress(addr.l2_bdaddr.b, bdaddr);
- return QBluetoothAddress(bdaddr);
- }
+ if (::getsockname(socket, reinterpret_cast<sockaddr *>(&addr), &addrLength) == 0)
+ return QBluetoothAddress(convertAddress(addr.l2_bdaddr.b));
}
return QBluetoothAddress();
@@ -358,7 +352,7 @@ QString QBluetoothSocketPrivate::peerName() const
if (::getpeername(socket, reinterpret_cast<sockaddr *>(&addr), &addrLength) < 0)
return QString();
- convertAddress(addr.rc_bdaddr.b, bdaddr);
+ convertAddress(addr.rc_bdaddr.b, &bdaddr);
} else if (socketType == QBluetoothServiceInfo::L2capProtocol) {
sockaddr_l2 addr;
socklen_t addrLength = sizeof(addr);
@@ -366,7 +360,7 @@ QString QBluetoothSocketPrivate::peerName() const
if (::getpeername(socket, reinterpret_cast<sockaddr *>(&addr), &addrLength) < 0)
return QString();
- convertAddress(addr.l2_bdaddr.b, bdaddr);
+ convertAddress(addr.l2_bdaddr.b, &bdaddr);
} else {
qCWarning(QT_BT_BLUEZ) << "peerName() called on socket of unknown type";
return QString();
@@ -441,20 +435,14 @@ QBluetoothAddress QBluetoothSocketPrivate::peerAddress() const
sockaddr_rc addr;
socklen_t addrLength = sizeof(addr);
- if (::getpeername(socket, reinterpret_cast<sockaddr *>(&addr), &addrLength) == 0) {
- quint64 bdaddr;
- convertAddress(addr.rc_bdaddr.b, bdaddr);
- return QBluetoothAddress(bdaddr);
- }
+ if (::getpeername(socket, reinterpret_cast<sockaddr *>(&addr), &addrLength) == 0)
+ return QBluetoothAddress(convertAddress(addr.rc_bdaddr.b));
} else if (socketType == QBluetoothServiceInfo::L2capProtocol) {
sockaddr_l2 addr;
socklen_t addrLength = sizeof(addr);
- if (::getpeername(socket, reinterpret_cast<sockaddr *>(&addr), &addrLength) == 0) {
- quint64 bdaddr;
- convertAddress(addr.l2_bdaddr.b, bdaddr);
- return QBluetoothAddress(bdaddr);
- }
+ if (::getpeername(socket, reinterpret_cast<sockaddr *>(&addr), &addrLength) == 0)
+ return QBluetoothAddress(convertAddress(addr.l2_bdaddr.b));
}
return QBluetoothAddress();
diff --git a/src/bluetooth/qbluetoothsocket_p.h b/src/bluetooth/qbluetoothsocket_p.h
index 23f3cf72..80db02a2 100644
--- a/src/bluetooth/qbluetoothsocket_p.h
+++ b/src/bluetooth/qbluetoothsocket_p.h
@@ -220,14 +220,17 @@ static inline void convertAddress(quint64 from, quint8 (&to)[6])
to[5] = (from >> 40) & 0xff;
}
-static inline void convertAddress(quint8 (&from)[6], quint64 &to)
+static inline quint64 convertAddress(quint8 (&from)[6], quint64 *to = 0)
{
- to = (quint64(from[0]) << 0) |
+ const quint64 result = (quint64(from[0]) << 0) |
(quint64(from[1]) << 8) |
(quint64(from[2]) << 16) |
(quint64(from[3]) << 24) |
(quint64(from[4]) << 32) |
(quint64(from[5]) << 40);
+ if (to)
+ *to = result;
+ return result;
}
QT_END_NAMESPACE