Refine schema of ReportVmActivePortsRequest

Bug: 382998551
Test: Run VmTerminalApp

Change-Id: I3dc31ed162cfc9fd59d5a5e962603a0cc6dcbcbe
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/DebianServiceImpl.java b/android/TerminalApp/java/com/android/virtualization/terminal/DebianServiceImpl.java
index 9a97a52..147a7e5 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/DebianServiceImpl.java
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/DebianServiceImpl.java
@@ -33,8 +33,8 @@
 
 import io.grpc.stub.StreamObserver;
 
-import java.util.HashSet;
 import java.util.Set;
+import java.util.stream.Collectors;
 
 final class DebianServiceImpl extends DebianServiceGrpc.DebianServiceImplBase {
     private final Context mContext;
@@ -57,7 +57,10 @@
             ReportVmActivePortsRequest request,
             StreamObserver<ReportVmActivePortsResponse> responseObserver) {
         Log.d(TAG, "reportVmActivePorts: " + request.toString());
-        mPortsStateManager.updateActivePorts(new HashSet<>(request.getPortsList()));
+        mPortsStateManager.updateActivePorts(
+                request.getPortsList().stream()
+                        .map(activePort -> activePort.getPort())
+                        .collect(Collectors.toSet()));
         ReportVmActivePortsResponse reply =
                 ReportVmActivePortsResponse.newBuilder().setSuccess(true).build();
         responseObserver.onNext(reply);
diff --git a/guest/forwarder_guest_launcher/src/main.rs b/guest/forwarder_guest_launcher/src/main.rs
index 6a2a692..bed8965 100644
--- a/guest/forwarder_guest_launcher/src/main.rs
+++ b/guest/forwarder_guest_launcher/src/main.rs
@@ -18,7 +18,7 @@
 use clap::Parser;
 use csv_async::AsyncReader;
 use debian_service::debian_service_client::DebianServiceClient;
-use debian_service::{QueueOpeningRequest, ReportVmActivePortsRequest};
+use debian_service::{ActivePort, QueueOpeningRequest, ReportVmActivePortsRequest};
 use futures::stream::StreamExt;
 use log::{debug, error};
 use serde::Deserialize;
@@ -93,7 +93,7 @@
 ) -> Result<(), Box<dyn std::error::Error>> {
     let res = client
         .report_vm_active_ports(Request::new(ReportVmActivePortsRequest {
-            ports: listening_ports.into_iter().collect(),
+            ports: listening_ports.into_iter().map(|port| ActivePort { port }).collect(),
         }))
         .await?
         .into_inner();
diff --git a/libs/debian_service/proto/DebianService.proto b/libs/debian_service/proto/DebianService.proto
index 60f20d4..7ab0af7 100644
--- a/libs/debian_service/proto/DebianService.proto
+++ b/libs/debian_service/proto/DebianService.proto
@@ -31,8 +31,13 @@
   int32 cid = 1;
 }
 
+// TODO(b/382998551): Add more information about the port.
+message ActivePort {
+  int32 port = 1;
+}
+
 message ReportVmActivePortsRequest {
-  repeated int32 ports = 1;
+  repeated ActivePort ports = 1;
 }
 
 message ReportVmActivePortsResponse {