mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2024-11-21 22:02:06 +01:00
Merge branch '4.3'
This commit is contained in:
commit
f863bd222c
5 changed files with 57 additions and 26 deletions
|
@ -141,6 +141,32 @@ hr {
|
||||||
|
|
||||||
<div id="pageBody">
|
<div id="pageBody">
|
||||||
|
|
||||||
|
<h2>4.3.4 -- <span style="font-weight: normal;">2019-05-27</span></h2>
|
||||||
|
|
||||||
|
<h2> Bug
|
||||||
|
</h2>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-861'>SMACK-861</a>] - Potential NPE in Roster.getPresencesInternal(BareJid)
|
||||||
|
</li>
|
||||||
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-863'>SMACK-863</a>] - ServiceDiscoveryManger does not use the main identity, causing setIdentity() to have no effect
|
||||||
|
</li>
|
||||||
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-864'>SMACK-864</a>] - Potential Denial of Service (DOS) by remote entities caused by unlimited threads for asynchronous operations
|
||||||
|
</li>
|
||||||
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-865'>SMACK-865</a>] - Some Manager.getInsanceFor() methods are missing the 'synchronized' keyword
|
||||||
|
</li>
|
||||||
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-868'>SMACK-868</a>] - XHTMLText.appendOpenBodyTag() produces invalid XML
|
||||||
|
</li>
|
||||||
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-870'>SMACK-870</a>] - TLS X.509 certificate verification should be performed with the ACE representation of the XMPP service domain when possible
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2> Improvement
|
||||||
|
</h2>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-869'>SMACK-869</a>] - Exceptions in async tasks should not go uncaught to the call stack to avoid program termination
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
<h2>4.3.3 -- <span style="font-weight: normal;">2019-03-14</span></h2>
|
<h2>4.3.3 -- <span style="font-weight: normal;">2019-03-14</span></h2>
|
||||||
|
|
||||||
<h2> Bug
|
<h2> Bug
|
||||||
|
|
|
@ -750,7 +750,7 @@ public abstract class ConnectionConfiguration {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the Internet address of the host providing the XMPP service. If set, then this will overwrite anything
|
* Set the Internet address of the host providing the XMPP service. If set, then this will overwrite anything
|
||||||
* set via {@link #setHost(String)}.
|
* set via {@link #setHost(CharSequence)}.
|
||||||
*
|
*
|
||||||
* @param address the Internet address of the host providing the XMPP service.
|
* @param address the Internet address of the host providing the XMPP service.
|
||||||
* @return a reference to this builder.
|
* @return a reference to this builder.
|
||||||
|
@ -762,16 +762,29 @@ public abstract class ConnectionConfiguration {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the name of the host providing the XMPP service. Note that this method does only allow DNS names and not
|
* Set the name of the host providing the XMPP service. This method takes DNS names and
|
||||||
* IP addresses. Use {@link #setHostAddress(InetAddress)} if you want to explicitly set the Internet address of
|
* IP addresses.
|
||||||
* the host providing the XMPP service.
|
|
||||||
*
|
*
|
||||||
* @param host the DNS name of the host providing the XMPP service.
|
* @param host the DNS name of the host providing the XMPP service.
|
||||||
* @return a reference to this builder.
|
* @return a reference to this builder.
|
||||||
*/
|
*/
|
||||||
public B setHost(String host) {
|
public B setHost(CharSequence host) {
|
||||||
DnsName hostDnsName = DnsName.from(host);
|
String fqdnOrIpString = host.toString();
|
||||||
return setHost(hostDnsName);
|
if (InetAddressUtil.isIpAddress(fqdnOrIpString)) {
|
||||||
|
InetAddress hostInetAddress;
|
||||||
|
try {
|
||||||
|
hostInetAddress = InetAddress.getByName(fqdnOrIpString);
|
||||||
|
}
|
||||||
|
catch (UnknownHostException e) {
|
||||||
|
// Should never happen.
|
||||||
|
throw new AssertionError(e);
|
||||||
|
}
|
||||||
|
setHostAddress(hostInetAddress);
|
||||||
|
} else {
|
||||||
|
DnsName dnsName = DnsName.from(fqdnOrIpString);
|
||||||
|
setHost(dnsName);
|
||||||
|
}
|
||||||
|
return getThis();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -795,23 +808,12 @@ public abstract class ConnectionConfiguration {
|
||||||
* @see #setHost(DnsName)
|
* @see #setHost(DnsName)
|
||||||
* @see #setHostAddress(InetAddress)
|
* @see #setHostAddress(InetAddress)
|
||||||
* @since 4.3.2
|
* @since 4.3.2
|
||||||
|
* @deprecated use {@link #setHost(CharSequence)} instead.
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
|
// TODO: Remove in Smack 4.5.
|
||||||
public B setHostAddressByNameOrIp(CharSequence fqdnOrIp) {
|
public B setHostAddressByNameOrIp(CharSequence fqdnOrIp) {
|
||||||
String fqdnOrIpString = fqdnOrIp.toString();
|
return setHost(fqdnOrIp);
|
||||||
if (InetAddressUtil.isIpAddress(fqdnOrIp)) {
|
|
||||||
InetAddress hostInetAddress;
|
|
||||||
try {
|
|
||||||
hostInetAddress = InetAddress.getByName(fqdnOrIpString);
|
|
||||||
}
|
|
||||||
catch (UnknownHostException e) {
|
|
||||||
// Should never happen.
|
|
||||||
throw new AssertionError(e);
|
|
||||||
}
|
|
||||||
setHostAddress(hostInetAddress);
|
|
||||||
} else {
|
|
||||||
setHost(fqdnOrIpString);
|
|
||||||
}
|
|
||||||
return getThis();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public B setPort(int port) {
|
public B setPort(int port) {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Copyright 2018 Florian Schmaus.
|
* Copyright 2018-2019 Florian Schmaus.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -28,7 +28,7 @@ public class ConnectionConfigurationTest {
|
||||||
DummyConnectionConfiguration.Builder builder = newUnitTestBuilder();
|
DummyConnectionConfiguration.Builder builder = newUnitTestBuilder();
|
||||||
|
|
||||||
final String ip = "192.168.0.1";
|
final String ip = "192.168.0.1";
|
||||||
builder.setHostAddressByNameOrIp(ip);
|
builder.setHost(ip);
|
||||||
|
|
||||||
DummyConnectionConfiguration connectionConfiguration = builder.build();
|
DummyConnectionConfiguration connectionConfiguration = builder.build();
|
||||||
assertEquals('/' + ip, connectionConfiguration.getHostAddress().toString());
|
assertEquals('/' + ip, connectionConfiguration.getHostAddress().toString());
|
||||||
|
@ -39,7 +39,7 @@ public class ConnectionConfigurationTest {
|
||||||
DummyConnectionConfiguration.Builder builder = newUnitTestBuilder();
|
DummyConnectionConfiguration.Builder builder = newUnitTestBuilder();
|
||||||
|
|
||||||
final String fqdn = "foo.example.org";
|
final String fqdn = "foo.example.org";
|
||||||
builder.setHostAddressByNameOrIp(fqdn);
|
builder.setHost(fqdn);
|
||||||
|
|
||||||
DummyConnectionConfiguration connectionConfiguration = builder.build();
|
DummyConnectionConfiguration connectionConfiguration = builder.build();
|
||||||
assertEquals(fqdn, connectionConfiguration.getHost().toString());
|
assertEquals(fqdn, connectionConfiguration.getHost().toString());
|
||||||
|
|
|
@ -294,6 +294,9 @@ public final class MultiUserChatManager extends Manager {
|
||||||
* Returns a Set of the rooms where the user has joined. The Iterator will contain Strings where each String
|
* Returns a Set of the rooms where the user has joined. The Iterator will contain Strings where each String
|
||||||
* represents a room (e.g. room@muc.jabber.org).
|
* represents a room (e.g. room@muc.jabber.org).
|
||||||
*
|
*
|
||||||
|
* Note: In order to get a list of bookmarked (but not necessarily joined) conferences, use
|
||||||
|
* {@link org.jivesoftware.smackx.bookmarks.BookmarkManager#getBookmarkedConferences()}.
|
||||||
|
*
|
||||||
* @return a List of the rooms where the user has joined using a given connection.
|
* @return a List of the rooms where the user has joined using a given connection.
|
||||||
*/
|
*/
|
||||||
public Set<EntityBareJid> getJoinedRooms() {
|
public Set<EntityBareJid> getJoinedRooms() {
|
||||||
|
|
|
@ -1680,7 +1680,7 @@ public final class Roster extends Manager {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(IQ packet) {
|
public void onSuccess(IQ packet) {
|
||||||
final XMPPConnection connection = connection();
|
final XMPPConnection connection = connection();
|
||||||
LOGGER.log(Level.FINE, "RosterResultListener received {}", packet);
|
LOGGER.log(Level.FINE, "RosterResultListener received {0}", packet);
|
||||||
Collection<Jid> addedEntries = new ArrayList<>();
|
Collection<Jid> addedEntries = new ArrayList<>();
|
||||||
Collection<Jid> updatedEntries = new ArrayList<>();
|
Collection<Jid> updatedEntries = new ArrayList<>();
|
||||||
Collection<Jid> deletedEntries = new ArrayList<>();
|
Collection<Jid> deletedEntries = new ArrayList<>();
|
||||||
|
|
Loading…
Reference in a new issue