Index: extensions/browser/api/cast_channel/logger.cc |
diff --git a/extensions/browser/api/cast_channel/logger.cc b/extensions/browser/api/cast_channel/logger.cc |
index 823b4c320877e84c3141879d8ce81d92e9bb8dd9..bddf53971c24515792cbe689486390e8a7905159 100644 |
--- a/extensions/browser/api/cast_channel/logger.cc |
+++ b/extensions/browser/api/cast_channel/logger.cc |
@@ -4,6 +4,8 @@ |
#include "extensions/browser/api/cast_channel/logger.h" |
+#include <string> |
+ |
#include "base/strings/string_util.h" |
#include "base/time/tick_clock.h" |
#include "extensions/browser/api/cast_channel/cast_auth_util.h" |
@@ -98,6 +100,25 @@ scoped_ptr<char[]> Compress(const std::string& input, size_t* length) { |
return out.Pass(); |
} |
+// Propagate any error fields set in |event| to |last_errors|. If any error |
+// field in |event| is set, then also set |last_errors->event_type|. |
+void MaybeSetLastErrors(const SocketEvent& event, LastErrors* last_errors) { |
+ if (event.has_net_return_value() && |
+ event.net_return_value() < net::ERR_IO_PENDING) { |
+ last_errors->net_return_value = event.net_return_value(); |
+ last_errors->event_type = event.type(); |
+ } |
+ if (event.has_challenge_reply_error_type()) { |
+ last_errors->challenge_reply_error_type = |
+ event.challenge_reply_error_type(); |
+ last_errors->event_type = event.type(); |
+ } |
+ if (event.has_nss_error_code()) { |
+ last_errors->nss_error_code = event.nss_error_code(); |
+ last_errors->event_type = event.type(); |
+ } |
+} |
+ |
} // namespace |
Logger::AggregatedSocketEventLog::AggregatedSocketEventLog() { |
@@ -287,19 +308,9 @@ AggregatedSocketEvent& Logger::LogSocketEvent(int channel_id, |
socket_events.pop_front(); |
log_.set_num_evicted_socket_events(log_.num_evicted_socket_events() + 1); |
} |
- |
socket_events.push_back(socket_event); |
- it->second->last_errors.event_type = socket_event.type(); |
- if (socket_event.has_net_return_value()) { |
- it->second->last_errors.net_return_value = socket_event.net_return_value(); |
- } |
- if (socket_event.has_challenge_reply_error_type()) { |
- it->second->last_errors.challenge_reply_error_type = |
- socket_event.challenge_reply_error_type(); |
- } |
- if (socket_event.has_nss_error_code()) |
- it->second->last_errors.nss_error_code = socket_event.nss_error_code(); |
+ MaybeSetLastErrors(socket_event, &(it->second->last_errors)); |
return it->second->aggregated_socket_event; |
} |
@@ -356,5 +367,5 @@ LastErrors Logger::GetLastErrors(int channel_id) const { |
} |
} // namespace cast_channel |
-} // namespace api |
+} // namespace core_api |
} // namespace extensions |