// Copyright 2014 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.
#include "components/invalidation/invalidation_service_util.h"
#include "base/base64.h"
#include "base/command_line.h"
#include "base/logging.h"
#include "base/rand_util.h"
#include "components/invalidation/invalidation_switches.h"
namespace invalidation {
notifier::NotifierOptions ParseNotifierOptions(
const CommandLine& command_line) {
notifier::NotifierOptions notifier_options;
if (command_line.HasSwitch(switches::kSyncNotificationHostPort)) {
notifier_options.xmpp_host_port =
net::HostPortPair::FromString(
command_line.GetSwitchValueASCII(
switches::kSyncNotificationHostPort));
DVLOG(1) << "Using " << notifier_options.xmpp_host_port.ToString()
<< " for test sync notification server.";
}
notifier_options.allow_insecure_connection =
command_line.HasSwitch(switches::kSyncAllowInsecureXmppConnection);
DVLOG_IF(1, notifier_options.allow_insecure_connection)
<< "Allowing insecure XMPP connections.";
return notifier_options;
}
std::string GenerateInvalidatorClientId() {
// Generate a GUID with 128 bits worth of base64-encoded randomness.
// This format is similar to that of sync's cache_guid.
const int kGuidBytes = 128 / 8;
std::string guid;
base::Base64Encode(base::RandBytesAsString(kGuidBytes), &guid);
DCHECK(!guid.empty());
return guid;
}
} // namespace invalidation