Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(290)

Side by Side Diff: net/tools/quic/quic_packet_printer_bin.cc

Issue 2603723002: Add a new QUIC platform API for text utilities. (Closed)
Patch Set: net/tools/quic/quic_packet_printer_bin.cc Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // clang-format off 5 // clang-format off
6 6
7 // Dumps out the decryptable contents of a QUIC packet in a human-readable way. 7 // Dumps out the decryptable contents of a QUIC packet in a human-readable way.
8 // If the packet is null encrypted, this will dump full packet contents. 8 // If the packet is null encrypted, this will dump full packet contents.
9 // Otherwise it will dump the public header, and fail with an error that the 9 // Otherwise it will dump the public header, and fail with an error that the
10 // packet is undecryptable. 10 // packet is undecryptable.
(...skipping 18 matching lines...) Expand all
29 // OnStopWaitingFrame 29 // OnStopWaitingFrame
30 // OnConnectionCloseFrame: error_code { 61 } error_details { Unencrypted stream 30 // OnConnectionCloseFrame: error_code { 61 } error_details { Unencrypted stream
31 // data seen } 31 // data seen }
32 32
33 // clang-format on 33 // clang-format on
34 34
35 #include <iostream> 35 #include <iostream>
36 #include <string> 36 #include <string>
37 37
38 #include "base/command_line.h" 38 #include "base/command_line.h"
39 #include "base/strings/string_number_conversions.h"
40 #include "base/strings/utf_string_conversions.h" 39 #include "base/strings/utf_string_conversions.h"
41 #include "net/quic/core/quic_framer.h" 40 #include "net/quic/core/quic_framer.h"
42 #include "net/quic/core/quic_utils.h" 41 #include "net/quic/core/quic_utils.h"
42 #include "net/quic/platform/api/quic_text_utils.h"
43 43
44 using std::cerr; 44 using std::cerr;
45 using std::string; 45 using std::string;
46 46
47 // If set, specify the QUIC version to use. 47 // If set, specify the QUIC version to use.
48 string FLAGS_quic_version = ""; 48 string FLAGS_quic_version = "";
49 49
50 namespace { 50 namespace {
51 51
52 string ArgToString(base::CommandLine::StringType arg) { 52 string ArgToString(base::CommandLine::StringType arg) {
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 DCHECK_EQ(ENCRYPTION_NONE, level); 96 DCHECK_EQ(ENCRYPTION_NONE, level);
97 cerr << "OnDecryptedPacket\n"; 97 cerr << "OnDecryptedPacket\n";
98 } 98 }
99 bool OnPacketHeader(const QuicPacketHeader& header) override { 99 bool OnPacketHeader(const QuicPacketHeader& header) override {
100 cerr << "OnPacketHeader\n"; 100 cerr << "OnPacketHeader\n";
101 return true; 101 return true;
102 } 102 }
103 bool OnStreamFrame(const QuicStreamFrame& frame) override { 103 bool OnStreamFrame(const QuicStreamFrame& frame) override {
104 cerr << "OnStreamFrame: " << frame; 104 cerr << "OnStreamFrame: " << frame;
105 cerr << " data: { " 105 cerr << " data: { "
106 << QuicUtils::HexEncode(frame.data_buffer, frame.data_length) 106 << QuicTextUtils::HexEncode(frame.data_buffer, frame.data_length)
107 << " }\n"; 107 << " }\n";
108 return true; 108 return true;
109 } 109 }
110 bool OnAckFrame(const QuicAckFrame& frame) override { 110 bool OnAckFrame(const QuicAckFrame& frame) override {
111 cerr << "OnAckFrame: " << frame; 111 cerr << "OnAckFrame: " << frame;
112 return true; 112 return true;
113 } 113 }
114 bool OnStopWaitingFrame(const QuicStopWaitingFrame& frame) override { 114 bool OnStopWaitingFrame(const QuicStopWaitingFrame& frame) override {
115 cerr << "OnStopWaitingFrame: " << frame; 115 cerr << "OnStopWaitingFrame: " << frame;
116 return true; 116 return true;
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 net::Perspective perspective; 174 net::Perspective perspective;
175 if (perspective_string == "client") { 175 if (perspective_string == "client") {
176 perspective = net::Perspective::IS_CLIENT; 176 perspective = net::Perspective::IS_CLIENT;
177 } else if (perspective_string == "server") { 177 } else if (perspective_string == "server") {
178 perspective = net::Perspective::IS_SERVER; 178 perspective = net::Perspective::IS_SERVER;
179 } else { 179 } else {
180 cerr << "Invalid perspective. " << perspective_string 180 cerr << "Invalid perspective. " << perspective_string
181 << " Usage: " << args[0] << " client|server <hex>\n"; 181 << " Usage: " << args[0] << " client|server <hex>\n";
182 return 1; 182 return 1;
183 } 183 }
184 string hex = net::QuicUtils::HexDecode(ArgToString(args[1])); 184 string hex = net::QuicTextUtils::HexDecode(argv[2]);
185 net::QuicVersionVector versions = net::AllSupportedVersions(); 185 net::QuicVersionVector versions = net::AllSupportedVersions();
186 // Fake a time since we're not actually generating acks. 186 // Fake a time since we're not actually generating acks.
187 net::QuicTime start(net::QuicTime::Zero()); 187 net::QuicTime start(net::QuicTime::Zero());
188 net::QuicFramer framer(versions, start, perspective); 188 net::QuicFramer framer(versions, start, perspective);
189 if (!FLAGS_quic_version.empty()) { 189 if (!FLAGS_quic_version.empty()) {
190 for (net::QuicVersion version : versions) { 190 for (net::QuicVersion version : versions) {
191 if (net::QuicVersionToString(version) == FLAGS_quic_version) { 191 if (net::QuicVersionToString(version) == FLAGS_quic_version) {
192 framer.set_version(version); 192 framer.set_version(version);
193 } 193 }
194 } 194 }
195 } 195 }
196 net::QuicPacketPrinter visitor(&framer); 196 net::QuicPacketPrinter visitor(&framer);
197 framer.set_visitor(&visitor); 197 framer.set_visitor(&visitor);
198 net::QuicEncryptedPacket encrypted(hex.c_str(), hex.length()); 198 net::QuicEncryptedPacket encrypted(hex.c_str(), hex.length());
199 return framer.ProcessPacket(encrypted); 199 return framer.ProcessPacket(encrypted);
200 } 200 }
OLDNEW
« no previous file with comments | « net/tools/quic/quic_http_response_cache_test.cc ('k') | net/tools/quic/quic_simple_client_bin.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698