Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a226587e authored by bidsharma's avatar bidsharma Committed by Automerger Merge Worker
Browse files

Test: Add is_direct to LeCreateConnection am: 45067be7

parents 73484f0b 45067be7
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@ import "google/protobuf/empty.proto";
import "blueberry/facade/common.proto";

service LeAclManagerFacade {
  rpc CreateConnection(blueberry.facade.BluetoothAddressWithType) returns (stream LeConnectionEvent) {}
  rpc CreateConnection(CreateConnectionMsg) returns (stream LeConnectionEvent) {}
  rpc CreateBackgroundAndDirectConnection(blueberry.facade.BluetoothAddressWithType)
      returns (stream LeConnectionEvent) {}
  rpc CancelConnection(blueberry.facade.BluetoothAddressWithType) returns (google.protobuf.Empty) {}
@@ -34,3 +34,8 @@ message LeAclData {
  bytes payload = 2;
}

message CreateConnectionMsg {
  blueberry.facade.BluetoothAddressWithType peer_address = 1;
  bool is_direct = 2;
}
+6 −2
Original line number Diff line number Diff line
@@ -113,10 +113,14 @@ class PyLeAclManager(Closable):
        safeClose(pair[0])
        self.le_acl_manager.CancelConnection(pair[1])

    def initiate_connection(self, remote_addr):
    def initiate_connection(self, remote_addr, is_direct=True):
        assertThat(self.next_token in self.outgoing_connection_event_streams).isFalse()
        create_connection_msg = le_acl_manager_facade.CreateConnectionMsg(
            peer_address=remote_addr,
            is_direct=is_direct
        )
        self.outgoing_connection_event_streams[self.next_token] = EventStream(
            self.le_acl_manager.CreateConnection(remote_addr)), remote_addr
            self.le_acl_manager.CreateConnection(create_connection_msg)), remote_addr
        token = self.next_token
        self.next_token += 1
        return token
+6 −4
Original line number Diff line number Diff line
@@ -63,12 +63,14 @@ class LeAclManagerFacadeService : public LeAclManagerFacade::Service, public LeC

  ::grpc::Status CreateConnection(
      ::grpc::ServerContext* context,
      const ::blueberry::facade::BluetoothAddressWithType* request,
      const CreateConnectionMsg* request,
      ::grpc::ServerWriter<LeConnectionEvent>* writer) override {
    Address peer_address;
    ASSERT(Address::FromString(request->address().address(), peer_address));
    AddressWithType peer(peer_address, static_cast<AddressType>(request->type()));
    acl_manager_->CreateLeConnection(peer, /* is_direct */ true);
    ASSERT(Address::FromString(request->peer_address().address().address(), peer_address));
    AddressWithType peer(peer_address, static_cast<AddressType>(request->peer_address().type()));
    bool is_direct = request->is_direct();
    acl_manager_->CreateLeConnection(peer, is_direct);

    if (per_connection_events_.size() > current_connection_request_) {
      return ::grpc::Status(::grpc::StatusCode::RESOURCE_EXHAUSTED, "Only one outstanding request is supported");
    }