blob: 03391a5052642c30ad3e0d32820a90fa7fce02f6 (
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
|
/*
* Copyright (C) 2008-2009 Manjeet Dahiya
*
* Author:
* Manjeet Dahiya
*
* Source:
* http://code.google.com/p/qxmpp
*
* This file is a part of QXmpp library.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
*/
#ifndef QXMPPCONFIGURATION_H
#define QXMPPCONFIGURATION_H
#include <QString>
class 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, ///< Default, encryption is used if available
TLSDisabled, ///< No encryption is server allows
TLSRequired ///< Encryption is a must otherwise connection would not
///< be established
};
/// 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 ///< 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.
enum SASLAuthMechanism
{
SASLPlain = 0 ///< Default
};
QXmppConfiguration();
~QXmppConfiguration();
void setHost(const QString&);
void setDomain(const QString&);
void setPort(int);
void setUser(const QString&);
void setPasswd(const QString&);
void setResource(const QString&);
QString getHost() const;
QString getDomain() const;
int getPort() const;
QString getUser() const;
QString getPasswd() const;
QString getStatus() const;
QString getResource() const;
QString getJid() const;
QString getJidBare() const;
bool getAutoAcceptSubscriptions() const;
void setAutoAcceptSubscriptions(bool);
bool getAutoReconnectionEnabled() const;
void setAutoReconnectionEnabled(bool);
bool getUseSASLAuthentication() const;
void setUseSASLAuthentication(bool);
QXmppConfiguration::StreamSecurityMode getStreamSecurityMode() const;
void setStreamSecurityMode(QXmppConfiguration::StreamSecurityMode mode);
QXmppConfiguration::NonSASLAuthMechanism QXmppConfiguration::
getNonSASLAuthMechanism() const;
void setNonSASLAuthMechanism(QXmppConfiguration::NonSASLAuthMechanism);
QXmppConfiguration::SASLAuthMechanism QXmppConfiguration::
getSASLAuthMechanism() const;
void setSASLAuthMechanism(QXmppConfiguration::SASLAuthMechanism);
private:
QString m_host;
int m_port;
QString m_user;
QString m_passwd;
QString m_domain;
QString m_resource;
// default is true
bool m_autoAcceptSubscriptions;
// default is true
bool m_sendIntialPresence;
// default is true
bool m_sendRosterRequest;
// interval in seconds, if negative it won't ping
int m_keepAlivePingsInterval;
// will keep reconnecting if disconnected, default is true
bool m_autoReconnectionEnabled;
bool m_useSASLAuthentication; ///< flag to specify what authentication system
///< to be used
///< defualt is true and use SASL
///< false would use NonSASL if available
StreamSecurityMode m_streamSecurityMode;
NonSASLAuthMechanism m_nonSASLAuthMechanism;
SASLAuthMechanism m_SASLAuthMechanism;
};
#endif // QXMPPCONFIGURATION_H
|