summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2009-01-07 22:59:25 +0100
committerLennart Poettering <lennart@poettering.net>2009-01-07 22:59:25 +0100
commit2f681a3d18cf403eb8c3a3d2352ab5bfc0264cfd (patch)
tree81a5c3b908f8919e593c3db957d23bd150ab5c82
parent78e636e629518f67b667222bd92197f52c151b38 (diff)
parente7e6f86bbe0dda37e906ed31144b44a83327ee02 (diff)
Merge commit 'vudentz/master'
-rw-r--r--src/modules/bluetooth/module-bluetooth-device.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/modules/bluetooth/module-bluetooth-device.c b/src/modules/bluetooth/module-bluetooth-device.c
index 5974d485..cb4746a4 100644
--- a/src/modules/bluetooth/module-bluetooth-device.c
+++ b/src/modules/bluetooth/module-bluetooth-device.c
@@ -123,11 +123,13 @@ static const char* const valid_modargs[] = {
static int bt_audioservice_send(int sk, const bt_audio_msg_header_t *msg) {
int e;
const char *type, *name;
+ uint16_t length;
+ length = msg->length ? msg->length : BT_SUGGESTED_BUFFER_SIZE;
type = bt_audio_strtype(msg->type);
name = bt_audio_strname(msg->name);
pa_log_debug("sending: %s -> %s", type, name);
- if (send(sk, msg, BT_SUGGESTED_BUFFER_SIZE, 0) > 0)
+ if (send(sk, msg, length, 0) > 0)
e = 0;
else {
e = -errno;
@@ -139,9 +141,12 @@ static int bt_audioservice_send(int sk, const bt_audio_msg_header_t *msg) {
static int bt_audioservice_recv(int sk, bt_audio_msg_header_t *inmsg, uint16_t expected_length) {
int e;
const char *type, *name;
+ uint16_t length;
+
+ length = expected_length ? expected_length : BT_SUGGESTED_BUFFER_SIZE;
pa_log_debug("trying to receive msg from audio service...");
- if (recv(sk, inmsg, expected_length ? : BT_SUGGESTED_BUFFER_SIZE, 0) > 0) {
+ if (recv(sk, inmsg, length, 0) > 0) {
type = bt_audio_strtype(inmsg->type);
name = bt_audio_strname(inmsg->name);
if (type && name) {
@@ -453,9 +458,12 @@ static int bt_setconf(struct userdata *u) {
strncpy(msg.setconf_req.device, u->addr, 18);
msg.setconf_req.codec.transport = u->transport;
- if (u->transport == BT_CAPABILITIES_TRANSPORT_A2DP)
+ if (u->transport == BT_CAPABILITIES_TRANSPORT_A2DP) {
memcpy(&msg.setconf_req.codec, &u->a2dp.sbc_capabilities,
sizeof(u->a2dp.sbc_capabilities));
+ msg.setconf_req.h.length += msg.setconf_req.codec.length
+ - sizeof(msg.setconf_req.codec);
+ }
msg.setconf_req.access_mode = BT_CAPABILITIES_ACCESS_MODE_WRITE;
e = bt_audioservice_send(u->audioservice_fd, &msg.setconf_req.h);