OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #include "extensions/browser/api/cast_channel/logger.h" | 5 #include "extensions/browser/api/cast_channel/logger.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/strings/string_util.h" | 9 #include "base/strings/string_util.h" |
10 #include "base/time/tick_clock.h" | 10 #include "base/time/tick_clock.h" |
(...skipping 28 matching lines...) Expand all Loading... |
39 case AuthResult::ERROR_NO_PAYLOAD: | 39 case AuthResult::ERROR_NO_PAYLOAD: |
40 return proto::CHALLENGE_REPLY_ERROR_NO_PAYLOAD; | 40 return proto::CHALLENGE_REPLY_ERROR_NO_PAYLOAD; |
41 case AuthResult::ERROR_PAYLOAD_PARSING_FAILED: | 41 case AuthResult::ERROR_PAYLOAD_PARSING_FAILED: |
42 return proto::CHALLENGE_REPLY_ERROR_PAYLOAD_PARSING_FAILED; | 42 return proto::CHALLENGE_REPLY_ERROR_PAYLOAD_PARSING_FAILED; |
43 case AuthResult::ERROR_MESSAGE_ERROR: | 43 case AuthResult::ERROR_MESSAGE_ERROR: |
44 return proto::CHALLENGE_REPLY_ERROR_MESSAGE_ERROR; | 44 return proto::CHALLENGE_REPLY_ERROR_MESSAGE_ERROR; |
45 case AuthResult::ERROR_NO_RESPONSE: | 45 case AuthResult::ERROR_NO_RESPONSE: |
46 return proto::CHALLENGE_REPLY_ERROR_NO_RESPONSE; | 46 return proto::CHALLENGE_REPLY_ERROR_NO_RESPONSE; |
47 case AuthResult::ERROR_FINGERPRINT_NOT_FOUND: | 47 case AuthResult::ERROR_FINGERPRINT_NOT_FOUND: |
48 return proto::CHALLENGE_REPLY_ERROR_FINGERPRINT_NOT_FOUND; | 48 return proto::CHALLENGE_REPLY_ERROR_FINGERPRINT_NOT_FOUND; |
49 case AuthResult::ERROR_NSS_CERT_PARSING_FAILED: | 49 case AuthResult::ERROR_CERT_PARSING_FAILED: |
50 return proto::CHALLENGE_REPLY_ERROR_NSS_CERT_PARSING_FAILED; | 50 return proto::CHALLENGE_REPLY_ERROR_CERT_PARSING_FAILED; |
51 case AuthResult::ERROR_NSS_CERT_NOT_SIGNED_BY_TRUSTED_CA: | 51 case AuthResult::ERROR_CERT_NOT_SIGNED_BY_TRUSTED_CA: |
52 return proto::CHALLENGE_REPLY_ERROR_NSS_CERT_NOT_SIGNED_BY_TRUSTED_CA; | 52 return proto::CHALLENGE_REPLY_ERROR_CERT_NOT_SIGNED_BY_TRUSTED_CA; |
53 case AuthResult::ERROR_NSS_CANNOT_EXTRACT_PUBLIC_KEY: | 53 case AuthResult::ERROR_CANNOT_EXTRACT_PUBLIC_KEY: |
54 return proto::CHALLENGE_REPLY_ERROR_NSS_CANNOT_EXTRACT_PUBLIC_KEY; | 54 return proto::CHALLENGE_REPLY_ERROR_CANNOT_EXTRACT_PUBLIC_KEY; |
55 case AuthResult::ERROR_NSS_SIGNED_BLOBS_MISMATCH: | 55 case AuthResult::ERROR_SIGNED_BLOBS_MISMATCH: |
56 return proto::CHALLENGE_REPLY_ERROR_NSS_SIGNED_BLOBS_MISMATCH; | 56 return proto::CHALLENGE_REPLY_ERROR_SIGNED_BLOBS_MISMATCH; |
57 default: | 57 default: |
58 NOTREACHED(); | 58 NOTREACHED(); |
59 return proto::CHALLENGE_REPLY_ERROR_NONE; | 59 return proto::CHALLENGE_REPLY_ERROR_NONE; |
60 } | 60 } |
61 } | 61 } |
62 | 62 |
63 scoped_ptr<char[]> Compress(const std::string& input, size_t* length) { | 63 scoped_ptr<char[]> Compress(const std::string& input, size_t* length) { |
64 *length = 0; | 64 *length = 0; |
65 z_stream stream = {0}; | 65 z_stream stream = {0}; |
66 int result = deflateInit2(&stream, | 66 int result = deflateInit2(&stream, |
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
257 LogSocketEvent(channel_id, event); | 257 LogSocketEvent(channel_id, event); |
258 } | 258 } |
259 | 259 |
260 void Logger::LogSocketChallengeReplyEvent(int channel_id, | 260 void Logger::LogSocketChallengeReplyEvent(int channel_id, |
261 const AuthResult& auth_result) { | 261 const AuthResult& auth_result) { |
262 DCHECK(thread_checker_.CalledOnValidThread()); | 262 DCHECK(thread_checker_.CalledOnValidThread()); |
263 | 263 |
264 SocketEvent event = CreateEvent(proto::AUTH_CHALLENGE_REPLY); | 264 SocketEvent event = CreateEvent(proto::AUTH_CHALLENGE_REPLY); |
265 event.set_challenge_reply_error_type( | 265 event.set_challenge_reply_error_type( |
266 ChallegeReplyErrorToProto(auth_result.error_type)); | 266 ChallegeReplyErrorToProto(auth_result.error_type)); |
267 if (auth_result.nss_error_code != 0) | 267 if (auth_result.nss_error_code != 0) { |
268 event.set_nss_error_code(auth_result.nss_error_code); | 268 event.set_nss_error_code(auth_result.nss_error_code); |
| 269 } |
| 270 if (!auth_result.openssl_error_stack.empty()) { |
| 271 for (const auto& next_error : auth_result.openssl_error_stack) { |
| 272 proto::OpenSSLError* new_error = event.add_openssl_error(); |
| 273 new_error->set_filename(next_error.filename); |
| 274 new_error->set_line(next_error.line_number); |
| 275 } |
| 276 } |
269 | 277 |
270 LogSocketEvent(channel_id, event); | 278 LogSocketEvent(channel_id, event); |
271 } | 279 } |
272 | 280 |
273 SocketEvent Logger::CreateEvent(EventType event_type) { | 281 SocketEvent Logger::CreateEvent(EventType event_type) { |
274 SocketEvent event; | 282 SocketEvent event; |
275 event.set_type(event_type); | 283 event.set_type(event_type); |
276 event.set_timestamp_micros(clock_->NowTicks().ToInternalValue() - | 284 event.set_timestamp_micros(clock_->NowTicks().ToInternalValue() - |
277 unix_epoch_time_ticks_.ToInternalValue()); | 285 unix_epoch_time_ticks_.ToInternalValue()); |
278 return event; | 286 return event; |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
362 if (it != aggregated_socket_events_.end()) { | 370 if (it != aggregated_socket_events_.end()) { |
363 return it->second->last_errors; | 371 return it->second->last_errors; |
364 } else { | 372 } else { |
365 return LastErrors(); | 373 return LastErrors(); |
366 } | 374 } |
367 } | 375 } |
368 | 376 |
369 } // namespace cast_channel | 377 } // namespace cast_channel |
370 } // namespace core_api | 378 } // namespace core_api |
371 } // namespace extensions | 379 } // namespace extensions |
OLD | NEW |