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

Commit 42cd321f authored by Jeffrey Vander Stoep's avatar Jeffrey Vander Stoep Committed by Automerger Merge Worker
Browse files

Merge "Use new tokio 1.x API functions." am: 52c299b2 am: f01cffad

Original change: https://android-review.googlesource.com/c/platform/system/bt/+/1555297

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I4a78c27699d18c60682fea998646bcf61a3fc867
parents 8ac785e3 f01cffad
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@ rust_library {
    rustlibs: [
        "libtokio",
        "libnix",
        "liblazy_static",
        "liblog_rust",
        "libcxx",
        "libgrpcio",
@@ -40,6 +41,7 @@ rust_test_host {
    rustlibs: [
        "libtokio",
        "libnix",
        "liblazy_static",
        "liblog_rust",
        "libenv_logger",
        "libcxx",
+7 −19
Original line number Diff line number Diff line
@@ -14,8 +14,9 @@ use futures::stream::StreamExt;
use grpcio::*;
use log::debug;
use nix::sys::signal;
use std::net::{IpAddr, Ipv4Addr, Shutdown, SocketAddr};
use std::net::{IpAddr, Ipv4Addr, SocketAddr};
use std::sync::{Arc, Mutex};
use tokio::io::AsyncWriteExt;
use tokio::net::TcpStream;
use tokio::runtime::Runtime;

@@ -35,29 +36,16 @@ async fn async_main(rt: Arc<Runtime>, mut sigint: mpsc::UnboundedReceiver<()>) {
                .default_value("8897")
                .takes_value(true),
        )
        .arg(
            Arg::with_name("grpc-port")
                .long("grpc-port")
                .default_value("8899")
                .takes_value(true),
        )
        .arg(Arg::with_name("grpc-port").long("grpc-port").default_value("8899").takes_value(true))
        .arg(
            Arg::with_name("signal-port")
                .long("signal-port")
                .default_value("8895")
                .takes_value(true),
        )
        .arg(
            Arg::with_name("rootcanal-port")
                .long("rootcanal-port")
                .takes_value(true),
        )
        .arg(Arg::with_name("rootcanal-port").long("rootcanal-port").takes_value(true))
        .arg(Arg::with_name("btsnoop").long("btsnoop").takes_value(true))
        .arg(
            Arg::with_name("btconfig")
                .long("btconfig")
                .takes_value(true),
        )
        .arg(Arg::with_name("btconfig").long("btconfig").takes_value(true))
        .get_matches();

    let root_server_port = value_t!(matches, "root-server-port", u16).unwrap();
@@ -84,8 +72,8 @@ async fn async_main(rt: Arc<Runtime>, mut sigint: mpsc::UnboundedReceiver<()>) {

async fn indicate_started(signal_port: u16) {
    let address = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(0, 0, 0, 0)), signal_port);
    let stream = TcpStream::connect(address).await.unwrap();
    stream.shutdown(Shutdown::Both).unwrap();
    let mut stream = TcpStream::connect(address).await.unwrap();
    stream.shutdown().await.unwrap();
}

// TODO: remove as this is a temporary nix-based hack to catch SIGINT
+1 −0
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@ rust_library {
        "libnum_traits",
        "libthiserror",
        "libtokio",
        "libtokio_stream",
        "libprotobuf",
        "libgddi",
        "liblog_rust",
+3 −2
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@ use tokio::runtime::Runtime;
use tokio::select;
use tokio::sync::mpsc::{channel, Receiver, Sender};
use tokio::sync::{oneshot, Mutex};
use tokio_stream::wrappers::ReceiverStream;

module! {
    core_module,
@@ -108,11 +109,11 @@ async fn provide_acl_dispatch(
                            match bt {
                                Classic => {
                                    classic_outbound.push(fragmenting_stream(
                                        in_rx, controller.acl_buffer_length.into(), handle, bt, close_rx));
                                        ReceiverStream::new(in_rx), controller.acl_buffer_length.into(), handle, bt, close_rx));
                                },
                                Le => {
                                    le_outbound.push(fragmenting_stream(
                                        in_rx, controller.le_buffer_length.into(), handle, bt, close_rx));
                                        ReceiverStream::new(in_rx), controller.le_buffer_length.into(), handle, bt, close_rx));
                                },
                            }

+3 −2
Original line number Diff line number Diff line
@@ -8,8 +8,9 @@ use bt_packets::hci::{AclBuilder, AclChild, AclPacket, BroadcastFlag};
use bytes::{Buf, Bytes, BytesMut};
use futures::stream::{self, StreamExt};
use log::{error, info, warn};
use tokio::sync::mpsc::{Receiver, Sender};
use tokio::sync::mpsc::Sender;
use tokio::sync::oneshot;
use tokio_stream::wrappers::ReceiverStream;

const L2CAP_BASIC_FRAME_HEADER_LEN: usize = 4;

@@ -87,7 +88,7 @@ fn get_l2cap_pdu_size(first_packet: &Bytes) -> usize {
}

pub fn fragmenting_stream(
    rx: Receiver<Bytes>,
    rx: ReceiverStream<Bytes>,
    mtu: usize,
    handle: u16,
    bt: Bluetooth,
Loading