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
3 // found in the LICENSE file.
5 #include "jingle/notifier/base/notifier_options_util.h"
7 #include "base/logging.h"
8 #include "jingle/notifier/base/const_communicator.h"
9 #include "jingle/notifier/base/notifier_options.h"
10 #include "webrtc/libjingle/xmpp/constants.h"
11 #include "webrtc/libjingle/xmpp/jid.h"
15 buzz::XmppClientSettings
MakeXmppClientSettings(
16 const NotifierOptions
& notifier_options
,
17 const std::string
& email
, const std::string
& token
) {
18 buzz::Jid jid
= buzz::Jid(email
);
19 DCHECK(!jid
.node().empty());
20 DCHECK(jid
.IsValid());
22 buzz::XmppClientSettings xmpp_client_settings
;
23 xmpp_client_settings
.set_user(jid
.node());
24 xmpp_client_settings
.set_resource("chrome-sync");
25 xmpp_client_settings
.set_host(jid
.domain());
26 xmpp_client_settings
.set_use_tls(buzz::TLS_REQUIRED
);
27 xmpp_client_settings
.set_auth_token(notifier_options
.auth_mechanism
,
28 notifier_options
.invalidate_xmpp_login
?
29 token
+ "bogus" : token
);
30 if (notifier_options
.auth_mechanism
== buzz::AUTH_MECHANISM_OAUTH2
)
31 xmpp_client_settings
.set_token_service("oauth2");
33 xmpp_client_settings
.set_token_service("chromiumsync");
34 if (notifier_options
.allow_insecure_connection
) {
35 xmpp_client_settings
.set_allow_plain(true);
36 xmpp_client_settings
.set_use_tls(buzz::TLS_DISABLED
);
38 return xmpp_client_settings
;
41 ServerList
GetServerList(
42 const NotifierOptions
& notifier_options
) {
44 // Override the default servers with a test notification server if one was
46 if (!notifier_options
.xmpp_host_port
.host().empty()) {
48 ServerInformation(notifier_options
.xmpp_host_port
,
49 DOES_NOT_SUPPORT_SSLTCP
));
51 // The default servers support SSLTCP.
54 net::HostPortPair("talk.google.com",
55 notifier::kDefaultXmppPort
),
59 net::HostPortPair("talkx.l.google.com",
60 notifier::kDefaultXmppPort
),
66 } // namespace notifier