// device
const std::string kDeviceAddress = "address";
const unsigned short kTimeout = 180;
-}
+} // namespace
static bool IsValidAddress(const std::string& address) {
ScopeLogger();
}
if (result.IsSuccess()) {
+ auto ret = bt_adapter_start_device_discovery();
+ if (BT_ERROR_NONE != ret) {
+ result = LogAndCreateResult(ErrorCode::UNKNOWN_ERR, "An unknown error occurred");
+ }
+ }
+
+ if (result.IsSuccess()) {
this->user_request_list_[DISCOVER_DEVICES] = true;
- bt_adapter_start_device_discovery();
} else {
std::shared_ptr<picojson::value> response =
std::shared_ptr<picojson::value>(new picojson::value(picojson::object()));
};
BondingHandler* handler = new BondingHandler(instance_, callback_handle, address);
- bt_device_set_bond_created_cb(bond_create_callback, handler);
- int ret = bt_device_create_bond(address.c_str());
+ int ret = bt_device_set_bond_created_cb(bond_create_callback, handler);
+ if (BT_ERROR_NONE != ret) {
+ delete handler;
+ // We ignore other error types that can be in ret, because they are highly improbable
+ result = LogAndCreateResult(
+ ErrorCode::UNKNOWN_ERR, "Unknown error",
+ ("bt_device_set_bond_created_cb error: %d (%s)", ret, get_error_message(ret)));
+ } else {
+ LoggerD("bt_device_set_bond_created_cb() succeeded");
- switch (ret) {
- case BT_ERROR_NONE: {
- LoggerD("bt_device_create_bond() succeeded");
- break;
- }
- case BT_ERROR_INVALID_PARAMETER: {
- bt_device_unset_bond_created_cb();
- delete handler;
- result = LogAndCreateResult(
- ErrorCode::INVALID_VALUES_ERR, "Invalid value",
- ("bt_device_create_bond error: %d (%s)", ret, get_error_message(ret)));
- break;
- }
- default: {
- bt_device_unset_bond_created_cb();
- delete handler;
- result = LogAndCreateResult(
- ErrorCode::UNKNOWN_ERR, "Unknown exception",
- ("bt_device_create_bond error: %d (%s)", ret, get_error_message(ret)));
+ ret = bt_device_create_bond(address.c_str());
+
+ switch (ret) {
+ case BT_ERROR_NONE: {
+ LoggerD("bt_device_create_bond() succeeded");
+ break;
+ }
+ case BT_ERROR_INVALID_PARAMETER: {
+ bt_device_unset_bond_created_cb();
+ delete handler;
+ result = LogAndCreateResult(
+ ErrorCode::INVALID_VALUES_ERR, "Invalid value",
+ ("bt_device_create_bond error: %d (%s)", ret, get_error_message(ret)));
+ break;
+ }
+ default: {
+ bt_device_unset_bond_created_cb();
+ delete handler;
+ result = LogAndCreateResult(
+ ErrorCode::UNKNOWN_ERR, "Unknown error",
+ ("bt_device_create_bond error: %d (%s)", ret, get_error_message(ret)));
+ }
}
}
} else if (result.IsSuccess()) {
&response->get<picojson::object>());
}
+ const auto request_callback_handle = request->second->callback_handle_;
// request will be handled, can be safely removed
object->connection_requests_.erase(request);
- object->instance_.SyncResponse(request->second->callback_handle_, response);
+ object->instance_.SyncResponse(request_callback_handle, response);
} else { // disconnected when Client
if (result == BT_ERROR_NONE) {
object->RemoveSocket(connection->socket_fd);