1
0
Fork 0
mirror of https://github.com/vanitasvitae/Smack.git synced 2024-11-24 21:12:05 +01:00

Merge branch '4.3'

This commit is contained in:
Florian Schmaus 2019-03-22 21:56:15 +01:00
commit dfae6770af
3 changed files with 23 additions and 1 deletions

View file

@ -4,5 +4,7 @@ This API is considered beta quality."""
dependencies { dependencies {
compile project(':smack-core') compile project(':smack-core')
compile 'org.igniterealtime.jbosh:jbosh:[0.9,0.10)' // See https://issues.igniterealtime.org/browse/SMACK-858 and
// comment in version.gradle why the specify the version this way.
compile 'org.igniterealtime.jbosh:jbosh:[0.9.1,0.9.999]'
} }

View file

@ -19,6 +19,8 @@ package org.jivesoftware.smack.bosh;
import java.net.URI; import java.net.URI;
import java.net.URISyntaxException; import java.net.URISyntaxException;
import java.util.HashMap;
import java.util.Map;
import org.jivesoftware.smack.ConnectionConfiguration; import org.jivesoftware.smack.ConnectionConfiguration;
import org.jivesoftware.smack.proxy.ProxyInfo; import org.jivesoftware.smack.proxy.ProxyInfo;
@ -34,6 +36,7 @@ public final class BOSHConfiguration extends ConnectionConfiguration {
private final boolean https; private final boolean https;
private final String file; private final String file;
private Map<String, String> httpHeaders;
private BOSHConfiguration(Builder builder) { private BOSHConfiguration(Builder builder) {
super(builder); super(builder);
@ -49,6 +52,7 @@ public final class BOSHConfiguration extends ConnectionConfiguration {
} else { } else {
file = builder.file; file = builder.file;
} }
httpHeaders = builder.httpHeaders;
} }
public boolean isProxyEnabled() { public boolean isProxyEnabled() {
@ -76,6 +80,10 @@ public final class BOSHConfiguration extends ConnectionConfiguration {
return new URI((https ? "https://" : "http://") + this.host + ":" + this.port + file); return new URI((https ? "https://" : "http://") + this.host + ":" + this.port + file);
} }
public Map<String, String> getHttpHeaders() {
return httpHeaders;
}
public static Builder builder() { public static Builder builder() {
return new Builder(); return new Builder();
} }
@ -83,6 +91,7 @@ public final class BOSHConfiguration extends ConnectionConfiguration {
public static final class Builder extends ConnectionConfiguration.Builder<Builder, BOSHConfiguration> { public static final class Builder extends ConnectionConfiguration.Builder<Builder, BOSHConfiguration> {
private boolean https; private boolean https;
private String file; private String file;
private Map<String, String> httpHeaders = new HashMap<>();
private Builder() { private Builder() {
} }
@ -101,6 +110,11 @@ public final class BOSHConfiguration extends ConnectionConfiguration {
return this; return this;
} }
public Builder addHttpHeader(String name, String value) {
httpHeaders.put(name, value);
return this;
}
@Override @Override
public BOSHConfiguration build() { public BOSHConfiguration build() {
return new BOSHConfiguration(this); return new BOSHConfiguration(this);

View file

@ -22,6 +22,7 @@ import java.io.PipedReader;
import java.io.PipedWriter; import java.io.PipedWriter;
import java.io.StringReader; import java.io.StringReader;
import java.io.Writer; import java.io.Writer;
import java.util.Map;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
@ -157,8 +158,13 @@ public class XMPPBOSHConnection extends AbstractXMPPConnection {
if (config.isProxyEnabled()) { if (config.isProxyEnabled()) {
cfgBuilder.setProxy(config.getProxyAddress(), config.getProxyPort()); cfgBuilder.setProxy(config.getProxyAddress(), config.getProxyPort());
} }
cfgBuilder.setCompressionEnabled(config.isCompressionEnabled()); cfgBuilder.setCompressionEnabled(config.isCompressionEnabled());
for (Map.Entry<String, String> h : config.getHttpHeaders().entrySet()) {
cfgBuilder.addHttpHeader(h.getKey(), h.getValue());
}
client = BOSHClient.create(cfgBuilder.build()); client = BOSHClient.create(cfgBuilder.build());
client.addBOSHClientConnListener(new BOSHConnectionListener()); client.addBOSHClientConnListener(new BOSHConnectionListener());