--- bluez-utils-2.15/hcid/dbus.c.new_dbus_api 2005-03-08 15:43:44.890267000 -0500 +++ bluez-utils-2.15/hcid/dbus.c 2005-03-08 16:38:37.361500000 -0500 @@ -72,7 +72,7 @@ size_t len; char *pin; - message = dbus_pending_call_get_reply(call); + message = dbus_pending_call_steal_reply(call); if (dbus_message_is_error(message, WRONG_ARGS_ERROR)) goto error; @@ -83,7 +83,7 @@ if (type != DBUS_TYPE_STRING) goto error; - pin = dbus_message_iter_get_string(&iter); + dbus_message_iter_get_basic(&iter, &pin); len = strlen(pin); memset(&pr, 0, sizeof(pr)); @@ -93,6 +93,7 @@ hci_send_cmd(req->dev, OGF_LINK_CTL, OCF_PIN_CODE_REPLY, PIN_CODE_REPLY_CP_SIZE, &pr); + dbus_message_unref (message); return; error: @@ -127,11 +128,7 @@ req->dev = dev; bacpy(&req->bda, &ci->bdaddr); - dbus_message_append_iter_init(message, &iter); - - dbus_message_iter_append_boolean(&iter, ci->out); - dbus_message_iter_append_byte_array(&iter, - (unsigned char *) &ci->bdaddr, sizeof(ci->bdaddr)); + dbus_message_append_args(message, &iter, DBUS_TYPE_BOOLEAN, &ci->out, DBUS_TYPE_ARRAY, DBUS_TYPE_BYTE, &ci->bdaddr, sizeof(bdaddr_t), DBUS_TYPE_INVALID); if (dbus_connection_send_with_reply(connection, message, &pending, TIMEOUT) == FALSE) {