mirror of
https://github.com/vanitasvitae/Smack.git
synced 2025-09-11 01:59:38 +02:00
Start reworking JFT and JET code
This commit is contained in:
parent
e967849e5a
commit
438fc0e94b
27 changed files with 302 additions and 159 deletions
|
@ -29,7 +29,7 @@ public abstract class JingleSecurity<D extends JingleContentSecurityElement> {
|
|||
|
||||
public abstract D getElement();
|
||||
|
||||
public abstract JingleElement handleSecurityInfo(JingleContentSecurityInfoElement element);
|
||||
public abstract JingleElement handleSecurityInfo(JingleContentSecurityInfoElement element, JingleElement wrapping);
|
||||
|
||||
public void setParent(JingleContent parent) {
|
||||
if (this.parent != parent) {
|
||||
|
|
|
@ -1,10 +1,16 @@
|
|||
package org.jivesoftware.smackx.jingle.transport.jingle_ibb;
|
||||
|
||||
import java.util.WeakHashMap;
|
||||
|
||||
import org.jivesoftware.smack.Manager;
|
||||
import org.jivesoftware.smack.XMPPConnection;
|
||||
import org.jivesoftware.smackx.disco.ServiceDiscoveryManager;
|
||||
import org.jivesoftware.smackx.jingle.JingleManager;
|
||||
import org.jivesoftware.smackx.jingle.JingleTransportManager;
|
||||
import org.jivesoftware.smackx.jingle.internal.JingleContent;
|
||||
import org.jivesoftware.smackx.jingle.internal.JingleTransport;
|
||||
import org.jivesoftware.smackx.jingle.provider.JingleContentProviderManager;
|
||||
import org.jivesoftware.smackx.jingle.transport.jingle_ibb.provider.JingleIBBTransportProvider;
|
||||
|
||||
/**
|
||||
* Created by vanitas on 21.07.17.
|
||||
|
@ -13,8 +19,25 @@ public class JingleIBBTransportManager extends Manager implements JingleTranspor
|
|||
|
||||
public static final short MAX_BLOCKSIZE = 8192;
|
||||
|
||||
private static final WeakHashMap<XMPPConnection, JingleIBBTransportManager> INSTANCES = new WeakHashMap<>();
|
||||
|
||||
private JingleIBBTransportManager(XMPPConnection connection) {
|
||||
super(connection);
|
||||
ServiceDiscoveryManager.getInstanceFor(connection).addFeature(getNamespace());
|
||||
JingleManager jingleManager = JingleManager.getInstanceFor(connection);
|
||||
jingleManager.addJingleTransportManager(this);
|
||||
JingleContentProviderManager.addJingleContentTransportProvider(getNamespace(), new JingleIBBTransportProvider());
|
||||
}
|
||||
|
||||
public static JingleIBBTransportManager getInstanceFor(XMPPConnection connection) {
|
||||
JingleIBBTransportManager manager = INSTANCES.get(connection);
|
||||
|
||||
if (manager == null) {
|
||||
manager = new JingleIBBTransportManager(connection);
|
||||
INSTANCES.put(connection, manager);
|
||||
}
|
||||
|
||||
return manager;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -151,7 +151,7 @@ public class JingleS5BTransport extends JingleTransport<JingleS5BTransportElemen
|
|||
}
|
||||
|
||||
connection.createStanzaCollectorAndSend(transportManager.createCandidateUsed(this, selectedCandidate));
|
||||
//connectIfReady();
|
||||
connectIfReady();
|
||||
}
|
||||
|
||||
public JingleS5BTransportCandidate connectToCandidates(int timeout) {
|
||||
|
@ -314,7 +314,7 @@ public class JingleS5BTransport extends JingleTransport<JingleS5BTransportElemen
|
|||
//TODO: Alert! Illegal candidateId!
|
||||
}
|
||||
|
||||
//connectIfReady();
|
||||
connectIfReady();
|
||||
}
|
||||
|
||||
private void handleCandidateActivate(JingleS5BTransportInfoElement info) {
|
||||
|
@ -325,7 +325,7 @@ public class JingleS5BTransport extends JingleTransport<JingleS5BTransportElemen
|
|||
|
||||
private void handleCandidateError(JingleS5BTransportInfoElement info) {
|
||||
((JingleS5BTransport) getPeersProposal()).setSelectedCandidate(CANDIDATE_FAILURE);
|
||||
//connectIfReady();
|
||||
connectIfReady();
|
||||
}
|
||||
|
||||
private void handleProxyError(JingleS5BTransportInfoElement info) {
|
||||
|
|
|
@ -34,6 +34,8 @@ import org.jivesoftware.smack.util.StringUtils;
|
|||
import org.jivesoftware.smackx.bytestreams.socks5.Socks5BytestreamManager;
|
||||
import org.jivesoftware.smackx.bytestreams.socks5.Socks5Proxy;
|
||||
import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream;
|
||||
import org.jivesoftware.smackx.disco.ServiceDiscoveryManager;
|
||||
import org.jivesoftware.smackx.jingle.JingleManager;
|
||||
import org.jivesoftware.smackx.jingle.element.JingleElement;
|
||||
import org.jivesoftware.smackx.jingle.internal.JingleContent;
|
||||
import org.jivesoftware.smackx.jingle.internal.JingleSession;
|
||||
|
@ -68,53 +70,12 @@ public final class JingleS5BTransportManager extends Manager implements JingleTr
|
|||
|
||||
private JingleS5BTransportManager(XMPPConnection connection) {
|
||||
super(connection);
|
||||
ServiceDiscoveryManager.getInstanceFor(connection).addFeature(getNamespace());
|
||||
JingleManager jingleManager = JingleManager.getInstanceFor(connection);
|
||||
jingleManager.addJingleTransportManager(this);
|
||||
JingleContentProviderManager.addJingleContentTransportProvider(getNamespace(), new JingleS5BTransportProvider());
|
||||
connection.addConnectionListener(new ConnectionListener() {
|
||||
|
||||
@Override
|
||||
public void connected(XMPPConnection connection) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void authenticated(XMPPConnection connection, boolean resumed) {
|
||||
if (connection.equals(connection())) {
|
||||
try {
|
||||
Socks5Proxy socks5Proxy = Socks5Proxy.getSocks5Proxy();
|
||||
if (!socks5Proxy.isRunning()) {
|
||||
socks5Proxy.start();
|
||||
}
|
||||
localStreamHosts = queryLocalStreamHosts();
|
||||
availableStreamHosts = queryAvailableStreamHosts();
|
||||
} catch (InterruptedException | SmackException.NoResponseException | SmackException.NotConnectedException | XMPPException.XMPPErrorException e) {
|
||||
LOGGER.log(Level.WARNING, "Could not query available StreamHosts: " + e, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void connectionClosed() {
|
||||
Socks5Proxy proxy = Socks5Proxy.getSocks5Proxy();
|
||||
if (proxy.isRunning()) {
|
||||
Socks5Proxy.getSocks5Proxy().stop();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void connectionClosedOnError(Exception e) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reconnectionSuccessful() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reconnectingIn(int seconds) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reconnectionFailed(Exception e) {
|
||||
}
|
||||
});
|
||||
connection.addConnectionListener(connectionListener);
|
||||
}
|
||||
|
||||
public static JingleS5BTransportManager getInstanceFor(XMPPConnection connection) {
|
||||
|
@ -277,4 +238,51 @@ public final class JingleS5BTransportManager extends Manager implements JingleTr
|
|||
public int compareTo(JingleTransportManager manager) {
|
||||
return 1; // We are #1!
|
||||
}
|
||||
|
||||
private ConnectionListener connectionListener = new ConnectionListener() {
|
||||
|
||||
@Override
|
||||
public void connected(XMPPConnection connection) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void authenticated(XMPPConnection connection, boolean resumed) {
|
||||
if (connection.equals(connection())) {
|
||||
try {
|
||||
Socks5Proxy socks5Proxy = Socks5Proxy.getSocks5Proxy();
|
||||
if (!socks5Proxy.isRunning()) {
|
||||
socks5Proxy.start();
|
||||
}
|
||||
localStreamHosts = queryLocalStreamHosts();
|
||||
availableStreamHosts = queryAvailableStreamHosts();
|
||||
} catch (InterruptedException | SmackException.NoResponseException | SmackException.NotConnectedException | XMPPException.XMPPErrorException e) {
|
||||
LOGGER.log(Level.WARNING, "Could not query available StreamHosts: " + e, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void connectionClosed() {
|
||||
Socks5Proxy proxy = Socks5Proxy.getSocks5Proxy();
|
||||
if (proxy.isRunning()) {
|
||||
Socks5Proxy.getSocks5Proxy().stop();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void connectionClosedOnError(Exception e) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reconnectionSuccessful() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reconnectingIn(int seconds) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reconnectionFailed(Exception e) {
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue