Bug 880610: Part2-Add build flag in UnixSocket to distinguish between bluez and bluedroid stack. r=echou

This commit is contained in:
Shawn Huang 2013-10-17 18:25:55 +08:00
Родитель 633b78e812
Коммит cae6b0cfa1
2 изменённых файлов: 15 добавлений и 5 удалений

Просмотреть файл

@ -27,11 +27,12 @@
#include <errno.h> #include <errno.h>
#include <sys/socket.h> #include <sys/socket.h>
#ifdef MOZ_B2G_BT_BLUEZ
#include <bluetooth/bluetooth.h> #include <bluetooth/bluetooth.h>
#include <bluetooth/l2cap.h> #include <bluetooth/l2cap.h>
#include <bluetooth/rfcomm.h> #include <bluetooth/rfcomm.h>
#include <bluetooth/sco.h> #include <bluetooth/sco.h>
#endif
#include "BluetoothUnixSocketConnector.h" #include "BluetoothUnixSocketConnector.h"
#include "nsThreadUtils.h" #include "nsThreadUtils.h"
@ -43,6 +44,7 @@ static const int L2CAP_SO_SNDBUF = 400 * 1024; // 400 KB send buffer
static const int L2CAP_SO_RCVBUF = 400 * 1024; // 400 KB receive buffer static const int L2CAP_SO_RCVBUF = 400 * 1024; // 400 KB receive buffer
static const int L2CAP_MAX_MTU = 65000; static const int L2CAP_MAX_MTU = 65000;
#ifdef MOZ_B2G_BT_BLUEZ
static static
int get_bdaddr(const char *str, bdaddr_t *ba) int get_bdaddr(const char *str, bdaddr_t *ba)
{ {
@ -62,6 +64,8 @@ void get_bdaddr_as_string(const bdaddr_t *ba, char *str) {
b[5], b[4], b[3], b[2], b[1], b[0]); b[5], b[4], b[3], b[2], b[1], b[0]);
} }
#endif
BluetoothUnixSocketConnector::BluetoothUnixSocketConnector( BluetoothUnixSocketConnector::BluetoothUnixSocketConnector(
BluetoothSocketType aType, BluetoothSocketType aType,
int aChannel, int aChannel,
@ -76,6 +80,7 @@ BluetoothUnixSocketConnector::BluetoothUnixSocketConnector(
bool bool
BluetoothUnixSocketConnector::SetUp(int aFd) BluetoothUnixSocketConnector::SetUp(int aFd)
{ {
#ifdef MOZ_B2G_BT_BLUEZ
int lm = 0; int lm = 0;
int sndbuf, rcvbuf; int sndbuf, rcvbuf;
@ -157,7 +162,7 @@ BluetoothUnixSocketConnector::SetUp(int aFd)
} }
} }
} }
#endif
return true; return true;
} }
@ -167,6 +172,7 @@ BluetoothUnixSocketConnector::Create()
MOZ_ASSERT(!NS_IsMainThread()); MOZ_ASSERT(!NS_IsMainThread());
int fd = -1; int fd = -1;
#ifdef MOZ_B2G_BT_BLUEZ
switch (mType) { switch (mType) {
case BluetoothSocketType::RFCOMM: case BluetoothSocketType::RFCOMM:
fd = socket(PF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM); fd = socket(PF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);
@ -193,7 +199,7 @@ BluetoothUnixSocketConnector::Create()
BT_WARNING("Could not set up socket!"); BT_WARNING("Could not set up socket!");
return -1; return -1;
} }
#endif
return fd; return fd;
} }
@ -203,6 +209,7 @@ BluetoothUnixSocketConnector::CreateAddr(bool aIsServer,
sockaddr_any& aAddr, sockaddr_any& aAddr,
const char* aAddress) const char* aAddress)
{ {
#ifdef MOZ_B2G_BT_BLUEZ
// Set to BDADDR_ANY, if it's not a server, we'll reset. // Set to BDADDR_ANY, if it's not a server, we'll reset.
bdaddr_t bd_address_obj = {{0, 0, 0, 0, 0, 0}}; bdaddr_t bd_address_obj = {{0, 0, 0, 0, 0, 0}};
@ -242,6 +249,7 @@ BluetoothUnixSocketConnector::CreateAddr(bool aIsServer,
BT_WARNING("Socket type unknown!"); BT_WARNING("Socket type unknown!");
return false; return false;
} }
#endif
return true; return true;
} }
@ -249,6 +257,7 @@ void
BluetoothUnixSocketConnector::GetSocketAddr(const sockaddr_any& aAddr, BluetoothUnixSocketConnector::GetSocketAddr(const sockaddr_any& aAddr,
nsAString& aAddrStr) nsAString& aAddrStr)
{ {
#ifdef MOZ_B2G_BT_BLUEZ
char addr[18]; char addr[18];
switch (mType) { switch (mType) {
case BluetoothSocketType::RFCOMM: case BluetoothSocketType::RFCOMM:
@ -265,4 +274,5 @@ BluetoothUnixSocketConnector::GetSocketAddr(const sockaddr_any& aAddr,
MOZ_CRASH("Socket should be either RFCOMM or SCO!"); MOZ_CRASH("Socket should be either RFCOMM or SCO!");
} }
aAddrStr.AssignASCII(addr); aAddrStr.AssignASCII(addr);
#endif
} }

Просмотреть файл

@ -12,7 +12,7 @@
#include <sys/types.h> #include <sys/types.h>
#include <sys/un.h> #include <sys/un.h>
#include <netinet/in.h> #include <netinet/in.h>
#ifdef MOZ_B2G_BT #ifdef MOZ_B2G_BT_BLUEZ
#include <bluetooth/bluetooth.h> #include <bluetooth/bluetooth.h>
#include <bluetooth/sco.h> #include <bluetooth/sco.h>
#include <bluetooth/l2cap.h> #include <bluetooth/l2cap.h>
@ -31,7 +31,7 @@ union sockaddr_any {
sockaddr_un un; sockaddr_un un;
sockaddr_in in; sockaddr_in in;
sockaddr_in6 in6; sockaddr_in6 in6;
#ifdef MOZ_B2G_BT #ifdef MOZ_B2G_BT_BLUEZ
sockaddr_sco sco; sockaddr_sco sco;
sockaddr_rc rc; sockaddr_rc rc;
sockaddr_l2 l2; sockaddr_l2 l2;