| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | | |
|
| | | |
|
| | | |
|
| | |
| |
| |
| | |
This way we can for example add a server for IPv4 and one IPv6.
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This replaces all occurencies of 'slots' and 'signals' with 'Q_SLOTS'
and 'Q_SIGNALS'. This allows for smooth integration with software
projects that need QT_NO_KEYWORDS, such as those ones that rely on
boost libraries.
Closes #115.
Co-authored-by: Tommaso Cucinotta <tommaso.cucinotta@santannapisa.it>
|
| |/ |
|
| | |
|
| |
|
|
| |
This adds two signals to make the result easily available to the user.
|
| |
|
|
|
| |
It uses QSharedDataPointer<> internally, so passing by value is
recommended.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
This is the result of:
sed -i 's/writeAttribute("xmlns", /writeDefaultNamespace(/g' \
$(find . -iname "*.cpp" -or -iname "*.h")
|
| |
|
|
|
|
|
|
|
|
| |
The methods are obsolete since the TLS manager has become an internal
client extension. The methods were not of any use except for the TLS
manager and should better not be public to the user at all (i.e.
startSocketEncryption()).
This can be done without any concerns because the methods were not part
of the public API in any release, yet.
|
| |
|
|
|
|
|
|
|
|
|
| |
This removes the QXmppTlsManager from the public API and makes it an
internal client extension. It was not of any use for the end user and
was configured via the QXmppClient (as before). This way we can obsolete
some public methods of the QXmppClient, that also have been added with
the new TLS manager.
This can be done without any concerns because the manager was not part
of the public API in any release, yet.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The new internal client extensions can be used to access private parts
of the QXmppClient since QXmppInternalClientExtensions are a friend of
the QXmppClient. The internal client extensions are not part of the
public API, so you can't access them in an application using QXmpp.
However, this was also the case before.
If there is the need to access the internal extensions in the future,
we'll still have all options open to change everything, because the
classes are not part of the public API.
|
| |
|
|
|
|
|
| |
This is required to access the QXmppClientPrivate from other classes.
This way we can split up parts of the client into internal client
extensions like the authentication manager, without the need of public
methods in the client as with the current approach of the TLS manager.
|
| | |
|
| | |
|
| |
|
| |
This provides more type safety and is future-proof.
|
| |
|
|
| |
I forgot this in #241.
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
Mostly this was a mistake by me in earlier contributions.
|
| | |
|
| | |
|
| |
|
|
|
| |
Q_ENUM exists since Qt 5.5, more details can be found here:
https://woboq.com/blog/q_enum.html
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
Q_FOREACH is bad and will be deprecated in the future:
https://www.kdab.com/goodbye-q_foreach/
This also disables Q_FOREACH by defining QT_NO_FOREACH.
|
| |
|
|
| |
Methods of new classes have no \since tag.
|
| |
|
|
|
| |
This replaces the deprecated getters in the examples and in the
documentation.
|
| | |
|
| | |
|
| |
|
|
| |
Co-authored-by: Linus Jahn <lnj@kaidan.im>
|
| |
|
|
|
| |
This adds a manager to simplify service discovery and IQ sending for
XEP-0363: HTTP File Upload.
|
| | |
|
| |\ |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
`socketError()` calls `connectToNextDNSHost()` which might cause
`socketError()` synchronously (and recursively), thus not giving a
change for updating `nextSrvRecordIdx`.
Overall, this results in attempting to connect to the same DNS record
recursively, until the stack is exhausted, resulting in SEGFAULT.
One of the solutions (done in this commit) is to increment the record
index _before_ attempting to connect.
|
| | |
| |
| |
| | |
QXmppClient::findExtension() should be used instead.
|
| | |
| |
| |
| |
| |
| |
| |
| | |
Using the following checks:
* modernize-use-nullptr
* modernize-use-override
* modernize-use-using
* modernize-use-bool-literals
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There were some problems with buggy clients leading to that some
messages were already marked as received, even though only another
resource of the used account has got the message.
Here is an example:
[outgoing]:
<message id="tH9OkRw"
to="42@example.com"
from="lnj@kaidan.im/kaidan.PR29"
type="chat">
<body>test</body>
<n1:request xmlns:n1="urn:xmpp:receipts"/>
</message>
[incoming]:
<message to="lnj@kaidan.im/kaidan.PR29"
from="lnj@kaidan.im/dino.dc02d539"
id="410b33c3-1cd3-433e-8699-74a7583c2560">
<n1:received xmlns="urn:xmpp:receipts" id="tH9OkRw"/>
</message>
Here the other client "dino.dc02d539" sent an <received/> tag, although
it actually received this message over carbons. To avoid that we need to
ignore messages also from our bare JID.
|
| |/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The previous logic was:
- use the preferred SASL mechanism if available
- otherwise use the first supported mechanism offered by the server
However RFC 6120, section 6.3.3 states:
"The initiating entity MUST maintain its own preference order independent
of the preference order of the receiving entity."
The new logic is:
- order our supported mechanisms from most secure to least secure
- if the user sets QXmppConfiguration::saslMechanism, put it first
- use the best mechanism supported by the server
|
| | |
|