blob: f8850efcae417671c559673f1739ca8c8d34bf6e (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
// SPDX-FileCopyrightText: 2009 Manjeet Dahiya <manjeetdahiya@gmail.com>
//
// SPDX-License-Identifier: LGPL-2.1-or-later
#ifndef QXMPPCONFIGURATION_H
#define QXMPPCONFIGURATION_H
#include "QXmppGlobal.h"
#include <QSharedDataPointer>
#include <QString>
class QNetworkProxy;
class QSslCertificate;
class QXmppConfigurationPrivate;
/// \brief The QXmppConfiguration class holds configuration options.
///
/// It can be passed to QXmppClient to specify the options when connecting to
/// an XMPP server.
///
/// It is a container of all the settings, configuration required for
/// connecting to an XMPP server. E.g. server name, username, port, type
/// of authentication mechanism, type of security used by stream (encryption),
/// etc..
///
class QXMPP_EXPORT QXmppConfiguration
{
public:
/// An enumeration for type of the Security Mode that is stream is encrypted or not.
/// The server may or may not have TLS feature. Server may force the encryption.
/// Depending upon all this user can specify following options.
enum StreamSecurityMode {
TLSEnabled = 0, ///< Encryption is used if available (default).
TLSDisabled, ///< No encryption even if the server offers it.
TLSRequired, ///< Encryption must be available, otherwise the
///< connection will not be established.
LegacySSL ///< Use only legacy SSL mode.
};
/// An enumeration for various Non-SASL authentication mechanisms available.
/// The server may or may not allow QXmppConfiguration::Plain mechanism. So
/// specifying the mechanism is just a hint to the library.
enum NonSASLAuthMechanism {
NonSASLPlain = 0, ///< Plain
NonSASLDigest ///< Digest (default)
};
/// An enumeration for various SASL authentication mechanisms available.
/// The server may or may not allow any particular mechanism. So depending
/// upon the availability of mechanisms on the server the library will choose
/// a mechanism.
QXmppConfiguration();
QXmppConfiguration(const QXmppConfiguration &other);
~QXmppConfiguration();
QXmppConfiguration &operator=(const QXmppConfiguration &other);
QString host() const;
void setHost(const QString &);
QString domain() const;
void setDomain(const QString &);
int port() const;
void setPort(int);
QString user() const;
void setUser(const QString &);
QString password() const;
void setPassword(const QString &);
QString resource() const;
void setResource(const QString &);
QString jid() const;
void setJid(const QString &jid);
QString jidBare() const;
QString facebookAccessToken() const;
void setFacebookAccessToken(const QString &);
QString facebookAppId() const;
void setFacebookAppId(const QString &);
QString googleAccessToken() const;
void setGoogleAccessToken(const QString &accessToken);
QString windowsLiveAccessToken() const;
void setWindowsLiveAccessToken(const QString &accessToken);
bool autoAcceptSubscriptions() const;
void setAutoAcceptSubscriptions(bool);
bool autoReconnectionEnabled() const;
void setAutoReconnectionEnabled(bool);
bool useSASLAuthentication() const;
void setUseSASLAuthentication(bool);
bool useNonSASLAuthentication() const;
void setUseNonSASLAuthentication(bool);
bool ignoreSslErrors() const;
void setIgnoreSslErrors(bool);
QXmppConfiguration::StreamSecurityMode streamSecurityMode() const;
void setStreamSecurityMode(QXmppConfiguration::StreamSecurityMode mode);
QXmppConfiguration::NonSASLAuthMechanism nonSASLAuthMechanism() const;
void setNonSASLAuthMechanism(QXmppConfiguration::NonSASLAuthMechanism);
QString saslAuthMechanism() const;
void setSaslAuthMechanism(const QString &mechanism);
QNetworkProxy networkProxy() const;
void setNetworkProxy(const QNetworkProxy &proxy);
int keepAliveInterval() const;
void setKeepAliveInterval(int secs);
int keepAliveTimeout() const;
void setKeepAliveTimeout(int secs);
QList<QSslCertificate> caCertificates() const;
void setCaCertificates(const QList<QSslCertificate> &);
private:
QSharedDataPointer<QXmppConfigurationPrivate> d;
};
#endif // QXMPPCONFIGURATION_H
|