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

Commit 2d8da18f 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 am: 42cd321f

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

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Iae37a3e3286b0c4c609970eded8e41c137b30ae9
parents 8227a6f1 42cd321f
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