diff --git a/resources/releasedocs/changelog.html b/resources/releasedocs/changelog.html index 7e189a858..b844e1e00 100644 --- a/resources/releasedocs/changelog.html +++ b/resources/releasedocs/changelog.html @@ -141,6 +141,26 @@ hr {
+

4.1.7 -- 2016-04-14

+ +

Bug +

+ + +

Improvement +

+ +

4.1.6 -- 2016-01-23

Bug diff --git a/smack-core/src/main/java/org/jivesoftware/smack/filter/StanzaTypeFilter.java b/smack-core/src/main/java/org/jivesoftware/smack/filter/StanzaTypeFilter.java index 799edb010..8b8971cda 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/filter/StanzaTypeFilter.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/filter/StanzaTypeFilter.java @@ -57,6 +57,6 @@ public final class StanzaTypeFilter implements StanzaFilter { @Override public String toString() { - return getClass().getSimpleName() + ": " + packetType.getName(); + return getClass().getSimpleName() + ": " + packetType.getSimpleName(); } } diff --git a/smack-core/src/main/java/org/jivesoftware/smack/packet/XMPPError.java b/smack-core/src/main/java/org/jivesoftware/smack/packet/XMPPError.java index a36350312..7aafca4d9 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/packet/XMPPError.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/packet/XMPPError.java @@ -19,6 +19,7 @@ package org.jivesoftware.smack.packet; import java.util.Arrays; import java.util.HashMap; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.logging.Logger; @@ -361,13 +362,11 @@ public class XMPPError extends AbstractError { @Override public String toString() { - // Locale.US not required, since Type consists only of ASCII chars - return name().toLowerCase(); + return name().toLowerCase(Locale.US); } public static Type fromString(String string) { - // Locale.US not required, since Type consists only of ASCII chars - string = string.toUpperCase(); + string = string.toUpperCase(Locale.US); return Type.valueOf(string); } } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/time/EntityTimeManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/time/EntityTimeManager.java index 587d3a678..06f614c34 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/time/EntityTimeManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/time/EntityTimeManager.java @@ -108,6 +108,8 @@ public final class EntityTimeManager extends Manager { return null; Time request = new Time(); + // TODO Add Time(Jid) constructor and use this constructor instead + request.setTo(jid); Time response = (Time) connection().createPacketCollectorAndSend(request).nextResultOrThrow(); return response; } diff --git a/smack-im/src/main/java/org/jivesoftware/smack/roster/Roster.java b/smack-im/src/main/java/org/jivesoftware/smack/roster/Roster.java index 66f5ed4a0..23b81cdb1 100644 --- a/smack-im/src/main/java/org/jivesoftware/smack/roster/Roster.java +++ b/smack-im/src/main/java/org/jivesoftware/smack/roster/Roster.java @@ -1061,6 +1061,18 @@ public final class Roster extends Manager { } } + /** + * Sets if the roster will be loaded from the server when logging in for newly created instances + * of {@link Roster}. + * + * @param rosterLoadedAtLoginDefault if the roster will be loaded from the server when logging in. + * @see #setRosterLoadedAtLogin(boolean) + * @since 4.1.7 + */ + public static void setRosterLoadedAtLoginDefault(boolean rosterLoadedAtLoginDefault) { + Roster.rosterLoadedAtLoginDefault = rosterLoadedAtLoginDefault; + } + /** * Sets if the roster will be loaded from the server when logging in. This * is the common behaviour for clients but sometimes clients may want to differ this diff --git a/smack-resolver-minidns/src/main/java/org/jivesoftware/smack/util/dns/minidns/MiniDnsResolver.java b/smack-resolver-minidns/src/main/java/org/jivesoftware/smack/util/dns/minidns/MiniDnsResolver.java index 36a04620d..6b2b78d36 100644 --- a/smack-resolver-minidns/src/main/java/org/jivesoftware/smack/util/dns/minidns/MiniDnsResolver.java +++ b/smack-resolver-minidns/src/main/java/org/jivesoftware/smack/util/dns/minidns/MiniDnsResolver.java @@ -1,6 +1,6 @@ /** * - * Copyright 2014 Florian Schmaus + * Copyright 2014-2016 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -32,6 +32,7 @@ import de.measite.minidns.Question; import de.measite.minidns.Record; import de.measite.minidns.Record.CLASS; import de.measite.minidns.Record.TYPE; +import de.measite.minidns.record.Data; import de.measite.minidns.record.SRV; @@ -81,7 +82,11 @@ public class MiniDnsResolver implements SmackInitializer, DNSResolver { return res; } for (Record record : message.getAnswers()) { - SRV srv = (SRV) record.getPayload(); + Data data = record.getPayload(); + if (!(data instanceof SRV)) { + continue; + } + SRV srv = (SRV) data; res.add(new SRVRecord(srv.getName(), srv.getPort(), srv.getPriority(), srv.getWeight())); } return res; diff --git a/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/XMPPTCPConnection.java b/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/XMPPTCPConnection.java index 963a2bac6..b0ad9a506 100644 --- a/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/XMPPTCPConnection.java +++ b/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/XMPPTCPConnection.java @@ -741,12 +741,16 @@ public class XMPPTCPConnection extends AbstractXMPPConnection { // Secure the plain connection socket = context.getSocketFactory().createSocket(plain, host, plain.getPort(), true); - // Initialize the reader and writer with the new secured version - initReaderAndWriter(); final SSLSocket sslSocket = (SSLSocket) socket; + // Immediately set the enabled SSL protocols and ciphers. See SMACK-712 why this is + // important (at least on certain platforms) and it seems to be a good idea anyways to + // prevent an accidental implicit handshake. TLSUtils.setEnabledProtocolsAndCiphers(sslSocket, config.getEnabledSSLProtocols(), config.getEnabledSSLCiphers()); + // Initialize the reader and writer with the new secured version + initReaderAndWriter(); + // Proceed to do the handshake sslSocket.startHandshake();