Improve capsule logging

This CL is a no-op apart from MASQUE CONNECT-IP code.

PiperOrigin-RevId: 486469711
diff --git a/quiche/quic/core/http/capsule.cc b/quiche/quic/core/http/capsule.cc
index fc062b9..6d9d5c8 100644
--- a/quiche/quic/core/http/capsule.cc
+++ b/quiche/quic/core/http/capsule.cc
@@ -248,67 +248,77 @@
   }
 }
 
+std::string DatagramCapsule::ToString() const {
+  return absl::StrCat("DATAGRAM[",
+                      absl::BytesToHexString(http_datagram_payload), "]");
+}
+
+std::string LegacyDatagramCapsule::ToString() const {
+  return absl::StrCat("LEGACY_DATAGRAM[",
+                      absl::BytesToHexString(http_datagram_payload), "]");
+}
+
+std::string LegacyDatagramWithoutContextCapsule::ToString() const {
+  return absl::StrCat("LEGACY_DATAGRAM_WITHOUT_CONTEXT[",
+                      absl::BytesToHexString(http_datagram_payload), "]");
+}
+
+std::string CloseWebTransportSessionCapsule::ToString() const {
+  return absl::StrCat("CLOSE_WEBTRANSPORT_SESSION(error_code=", error_code,
+                      ",error_message=\"", error_message, "\")");
+}
+
+std::string AddressRequestCapsule::ToString() const {
+  std::string rv = "ADDRESS_REQUEST[";
+  for (auto requested_address : requested_addresses) {
+    absl::StrAppend(&rv, "(", requested_address.request_id, "-",
+                    requested_address.ip_prefix.ToString(), ")");
+  }
+  absl::StrAppend(&rv, "]");
+  return rv;
+}
+
+std::string AddressAssignCapsule::ToString() const {
+  std::string rv = "ADDRESS_ASSIGN[";
+  for (auto assigned_address : assigned_addresses) {
+    absl::StrAppend(&rv, "(", assigned_address.request_id, "-",
+                    assigned_address.ip_prefix.ToString(), ")");
+  }
+  absl::StrAppend(&rv, "]");
+  return rv;
+}
+
+std::string RouteAdvertisementCapsule::ToString() const {
+  std::string rv = "ROUTE_ADVERTISEMENT[";
+  for (auto ip_address_range : ip_address_ranges) {
+    absl::StrAppend(&rv, "(", ip_address_range.start_ip_address.ToString(), "-",
+                    ip_address_range.end_ip_address.ToString(), "-",
+                    static_cast<int>(ip_address_range.ip_protocol), ")");
+  }
+  absl::StrAppend(&rv, "]");
+  return rv;
+}
+
 std::string Capsule::ToString() const {
-  std::string rv = CapsuleTypeToString(capsule_type_);
   switch (capsule_type_) {
     case CapsuleType::DATAGRAM:
-      absl::StrAppend(
-          &rv, "[",
-          absl::BytesToHexString(datagram_capsule_.http_datagram_payload), "]");
-      break;
+      return datagram_capsule_.ToString();
     case CapsuleType::LEGACY_DATAGRAM:
-      absl::StrAppend(&rv, "[",
-                      absl::BytesToHexString(
-                          legacy_datagram_capsule_.http_datagram_payload),
-                      "]");
-      break;
+      return legacy_datagram_capsule_.ToString();
     case CapsuleType::LEGACY_DATAGRAM_WITHOUT_CONTEXT:
-      absl::StrAppend(
-          &rv, "[",
-          absl::BytesToHexString(
-              legacy_datagram_without_context_capsule_.http_datagram_payload),
-          "]");
-      break;
+      return legacy_datagram_without_context_capsule_.ToString();
     case CapsuleType::CLOSE_WEBTRANSPORT_SESSION:
-      absl::StrAppend(
-          &rv, "(error_code=", close_web_transport_session_capsule_.error_code,
-          ",error_message=\"",
-          close_web_transport_session_capsule_.error_message, "\")");
-      break;
-    case CapsuleType::ADDRESS_REQUEST: {
-      absl::StrAppend(&rv, "[");
-      for (auto requested_address :
-           address_request_capsule_->requested_addresses) {
-        absl::StrAppend(&rv, "(", requested_address.request_id, "-",
-                        requested_address.ip_prefix.ToString(), ")");
-      }
-      absl::StrAppend(&rv, "]");
-    } break;
-    case CapsuleType::ADDRESS_ASSIGN: {
-      absl::StrAppend(&rv, "[");
-      for (auto assigned_address :
-           address_assign_capsule_->assigned_addresses) {
-        absl::StrAppend(&rv, "(", assigned_address.request_id, "-",
-                        assigned_address.ip_prefix.ToString(), ")");
-      }
-      absl::StrAppend(&rv, "]");
-    } break;
-    case CapsuleType::ROUTE_ADVERTISEMENT: {
-      absl::StrAppend(&rv, "[");
-      for (auto ip_address_range :
-           route_advertisement_capsule_->ip_address_ranges) {
-        absl::StrAppend(&rv, "(", ip_address_range.start_ip_address.ToString(),
-                        "-", ip_address_range.end_ip_address.ToString(), "-",
-                        static_cast<int>(ip_address_range.ip_protocol), ")");
-      }
-      absl::StrAppend(&rv, "]");
-    } break;
+      return close_web_transport_session_capsule_.ToString();
+    case CapsuleType::ADDRESS_REQUEST:
+      return address_request_capsule_->ToString();
+    case CapsuleType::ADDRESS_ASSIGN:
+      return address_assign_capsule_->ToString();
+    case CapsuleType::ROUTE_ADVERTISEMENT:
+      return route_advertisement_capsule_->ToString();
     default:
-      absl::StrAppend(&rv, "[", absl::BytesToHexString(unknown_capsule_data_),
-                      "]");
-      break;
+      return absl::StrCat(CapsuleTypeToString(capsule_type_), "[",
+                          absl::BytesToHexString(unknown_capsule_data_), "]");
   }
-  return rv;
 }
 
 std::ostream& operator<<(std::ostream& os, const Capsule& capsule) {
diff --git a/quiche/quic/core/http/capsule.h b/quiche/quic/core/http/capsule.h
index c7866a8..198f667 100644
--- a/quiche/quic/core/http/capsule.h
+++ b/quiche/quic/core/http/capsule.h
@@ -39,16 +39,20 @@
 
 struct QUIC_EXPORT_PRIVATE DatagramCapsule {
   absl::string_view http_datagram_payload;
+  std::string ToString() const;
 };
 struct QUIC_EXPORT_PRIVATE LegacyDatagramCapsule {
   absl::string_view http_datagram_payload;
+  std::string ToString() const;
 };
 struct QUIC_EXPORT_PRIVATE LegacyDatagramWithoutContextCapsule {
   absl::string_view http_datagram_payload;
+  std::string ToString() const;
 };
 struct QUIC_EXPORT_PRIVATE CloseWebTransportSessionCapsule {
   WebTransportSessionError error_code;
   absl::string_view error_message;
+  std::string ToString() const;
 };
 struct QUIC_EXPORT_PRIVATE PrefixWithId {
   uint64_t request_id;
@@ -64,14 +68,17 @@
 struct QUIC_EXPORT_PRIVATE AddressAssignCapsule {
   std::vector<PrefixWithId> assigned_addresses;
   bool operator==(const AddressAssignCapsule& other) const;
+  std::string ToString() const;
 };
 struct QUIC_EXPORT_PRIVATE AddressRequestCapsule {
   std::vector<PrefixWithId> requested_addresses;
   bool operator==(const AddressRequestCapsule& other) const;
+  std::string ToString() const;
 };
 struct QUIC_EXPORT_PRIVATE RouteAdvertisementCapsule {
   std::vector<IpAddressRange> ip_address_ranges;
   bool operator==(const RouteAdvertisementCapsule& other) const;
+  std::string ToString() const;
 };
 
 // Capsule from RFC 9297.
diff --git a/quiche/quic/masque/masque_encapsulated_client_session.cc b/quiche/quic/masque/masque_encapsulated_client_session.cc
index 6b76417..a4d83f6 100644
--- a/quiche/quic/masque/masque_encapsulated_client_session.cc
+++ b/quiche/quic/masque/masque_encapsulated_client_session.cc
@@ -217,6 +217,7 @@
 
 bool MasqueEncapsulatedClientSession::OnAddressAssignCapsule(
     const AddressAssignCapsule& capsule) {
+  QUIC_DLOG(INFO) << "Received capsule " << capsule.ToString();
   for (auto assigned_address : capsule.assigned_addresses) {
     if (assigned_address.ip_prefix.address().IsIPv4() &&
         !local_v4_address_.IsInitialized()) {
@@ -236,12 +237,14 @@
 }
 
 bool MasqueEncapsulatedClientSession::OnAddressRequestCapsule(
-    const AddressRequestCapsule& /*capsule*/) {
+    const AddressRequestCapsule& capsule) {
+  QUIC_DLOG(INFO) << "Ignoring received capsule " << capsule.ToString();
   return true;
 }
 
 bool MasqueEncapsulatedClientSession::OnRouteAdvertisementCapsule(
-    const RouteAdvertisementCapsule& /*capsule*/) {
+    const RouteAdvertisementCapsule& capsule) {
+  QUIC_DLOG(INFO) << "Ignoring received capsule " << capsule.ToString();
   return true;
 }
 
diff --git a/quiche/quic/masque/masque_server_session.cc b/quiche/quic/masque/masque_server_session.cc
index f770b70..2feb48d 100644
--- a/quiche/quic/masque/masque_server_session.cc
+++ b/quiche/quic/masque/masque_server_session.cc
@@ -594,17 +594,20 @@
 }
 
 bool MasqueServerSession::ConnectIpServerState::OnAddressAssignCapsule(
-    const AddressAssignCapsule& /*capsule*/) {
+    const AddressAssignCapsule& capsule) {
+  QUIC_DLOG(INFO) << "Ignoring received capsule " << capsule.ToString();
   return true;
 }
 
 bool MasqueServerSession::ConnectIpServerState::OnAddressRequestCapsule(
-    const AddressRequestCapsule& /*capsule*/) {
+    const AddressRequestCapsule& capsule) {
+  QUIC_DLOG(INFO) << "Ignoring received capsule " << capsule.ToString();
   return true;
 }
 
 bool MasqueServerSession::ConnectIpServerState::OnRouteAdvertisementCapsule(
-    const RouteAdvertisementCapsule& /*capsule*/) {
+    const RouteAdvertisementCapsule& capsule) {
+  QUIC_DLOG(INFO) << "Ignoring received capsule " << capsule.ToString();
   return true;
 }