| Index: chrome/browser/sync/notifier/communicator/xmpp_log.cc
|
| ===================================================================
|
| --- chrome/browser/sync/notifier/communicator/xmpp_log.cc (revision 46353)
|
| +++ chrome/browser/sync/notifier/communicator/xmpp_log.cc (working copy)
|
| @@ -1,112 +0,0 @@
|
| -// Copyright (c) 2009 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#if LOGGING
|
| -
|
| -#include "chrome/browser/sync/notifier/communicator/xmpp_log.h"
|
| -
|
| -#include <iomanip>
|
| -#include <string>
|
| -#include <vector>
|
| -
|
| -#include "chrome/browser/sync/notifier/base/time.h"
|
| -#include "talk/base/common.h"
|
| -#include "talk/base/logging.h"
|
| -
|
| -namespace notifier {
|
| -
|
| -static bool IsAuthTag(const char* str, size_t len) {
|
| - // Beware that str is not NULL terminated.
|
| - if (str[0] == '<' &&
|
| - str[1] == 'a' &&
|
| - str[2] == 'u' &&
|
| - str[3] == 't' &&
|
| - str[4] == 'h' &&
|
| - str[5] <= ' ') {
|
| - std::string tag(str, len);
|
| - if (tag.find("mechanism") != std::string::npos)
|
| - return true;
|
| - }
|
| - return false;
|
| -}
|
| -
|
| -static bool IsChatText(const char* str, size_t len) {
|
| - // Beware that str is not NULL terminated.
|
| - if (str[0] == '<' &&
|
| - str[1] == 'm' &&
|
| - str[2] == 'e' &&
|
| - str[3] == 's' &&
|
| - str[4] == 's' &&
|
| - str[5] == 'a' &&
|
| - str[6] == 'g' &&
|
| - str[7] == 'e' &&
|
| - str[8] <= ' ') {
|
| - std::string tag(str, len);
|
| - if (tag.find("chat") != std::string::npos)
|
| - return true;
|
| - }
|
| - return false;
|
| -}
|
| -
|
| -void XmppLog::XmppPrint(bool output) {
|
| - std::vector<char>* buffer = output ?
|
| - &xmpp_output_buffer_ : &xmpp_input_buffer_;
|
| - const bool log_chat = LOG_CHECK_LEVEL(LS_SENSITIVE);
|
| - if (buffer->size()) {
|
| - char* time_string = GetLocalTimeAsString();
|
| - LOG(INFO) << (output ? "SEND >>>>>>>>>>>>>>>>>>>>>>>>>" :
|
| - "RECV <<<<<<<<<<<<<<<<<<<<<<<<<")
|
| - << " : " << time_string;
|
| -
|
| - int start = 0;
|
| - int nest = 3;
|
| - for (int i = 0; i < static_cast<int>(buffer->size()); ++i) {
|
| - if ((*buffer)[i] == '>') {
|
| - bool indent;
|
| - if ((i > 0) && ((*buffer)[i - 1] == '/')) {
|
| - indent = false;
|
| - } else if ((start + 1 < static_cast<int>(buffer->size())) &&
|
| - ((*buffer)[start + 1] == '/')) {
|
| - indent = false;
|
| - nest -= 2;
|
| - } else {
|
| - indent = true;
|
| - }
|
| -
|
| - // Output a tag
|
| - LOG(INFO) << std::setw(nest) << " "
|
| - << std::string(&((*buffer)[start]), i + 1 - start);
|
| -
|
| - if (indent)
|
| - nest += 2;
|
| -
|
| - // Note if it's a PLAIN auth tag
|
| - if (IsAuthTag(&((*buffer)[start]), i + 1 - start)) {
|
| - censor_password_ = true;
|
| - } else if (!log_chat && IsChatText(&((*buffer)[start]),
|
| - i + 1 - start)) {
|
| - censor_password_ = true;
|
| - }
|
| -
|
| - start = i + 1;
|
| - }
|
| -
|
| - if ((*buffer)[i] == '<' && start < i) {
|
| - if (censor_password_) {
|
| - LOG(INFO) << std::setw(nest) << " " << "## TEXT REMOVED ##";
|
| - censor_password_ = false;
|
| - } else {
|
| - LOG(INFO) << std::setw(nest) << " "
|
| - << std::string(&((*buffer)[start]), i - start);
|
| - }
|
| - start = i;
|
| - }
|
| - }
|
| - buffer->erase(buffer->begin(), buffer->begin() + start);
|
| - }
|
| -}
|
| -
|
| -} // namespace notifier
|
| -
|
| -#endif // if LOGGING
|
|
|