diff options
author | Kennan Gumbs <kennangumbs@google.com> | 2021-07-07 15:54:14 -0400 |
---|---|---|
committer | Openscreen LUCI CQ <openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2021-07-14 01:16:32 +0000 |
commit | 7e167e2bc4c8c0c650f00b995e1e20cb1ae1f479 (patch) | |
tree | 6a84d39db2234179deaac624ec05e0d86c40ceb1 | |
parent | 01c7cc260a28bc0a814249f41825b35e021be271 (diff) | |
download | openscreen-7e167e2bc4c8c0c650f00b995e1e20cb1ae1f479.tar.gz |
Remove abseil dependency from HexEncode method
Currently the HexEncode method defined in util/stringprintf.h depends on
absl::Span, which is part of abseil. This patch removes the dependency,
allowing the method to be more widely used.
Bug: b/158660166
Change-Id: I37715271391000b5c61d5a657f604db2bc6c882e
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/3001949
Reviewed-by: Jordan Bayles <jophba@chromium.org>
Commit-Queue: Jordan Bayles <jophba@chromium.org>
-rw-r--r-- | cast/standalone_receiver/cast_service.cc | 3 | ||||
-rw-r--r-- | cast/streaming/offer_messages.cc | 4 | ||||
-rw-r--r-- | cast/streaming/receiver_packet_router.cc | 5 | ||||
-rw-r--r-- | cast/streaming/sender_packet_router.cc | 5 | ||||
-rw-r--r-- | util/stringprintf.cc | 6 | ||||
-rw-r--r-- | util/stringprintf.h | 2 | ||||
-rw-r--r-- | util/stringprintf_unittest.cc | 4 |
7 files changed, 16 insertions, 13 deletions
diff --git a/cast/standalone_receiver/cast_service.cc b/cast/standalone_receiver/cast_service.cc index 009190b0..0e3d9c9c 100644 --- a/cast/standalone_receiver/cast_service.cc +++ b/cast/standalone_receiver/cast_service.cc @@ -69,7 +69,8 @@ CastService::CastService(CastService::Configuration config) if (discovery_publisher_) { ReceiverInfo info; info.port = local_endpoint_.port; - info.unique_id = HexEncode(config.interface.hardware_address); + info.unique_id = HexEncode(config.interface.hardware_address.data(), + config.interface.hardware_address.size()); info.friendly_name = config.friendly_name; info.model_name = config.model_name; info.capabilities = kHasVideoOutput | kHasAudioOutput; diff --git a/cast/streaming/offer_messages.cc b/cast/streaming/offer_messages.cc index 3e816026..eeefcc5d 100644 --- a/cast/streaming/offer_messages.cc +++ b/cast/streaming/offer_messages.cc @@ -202,8 +202,8 @@ Json::Value Stream::ToJson() const { "this code assumes Ssrc fits in a Json::UInt"); root["ssrc"] = static_cast<Json::UInt>(ssrc); root["targetDelay"] = static_cast<int>(target_delay.count()); - root["aesKey"] = HexEncode(aes_key); - root["aesIvMask"] = HexEncode(aes_iv_mask); + root["aesKey"] = HexEncode(aes_key.data(), aes_key.size()); + root["aesIvMask"] = HexEncode(aes_iv_mask.data(), aes_iv_mask.size()); root["receiverRtcpEventLog"] = receiver_rtcp_event_log; root["receiverRtcpDscp"] = receiver_rtcp_dscp; root["timeBase"] = "1/" + std::to_string(rtp_timebase); diff --git a/cast/streaming/receiver_packet_router.cc b/cast/streaming/receiver_packet_router.cc index 1ac4266a..23b99ce4 100644 --- a/cast/streaming/receiver_packet_router.cc +++ b/cast/streaming/receiver_packet_router.cc @@ -73,10 +73,11 @@ void ReceiverPacketRouter::OnReceivedPacket(const IPEndpoint& source, InspectPacketForRouting(packet); if (seems_like.first == ApparentPacketType::UNKNOWN) { constexpr int kMaxPartiaHexDumpSize = 96; + const std::size_t encode_size = + std::min(packet.size(), static_cast<size_t>(kMaxPartiaHexDumpSize)); OSP_LOG_WARN << "UNKNOWN packet of " << packet.size() << " bytes. Partial hex dump: " - << HexEncode(absl::Span<const uint8_t>(packet).subspan( - 0, kMaxPartiaHexDumpSize)); + << HexEncode(packet.data(), encode_size); return; } auto it = receivers_.find(seems_like.second); diff --git a/cast/streaming/sender_packet_router.cc b/cast/streaming/sender_packet_router.cc index c2b23dbf..684b1fb2 100644 --- a/cast/streaming/sender_packet_router.cc +++ b/cast/streaming/sender_packet_router.cc @@ -102,10 +102,11 @@ void SenderPacketRouter::OnReceivedPacket(const IPEndpoint& source, InspectPacketForRouting(packet); if (seems_like.first != ApparentPacketType::RTCP) { constexpr int kMaxPartiaHexDumpSize = 96; + const std::size_t encode_size = + std::min(packet.size(), static_cast<size_t>(kMaxPartiaHexDumpSize)); OSP_LOG_WARN << "UNKNOWN packet of " << packet.size() << " bytes. Partial hex dump: " - << HexEncode(absl::Span<const uint8_t>(packet).subspan( - 0, kMaxPartiaHexDumpSize)); + << HexEncode(packet.data(), encode_size); return; } const auto it = FindEntry(seems_like.second); diff --git a/util/stringprintf.cc b/util/stringprintf.cc index 2d9bba22..49c29dc8 100644 --- a/util/stringprintf.cc +++ b/util/stringprintf.cc @@ -32,11 +32,11 @@ std::string StringPrintf(const char* format, ...) { return result; } -std::string HexEncode(absl::Span<const uint8_t> bytes) { +std::string HexEncode(const uint8_t* bytes, std::size_t len) { std::ostringstream hex_dump; hex_dump << std::setfill('0') << std::hex; - for (const uint8_t byte : bytes) { - hex_dump << std::setw(2) << static_cast<int>(byte); + for (std::size_t i = 0; i < len; i++) { + hex_dump << std::setw(2) << static_cast<int>(bytes[i]); } return hex_dump.str(); } diff --git a/util/stringprintf.h b/util/stringprintf.h index 0e7984e1..7e54be3c 100644 --- a/util/stringprintf.h +++ b/util/stringprintf.h @@ -55,7 +55,7 @@ void PrettyPrintAsciiHex(std::ostream& os, It first, It last) { } // Returns a hex string representation of the given |bytes|. -std::string HexEncode(absl::Span<const uint8_t> bytes); +std::string HexEncode(const uint8_t* bytes, std::size_t len); } // namespace openscreen diff --git a/util/stringprintf_unittest.cc b/util/stringprintf_unittest.cc index e37e7cb6..bf882163 100644 --- a/util/stringprintf_unittest.cc +++ b/util/stringprintf_unittest.cc @@ -20,13 +20,13 @@ TEST(StringPrintf, ProducesFormattedStrings) { TEST(HexEncode, ProducesEmptyStringFromEmptyByteArray) { const uint8_t kSomeMemoryLocation = 0; - EXPECT_EQ("", HexEncode(absl::Span<const uint8_t>(&kSomeMemoryLocation, 0))); + EXPECT_EQ("", HexEncode(&kSomeMemoryLocation, 0)); } TEST(HexEncode, ProducesHexStringsFromBytes) { const uint8_t kMessage[] = "Hello world!"; const char kMessageInHex[] = "48656c6c6f20776f726c642100"; - EXPECT_EQ(kMessageInHex, HexEncode(kMessage)); + EXPECT_EQ(kMessageInHex, HexEncode(kMessage, sizeof(kMessage))); } } // namespace |