blob: 38d3b35fbb619d7bd216c6583cb4c61eaeea3933 [file] [log] [blame]
// Copyright 2018 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "bluetooth/common/dbus_daemon.h"
#include <utility>
#include <sysexits.h>
namespace bluetooth {
DBusDaemon::DBusDaemon(std::unique_ptr<BluetoothDaemon> bluetooth_daemon)
: bluetooth_daemon_(std::move(bluetooth_daemon)) {}
int DBusDaemon::OnInit() {
int exit_code = brillo::Daemon::OnInit();
if (exit_code != EX_OK)
return exit_code;
dbus::Bus::Options options;
options.bus_type = dbus::Bus::SYSTEM;
scoped_refptr<dbus::Bus> bus(new dbus::Bus(options));
if (!bus->Connect()) {
LOG(ERROR) << "Failed to connect to system bus";
return EX_UNAVAILABLE;
}
VLOG(1) << "D-Bus connection name = " << bus->GetConnectionName();
if (!bluetooth_daemon_->Init(bus, this)) {
LOG(ERROR) << "Failed to initialize daemon";
return EX_UNAVAILABLE;
}
return EX_OK;
}
} // namespace bluetooth