aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKennan Gumbs <kennangumbs@google.com>2021-07-07 15:54:14 -0400
committerOpenscreen LUCI CQ <openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com>2021-07-14 01:16:32 +0000
commit7e167e2bc4c8c0c650f00b995e1e20cb1ae1f479 (patch)
tree6a84d39db2234179deaac624ec05e0d86c40ceb1
parent01c7cc260a28bc0a814249f41825b35e021be271 (diff)
downloadopenscreen-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.cc3
-rw-r--r--cast/streaming/offer_messages.cc4
-rw-r--r--cast/streaming/receiver_packet_router.cc5
-rw-r--r--cast/streaming/sender_packet_router.cc5
-rw-r--r--util/stringprintf.cc6
-rw-r--r--util/stringprintf.h2
-rw-r--r--util/stringprintf_unittest.cc4
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