)]}'
{
  "commit": "ff28ea9a9ff3a809109dd59cfe5dcd57eda884a2",
  "tree": "d5312fbf17ccac996ebca8839a5d1e6d8d87ae90",
  "parents": [
    "81dd0fb2c0f38f26a3078ce89b009e9ba00e219f"
  ],
  "author": {
    "name": "Harald Alvestrand",
    "email": "hta@webrtc.org",
    "time": "Tue Apr 28 09:01:48 2026"
  },
  "committer": {
    "name": "webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Apr 28 09:08:28 2026"
  },
  "message": "[P2P] Modernize STUN and P2P code to use std::span\n\nThis change replaces (const void*, size_t) and (const char*, size_t)\npatterns with std::span\u003cconst uint8_t\u003e across the STUN and P2P codebases.\n\nKey changes:\n- Modernized api/transport/stun.h (StunMessage, StunByteStringAttribute).\n- Modernized p2p/base/port_interface.h, port.h and subclasses\n  (UDPPort, TCPPort, TurnPort, TestPort).\n- Modernized p2p/base/connection.h and stun_request.h.\n- Added [[deprecated]] shims for all public API changes to maintain\n  backward compatibility.\n- Updated all internal callers and unit tests.\n- Fixed a hardening assertion crash in api/transport/stun_unittest.cc.\n\nBug: webrtc:42225170\nChange-Id: I3ef7b21996b0c17a6292bce75be983112c9e6649\nReviewed-on: https://webrtc-review.googlesource.com/c/src/+/466420\nReviewed-by: Evan Shrubsole \u003ceshr@webrtc.org\u003e\nCommit-Queue: Harald Alvestrand \u003chta@webrtc.org\u003e\nCr-Commit-Position: refs/heads/main@{#47572}\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c83d96a13402c75d2d97a80937e8beddc5bec6a4",
      "old_mode": 33188,
      "old_path": "api/transport/BUILD.gn",
      "new_id": "e0f7e527ed828f1c483cc8e4d3f797138207fcac",
      "new_mode": 33188,
      "new_path": "api/transport/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "7da3887844e9be99ec1525b0c82bf5cdf165be7d",
      "old_mode": 33188,
      "old_path": "api/transport/DEPS",
      "new_id": "4f9869fae9dba9037d470b05d80ad0f562ec2840",
      "new_mode": 33188,
      "new_path": "api/transport/DEPS"
    },
    {
      "type": "modify",
      "old_id": "2849a5aa0c9eff6c6aa1829dbbc94c5cc9017e26",
      "old_mode": 33188,
      "old_path": "api/transport/stun.cc",
      "new_id": "ef5ea5d30accdb31dc9e33e5c60c67a7b86fc528",
      "new_mode": 33188,
      "new_path": "api/transport/stun.cc"
    },
    {
      "type": "modify",
      "old_id": "f9e0a8f1044412cdd3779e1c792cfdb5f08b10d2",
      "old_mode": 33188,
      "old_path": "api/transport/stun.h",
      "new_id": "e12b01d8025ecd21c22950417d747caf0cf15c60",
      "new_mode": 33188,
      "new_path": "api/transport/stun.h"
    },
    {
      "type": "modify",
      "old_id": "21d26ee7d6289ef514f1a949b46fe65eed788905",
      "old_mode": 33188,
      "old_path": "api/transport/stun_unittest.cc",
      "new_id": "8da2425685feb15559f235e12a054faaec216164",
      "new_mode": 33188,
      "new_path": "api/transport/stun_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "937dc57c0ca0be92c5cbd66869b38792a4fb75be",
      "old_mode": 33188,
      "old_path": "p2p/BUILD.gn",
      "new_id": "81f4b1797a2c2b0e23a5138aaf9d817dfaa33a4a",
      "new_mode": 33188,
      "new_path": "p2p/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "c1e1924adbaae731a1bb08e6259a053f62570fc5",
      "old_mode": 33188,
      "old_path": "p2p/base/async_stun_tcp_socket.h",
      "new_id": "a0150a89441e81703adb7936c9121cf6316b6ecb",
      "new_mode": 33188,
      "new_path": "p2p/base/async_stun_tcp_socket.h"
    },
    {
      "type": "modify",
      "old_id": "7857cc37f9731312222eb13919fe6be1e036b22d",
      "old_mode": 33188,
      "old_path": "p2p/base/async_stun_tcp_socket_unittest.cc",
      "new_id": "e1d06b94be9847cbe780ee43aa978a2598f238e4",
      "new_mode": 33188,
      "new_path": "p2p/base/async_stun_tcp_socket_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "6bb2e578b3cd08b747d009798abf307a5a64e1fa",
      "old_mode": 33188,
      "old_path": "p2p/base/connection.cc",
      "new_id": "a3c9b7a8610e94b5c5687cb8f19a84c4fedc7c7c",
      "new_mode": 33188,
      "new_path": "p2p/base/connection.cc"
    },
    {
      "type": "modify",
      "old_id": "fae6b285f498520541fc1dba993aeebbdb36db1a",
      "old_mode": 33188,
      "old_path": "p2p/base/connection.h",
      "new_id": "32f330cdc657bb5239f19dfcdc7f7e172228dcb8",
      "new_mode": 33188,
      "new_path": "p2p/base/connection.h"
    },
    {
      "type": "modify",
      "old_id": "76b5006e556bdf05acb9abef94d203ffa95a6804",
      "old_mode": 33188,
      "old_path": "p2p/base/p2p_transport_channel.cc",
      "new_id": "4edd58d8e8f9ef06af0b0dc5e67a843789737ac3",
      "new_mode": 33188,
      "new_path": "p2p/base/p2p_transport_channel.cc"
    },
    {
      "type": "modify",
      "old_id": "8b596e0b43c7e9f302b3f755eb85f034adb4d205",
      "old_mode": 33188,
      "old_path": "p2p/base/p2p_transport_channel_unittest.cc",
      "new_id": "1df544f0983bb81622c066b11190b7234ab9e893",
      "new_mode": 33188,
      "new_path": "p2p/base/p2p_transport_channel_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "f3200dda1845821c171229059095bf942e3b315d",
      "old_mode": 33188,
      "old_path": "p2p/base/port.cc",
      "new_id": "500de62233584faf06b85562023d6b6708140ab7",
      "new_mode": 33188,
      "new_path": "p2p/base/port.cc"
    },
    {
      "type": "modify",
      "old_id": "8fe4b00b33359eb519d6e93fc468de1dfeabf8e7",
      "old_mode": 33188,
      "old_path": "p2p/base/port.h",
      "new_id": "871e13db32f5fedd4da93c411ffa59098aec8629",
      "new_mode": 33188,
      "new_path": "p2p/base/port.h"
    },
    {
      "type": "modify",
      "old_id": "0f9d76a197806381db062481a82302f3eb065091",
      "old_mode": 33188,
      "old_path": "p2p/base/port_interface.h",
      "new_id": "6ff4c4c04a18ac404bf5a6f597615149e4457754",
      "new_mode": 33188,
      "new_path": "p2p/base/port_interface.h"
    },
    {
      "type": "modify",
      "old_id": "93ad08c056118b25cce922585916ace4474bf88b",
      "old_mode": 33188,
      "old_path": "p2p/base/port_unittest.cc",
      "new_id": "7ebe8dccc40a47c1aa2f046f93280857101c1ede",
      "new_mode": 33188,
      "new_path": "p2p/base/port_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "548cf4037bc060e4e68ed4215f97f7eacc3df336",
      "old_mode": 33188,
      "old_path": "p2p/base/stun_dictionary.cc",
      "new_id": "cc28d8b6ce75825f354a99277b8a8cdbe29a2beb",
      "new_mode": 33188,
      "new_path": "p2p/base/stun_dictionary.cc"
    },
    {
      "type": "modify",
      "old_id": "c440624ef2ac7aa984e702d0f2f697c7008efbcc",
      "old_mode": 33188,
      "old_path": "p2p/base/stun_port.cc",
      "new_id": "e35c9ca91f29cde33bcbc7147dd6b814e8a2ac45",
      "new_mode": 33188,
      "new_path": "p2p/base/stun_port.cc"
    },
    {
      "type": "modify",
      "old_id": "684cbebb37fed87e3c8da34d5096a3041786a256",
      "old_mode": 33188,
      "old_path": "p2p/base/stun_port.h",
      "new_id": "3baaf138f78d673ad970fc76227e4f914d985d4b",
      "new_mode": 33188,
      "new_path": "p2p/base/stun_port.h"
    },
    {
      "type": "modify",
      "old_id": "1a18d2ba21928cd24bc0dd0db2001614de2086e1",
      "old_mode": 33188,
      "old_path": "p2p/base/stun_request.cc",
      "new_id": "eb60eb6c51effce1e0c3402b7068823383990404",
      "new_mode": 33188,
      "new_path": "p2p/base/stun_request.cc"
    },
    {
      "type": "modify",
      "old_id": "ccd284a997565e952f31ab969b90826b861adf1b",
      "old_mode": 33188,
      "old_path": "p2p/base/stun_request.h",
      "new_id": "3044a03e953c59c5c54001d7100a25e4e9109075",
      "new_mode": 33188,
      "new_path": "p2p/base/stun_request.h"
    },
    {
      "type": "modify",
      "old_id": "a0998a3239fe204f0f39bd98680ed0931d41c97c",
      "old_mode": 33188,
      "old_path": "p2p/base/stun_request_unittest.cc",
      "new_id": "0ec28aa1dd68b0f40edcd6c28b22a1833375cdee",
      "new_mode": 33188,
      "new_path": "p2p/base/stun_request_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "87ef5bffd0efe300e3f4efb890f38242dff4d0a1",
      "old_mode": 33188,
      "old_path": "p2p/base/tcp_port.cc",
      "new_id": "39253c65e74834831247f25f8cd6008108e5513a",
      "new_mode": 33188,
      "new_path": "p2p/base/tcp_port.cc"
    },
    {
      "type": "modify",
      "old_id": "130e2490c7c86cf603a05503dc39ad91f6bfb8b2",
      "old_mode": 33188,
      "old_path": "p2p/base/tcp_port.h",
      "new_id": "74cac0384bf4e08fbadae6d221c906521928614e",
      "new_mode": 33188,
      "new_path": "p2p/base/tcp_port.h"
    },
    {
      "type": "modify",
      "old_id": "97de11c021cf55964aba864e914d2ad157d5186c",
      "old_mode": 33188,
      "old_path": "p2p/base/tcp_port_unittest.cc",
      "new_id": "143220d0bf15d30a80c8c63c79f5ad276a8d9750",
      "new_mode": 33188,
      "new_path": "p2p/base/tcp_port_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "a0df6b5296e86ee9e1798c3736eb3224365ea214",
      "old_mode": 33188,
      "old_path": "p2p/base/turn_port.cc",
      "new_id": "10e9d1e49c66d4613c1f059d1bb305fee4953b59",
      "new_mode": 33188,
      "new_path": "p2p/base/turn_port.cc"
    },
    {
      "type": "modify",
      "old_id": "28547e83dd335a26d1b2b9424577041e192278c8",
      "old_mode": 33188,
      "old_path": "p2p/base/turn_port.h",
      "new_id": "04a1e340b097341d18e43918785bfcad4e57488d",
      "new_mode": 33188,
      "new_path": "p2p/base/turn_port.h"
    },
    {
      "type": "modify",
      "old_id": "b23f33ad4c857dc1e32d1f9e7984a72a2c61b2ef",
      "old_mode": 33188,
      "old_path": "p2p/base/turn_port_unittest.cc",
      "new_id": "346f4b7e95eb42d185659e597df6488a4c0baa40",
      "new_mode": 33188,
      "new_path": "p2p/base/turn_port_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "7ff86af6d990fd869f71f36a536b339561d8e555",
      "old_mode": 33188,
      "old_path": "p2p/dtls/dtls_stun_piggyback_controller_unittest.cc",
      "new_id": "cadc0ada54659764b3f114ce1f0285da0526df72",
      "new_mode": 33188,
      "new_path": "p2p/dtls/dtls_stun_piggyback_controller_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "864bd4013133fd93646374e94a5653187e341f84",
      "old_mode": 33188,
      "old_path": "p2p/test/fake_ice_transport.h",
      "new_id": "4163af5f000b23d7dd46a2b4603d14c0715e1b2d",
      "new_mode": 33188,
      "new_path": "p2p/test/fake_ice_transport.h"
    },
    {
      "type": "modify",
      "old_id": "eb4161cf1d3bc5e038e96d0d2e603190f3351487",
      "old_mode": 33188,
      "old_path": "p2p/test/test_port.cc",
      "new_id": "83cc7ecdc06e2bed1a826ec1d815c327230f3849",
      "new_mode": 33188,
      "new_path": "p2p/test/test_port.cc"
    },
    {
      "type": "modify",
      "old_id": "8d107975275584f625c20c35f46a5fa08cd74cc3",
      "old_mode": 33188,
      "old_path": "p2p/test/test_port.h",
      "new_id": "13340279d2c9689045964f023c130268edd695c7",
      "new_mode": 33188,
      "new_path": "p2p/test/test_port.h"
    },
    {
      "type": "modify",
      "old_id": "40060b1400e157de095dad3cde814945d84674a3",
      "old_mode": 33188,
      "old_path": "p2p/test/turn_server.cc",
      "new_id": "9a1236f524293bb51f7a15d7ecf624bf09e2cb4f",
      "new_mode": 33188,
      "new_path": "p2p/test/turn_server.cc"
    },
    {
      "type": "modify",
      "old_id": "d209a680cdaf552c2831f333ba76fbb7f14d5778",
      "old_mode": 33188,
      "old_path": "rtc_base/async_packet_socket.h",
      "new_id": "30723fc0b53f453ddedbdf1167190bd25d731fec",
      "new_mode": 33188,
      "new_path": "rtc_base/async_packet_socket.h"
    },
    {
      "type": "modify",
      "old_id": "c937fdd08f0a8f61935655734bb41ca38116c9c2",
      "old_mode": 33188,
      "old_path": "rtc_base/async_tcp_socket.h",
      "new_id": "0b0b09c2f664bd1e90547177c25662e119ba04cd",
      "new_mode": 33188,
      "new_path": "rtc_base/async_tcp_socket.h"
    },
    {
      "type": "modify",
      "old_id": "e175271d9f928c723cbe20593285fe7c8c43e799",
      "old_mode": 33188,
      "old_path": "rtc_base/crc32.h",
      "new_id": "c94adb31462b467a81042699b9ae8412c85a7bb0",
      "new_mode": 33188,
      "new_path": "rtc_base/crc32.h"
    },
    {
      "type": "modify",
      "old_id": "ef3edb13665ad86ffdecfd8b2fb32e409aaacbc2",
      "old_mode": 33188,
      "old_path": "rtc_base/message_digest.h",
      "new_id": "d8c78d09b5748f4e23287e9b12eeee8dc3223bbb",
      "new_mode": 33188,
      "new_path": "rtc_base/message_digest.h"
    },
    {
      "type": "modify",
      "old_id": "6de382ce8d22e3947241b1e08df405135ac1405c",
      "old_mode": 33188,
      "old_path": "rtc_base/span_helpers.h",
      "new_id": "89a9913a2b0d93476779d4755ed62b7193ece215",
      "new_mode": 33188,
      "new_path": "rtc_base/span_helpers.h"
    },
    {
      "type": "modify",
      "old_id": "34244b1a03dd1a2e261c7c30d4d612c90b336c52",
      "old_mode": 33188,
      "old_path": "test/fuzzers/BUILD.gn",
      "new_id": "f68cf156e61d051801484ed457f47287c0bead78",
      "new_mode": 33188,
      "new_path": "test/fuzzers/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "ec1892afdee2a158f3d2ac6e803cd0ed4efca181",
      "old_mode": 33188,
      "old_path": "test/fuzzers/stun_validator_fuzzer.cc",
      "new_id": "d1bd1dff700ccff71bd39f6be00d18dbab91b035",
      "new_mode": 33188,
      "new_path": "test/fuzzers/stun_validator_fuzzer.cc"
    },
    {
      "type": "modify",
      "old_id": "8efff17ea25aa79e47adf24c9a2c42207576adc7",
      "old_mode": 33188,
      "old_path": "test/peer_scenario/bwe_integration_tests/l4s_test.cc",
      "new_id": "f1b0ce6bf29c9988dce16d61cdb7065fa0d64e7d",
      "new_mode": 33188,
      "new_path": "test/peer_scenario/bwe_integration_tests/l4s_test.cc"
    }
  ]
}
