From: Marcel Holtmann Date: Fri, 10 Jan 2014 23:24:42 +0000 (-0800) Subject: shared: Use a union for sockaddr for mgmt socket X-Git-Tag: android-x86-4.4-r3~6088 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=c70883b1911d6801565f325656c8ca263a2c0903;p=android-x86%2Fexternal-bluetooth-bluez.git shared: Use a union for sockaddr for mgmt socket --- diff --git a/src/shared/mgmt.c b/src/shared/mgmt.c index 82e785a80..a391ab587 100644 --- a/src/shared/mgmt.c +++ b/src/shared/mgmt.c @@ -450,7 +450,10 @@ struct mgmt *mgmt_new(int fd) struct mgmt *mgmt_new_default(void) { struct mgmt *mgmt; - struct sockaddr_hci addr; + union { + struct sockaddr common; + struct sockaddr_hci hci; + } addr; int fd; fd = socket(PF_BLUETOOTH, SOCK_RAW | SOCK_CLOEXEC | SOCK_NONBLOCK, @@ -459,11 +462,11 @@ struct mgmt *mgmt_new_default(void) return NULL; memset(&addr, 0, sizeof(addr)); - addr.hci_family = AF_BLUETOOTH; - addr.hci_dev = HCI_DEV_NONE; - addr.hci_channel = HCI_CHANNEL_CONTROL; + addr.hci.hci_family = AF_BLUETOOTH; + addr.hci.hci_dev = HCI_DEV_NONE; + addr.hci.hci_channel = HCI_CHANNEL_CONTROL; - if (bind(fd, (struct sockaddr *) &addr, sizeof(addr)) < 0) { + if (bind(fd, &addr.common, sizeof(addr.hci)) < 0) { close(fd); return NULL; }