📄 connectionmanagerimpl.java
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space
// Source File Name: ConnectionManagerImpl.java
package org.gudy.azureus2.pluginsimpl.local.network;
import com.aelitis.azureus.core.AzureusCore;
import com.aelitis.azureus.core.networkmanager.ConnectionEndpoint;
import com.aelitis.azureus.core.networkmanager.NetworkManager;
import com.aelitis.azureus.core.networkmanager.ProtocolEndpoint;
import com.aelitis.azureus.core.networkmanager.Transport;
import com.aelitis.azureus.core.networkmanager.TransportEndpoint;
import com.aelitis.azureus.core.networkmanager.impl.TransportCipher;
import com.aelitis.azureus.core.networkmanager.impl.TransportHelperFilter;
import com.aelitis.azureus.core.networkmanager.impl.TransportHelperFilterStreamCipher;
import com.aelitis.azureus.core.networkmanager.impl.tcp.ProtocolEndpointTCP;
import com.aelitis.azureus.core.networkmanager.impl.tcp.TCPTransportHelper;
import com.aelitis.azureus.core.networkmanager.impl.tcp.TCPTransportImpl;
import com.aelitis.azureus.core.networkmanager.impl.udp.UDPNetworkManager;
import com.aelitis.azureus.core.networkmanager.impl.udp.UDPTransport;
import com.aelitis.azureus.core.networkmanager.impl.udp.UDPTransportHelper;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.security.spec.AlgorithmParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import org.gudy.azureus2.core3.global.GlobalManager;
import org.gudy.azureus2.plugins.messaging.MessageStreamDecoder;
import org.gudy.azureus2.plugins.messaging.MessageStreamEncoder;
import org.gudy.azureus2.plugins.network.Connection;
import org.gudy.azureus2.plugins.network.ConnectionManager;
import org.gudy.azureus2.plugins.network.TransportException;
import org.gudy.azureus2.plugins.network.TransportFilter;
import org.gudy.azureus2.pluginsimpl.local.messaging.MessageStreamDecoderAdapter;
import org.gudy.azureus2.pluginsimpl.local.messaging.MessageStreamEncoderAdapter;
// Referenced classes of package org.gudy.azureus2.pluginsimpl.local.network:
// ConnectionImpl, TransportCipherImpl, TransportFilterImpl, TransportImpl
public class ConnectionManagerImpl
implements ConnectionManager
{
private static ConnectionManagerImpl instance;
private AzureusCore azureus_core;
public static synchronized ConnectionManagerImpl getSingleton(AzureusCore core)
{
if (instance == null)
instance = new ConnectionManagerImpl(core);
return instance;
}
private ConnectionManagerImpl(AzureusCore _core)
{
azureus_core = _core;
}
public Connection createConnection(InetSocketAddress remote_address, MessageStreamEncoder encoder, MessageStreamDecoder decoder)
{
ConnectionEndpoint connection_endpoint = new ConnectionEndpoint(remote_address);
connection_endpoint.addProtocol(new ProtocolEndpointTCP(remote_address));
com.aelitis.azureus.core.networkmanager.NetworkConnection core_conn = NetworkManager.getSingleton().createConnection(connection_endpoint, new MessageStreamEncoderAdapter(encoder), new MessageStreamDecoderAdapter(decoder), false, false, (byte[][])null);
return new ConnectionImpl(core_conn, false);
}
public int getNATStatus()
{
return azureus_core.getGlobalManager().getNATStatus();
}
public org.gudy.azureus2.plugins.network.TransportCipher createTransportCipher(String algorithm, int mode, SecretKeySpec key_spec, AlgorithmParameterSpec params)
throws TransportException
{
TransportCipher cipher = new TransportCipher(algorithm, mode, key_spec, params);
return new TransportCipherImpl(cipher);
Exception e;
e;
throw new TransportException(e);
}
public TransportFilter createTransportFilter(Connection connection, org.gudy.azureus2.plugins.network.TransportCipher read_cipher, org.gudy.azureus2.plugins.network.TransportCipher write_cipher)
throws TransportException
{
org.gudy.azureus2.plugins.network.Transport transport = connection.getTransport();
Transport core_transport;
try
{
core_transport = ((TransportImpl)transport).coreTransport();
}
catch (IOException e)
{
throw new TransportException(e);
}
com.aelitis.azureus.core.networkmanager.impl.TransportHelper helper;
if (core_transport instanceof TCPTransportImpl)
{
TransportHelperFilter hfilter = ((TCPTransportImpl)core_transport).getFilter();
if (hfilter != null)
helper = hfilter.getHelper();
else
helper = new TCPTransportHelper(((TCPTransportImpl)(TCPTransportImpl)core_transport).getSocketChannel());
} else
if (core_transport instanceof UDPTransport)
{
TransportHelperFilter hfilter = ((UDPTransport)core_transport).getFilter();
if (hfilter != null)
{
helper = hfilter.getHelper();
} else
{
helper = ((UDPTransport)core_transport).getFilter().getHelper();
InetSocketAddress addr = core_transport.getTransportEndpoint().getProtocolEndpoint().getConnectionEndpoint().getNotionalAddress();
if (!connection.isIncoming())
try
{
helper = new UDPTransportHelper(UDPNetworkManager.getSingleton().getConnectionManager(), addr, (UDPTransport)core_transport);
}
catch (IOException ioe)
{
throw new TransportException(ioe);
}
else
throw new TransportException((new StringBuilder()).append("udp incoming transport type not supported - ").append(core_transport).toString());
}
} else
{
throw new TransportException((new StringBuilder()).append("transport type not supported - ").append(core_transport).toString());
}
TransportHelperFilterStreamCipher core_filter = new TransportHelperFilterStreamCipher(helper, ((TransportCipherImpl)read_cipher).cipher, ((TransportCipherImpl)write_cipher).cipher);
return new TransportFilterImpl(core_filter);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -