Class DHTTransportUDPImpl
- java.lang.Object
-
- com.biglybt.core.dht.transport.udp.impl.DHTTransportUDPImpl
-
- All Implemented Interfaces:
DHTTransport
,DHTTransportUDP
,DHTUDPRequestHandler
public class DHTTransportUDPImpl extends java.lang.Object implements DHTTransportUDP, DHTUDPRequestHandler
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface com.biglybt.core.dht.transport.udp.DHTTransportUDP
DHTTransportUDP.Helper
-
-
Field Summary
-
Fields inherited from interface com.biglybt.core.dht.transport.DHTTransport
GF_DHT_SLEEPING, GF_NONE
-
Fields inherited from interface com.biglybt.core.dht.transport.udp.DHTTransportUDP
PROTOCOL_VERSION_2304, PROTOCOL_VERSION_2306, PROTOCOL_VERSION_2400, PROTOCOL_VERSION_2402, PROTOCOL_VERSION_2500, PROTOCOL_VERSION_2502, PROTOCOL_VERSION_3111, PROTOCOL_VERSION_4204, PROTOCOL_VERSION_4208, PROTOCOL_VERSION_4310, PROTOCOL_VERSION_4407, PROTOCOL_VERSION_4511, PROTOCOL_VERSION_4600, PROTOCOL_VERSION_4720, PROTOCOL_VERSION_4800, PROTOCOL_VERSION_5400, PROTOCOL_VERSION_5500, PROTOCOL_VERSION_ALT_CONTACTS, PROTOCOL_VERSION_ANON_VALUES, PROTOCOL_VERSION_ANTI_SPOOF, PROTOCOL_VERSION_ANTI_SPOOF2, PROTOCOL_VERSION_AZ_CVS, PROTOCOL_VERSION_AZ_MAIN, PROTOCOL_VERSION_BBT_UPLOAD_STATS, PROTOCOL_VERSION_BIGLYBT, PROTOCOL_VERSION_BLOCK_KEYS, PROTOCOL_VERSION_CVS_FIX_OVERLOAD_V1, PROTOCOL_VERSION_CVS_FIX_OVERLOAD_V2, PROTOCOL_VERSION_CVS_FIX_OVERLOAD_V3, PROTOCOL_VERSION_DIV_AND_CONT, PROTOCOL_VERSION_ENCRYPT_TT, PROTOCOL_VERSION_FIX_ORIGINATOR, PROTOCOL_VERSION_GENERIC_NETPOS, PROTOCOL_VERSION_LONGER_LIFE, PROTOCOL_VERSION_MIN_AZ, PROTOCOL_VERSION_MIN_AZ_CVS, PROTOCOL_VERSION_MIN_BIGLYBT, PROTOCOL_VERSION_MORE_NODE_STATUS, PROTOCOL_VERSION_MORE_STATS, PROTOCOL_VERSION_NETWORKS, PROTOCOL_VERSION_PACKET_FLAGS, PROTOCOL_VERSION_PACKET_FLAGS2, PROTOCOL_VERSION_PROC_TIME, PROTOCOL_VERSION_REMOVE_DIST_ADD_VER, PROTOCOL_VERSION_REPLICATION_CONTROL, PROTOCOL_VERSION_REPLICATION_CONTROL2, PROTOCOL_VERSION_REPLICATION_CONTROL3, PROTOCOL_VERSION_RESTRICT_ID_PORTS, PROTOCOL_VERSION_RESTRICT_ID_PORTS2, PROTOCOL_VERSION_RESTRICT_ID_PORTS2X, PROTOCOL_VERSION_RESTRICT_ID_PORTS2Y, PROTOCOL_VERSION_RESTRICT_ID_PORTS2Z, PROTOCOL_VERSION_RESTRICT_ID3, PROTOCOL_VERSION_SIZE_ESTIMATE, PROTOCOL_VERSION_VENDOR_ID, PROTOCOL_VERSION_VIVALDI, PROTOCOL_VERSION_VIVALDI_FINDVALUE, PROTOCOL_VERSION_VIVALDI_OPTIONAL, PROTOCOL_VERSION_XFER_STATUS, VENDOR_ID_AELITIS, VENDOR_ID_ME, VENDOR_ID_NONE, VENDOR_ID_ShareNET
-
-
Constructor Summary
Constructors Constructor Description DHTTransportUDPImpl(byte _protocol_version, int _network, boolean _v6, java.lang.String _ip, java.lang.String _default_ip, int _port, int _max_fails_for_live, int _max_fails_for_unknown, long _timeout, int _dht_send_delay, int _dht_receive_delay, boolean _bootstrap_node, boolean _initial_reachability, DHTLogger _logger)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addListener(DHTTransportListener l)
protected java.net.InetSocketAddress
askContactForExternalAddress(DHTTransportUDPContactImpl contact)
protected void
checkAddress(DHTTransportUDPContactImpl contact)
(package private) void
checkAltContacts()
protected void
contactAlive(DHTTransportUDPContactImpl contact)
protected void
createPacketHandler()
protected void
dataRequest(DHTTransportUDPContactImpl originator, DHTUDPPacketData req)
void
exportContact(DHTTransportContact contact, java.io.DataOutputStream os)
java.util.Map<java.lang.String,java.lang.Object>
exportContactToMap(DHTTransportContact contact)
protected void
externalAddressChange(DHTTransportUDPContactImpl reporter, java.net.InetSocketAddress new_address, boolean force)
DHTTransportAlternativeNetwork
getAlternativeNetwork(int network_type)
protected long
getConnectionID()
java.net.InetAddress
getCurrentBindAddress()
java.net.InetAddress
getExplicitBindAddress()
protected void
getExternalAddress(java.lang.String default_address, DHTLogger log)
protected DHTTransportFullStats
getFullStats(DHTTransportUDPContactImpl contact)
byte
getGenericFlags()
byte
getGenericFlags2()
DHTTransportContact
getLocalContact()
Gives access to the node ID for this transportprotected int
getMaxFailForLiveCount()
protected int
getMaxFailForUnknownCount()
byte
getMinimumProtocolVersion()
int
getNetwork()
protected int
getNodeStatus()
DHTUDPPacketHandler
getPacketHandler()
int
getPort()
byte
getProtocolVersion()
DHTTransportContact[]
getReachableContacts()
DHTTransportContact[]
getRecentContacts()
DHTUDPRequestHandler
getRequestHandler()
int
getRouteablePercentage()
DHTTransportStats
getStats()
long
getTimeout()
protected void
importContact(DHTTransportUDPContactImpl contact, boolean is_bootstrap)
DHTTransportContact
importContact(java.io.DataInputStream is, boolean is_bootstrap)
DHTTransportUDPContact
importContact(java.net.InetSocketAddress _address, byte _protocol_version, boolean is_bootstrap)
DHTTransportUDPContact
importContact(java.util.Map<java.lang.String,java.lang.Object> map)
protected void
informLocalAddress(java.lang.String address)
protected boolean
invalidExternalAddress(java.net.InetAddress ia)
boolean
isIPV6()
boolean
isReachable()
void
process(DHTUDPPacketRequest request, boolean alien)
void
process(DHTUDPPacketHandlerStub packet_handler_stub, DHTUDPPacketRequest request, boolean alien)
byte[]
readTransfer(DHTTransportProgressListener listener, DHTTransportContact target, byte[] handler_key, byte[] key, long timeout)
(package private) void
receiveAltContacts(DHTUDPPacketReplyPing reply)
protected void
recordSkew(java.net.InetSocketAddress originator_address, long skew)
void
registerAlternativeNetwork(DHTTransportAlternativeNetwork network)
void
registerTransferHandler(byte[] handler_key, DHTTransportTransferHandler handler)
void
registerTransferHandler(byte[] handler_key, DHTTransportTransferHandler handler, java.util.Map<java.lang.String,java.lang.Object> options)
void
removeContact(DHTTransportContact contact)
void
removeListener(DHTTransportListener l)
private void
requestAltContacts(DHTUDPPacketRequestPing request)
protected void
requestReceiveReplyProcessor(DHTTransportUDPContactImpl contact, DHTUDPPacketReply reply)
protected void
requestReceiveRequestProcessor(DHTTransportUDPContactImpl contact, DHTUDPPacketRequest request)
protected void
requestSendReplyProcessor(DHTTransportUDPContactImpl remote_contact, DHTTransportReplyHandler handler, DHTUDPPacketReply reply, long elapsed_time)
Returns false if this isn't an error reply, true if it is and a retry can be performed, throws an exception otherwiseprotected void
requestSendRequestProcessor(DHTTransportUDPContactImpl contact, DHTUDPPacketRequest request)
private void
sendAltContacts(DHTUDPPacketRequestPing request, DHTUDPPacketReplyPing reply)
void
sendFindNode(DHTTransportUDPContactImpl contact, DHTTransportReplyHandler handler, byte[] nid)
void
sendFindValue(DHTTransportUDPContactImpl contact, DHTTransportReplyHandler handler, byte[] key, int max_values, short flags)
protected void
sendImmediatePing(DHTTransportUDPContactImpl contact, DHTTransportReplyHandler handler, long timeout)
protected void
sendKeyBlockRequest(DHTTransportUDPContactImpl contact, DHTTransportReplyHandler handler, byte[] block_request, byte[] block_signature)
protected void
sendPing(DHTTransportUDPContactImpl contact, DHTTransportReplyHandler handler)
protected void
sendPing(DHTTransportUDPContactImpl contact, DHTTransportReplyHandler handler, long timeout, int priority)
void
sendQueryStore(DHTTransportUDPContactImpl contact, DHTTransportReplyHandler handler, int header_size, java.util.List<java.lang.Object[]> key_details)
protected void
sendStats(DHTTransportUDPContactImpl contact, DHTTransportReplyHandler handler)
void
sendStore(DHTTransportUDPContactImpl contact, DHTTransportReplyHandler handler, byte[][] keys, DHTTransportValue[][] value_sets, int priority)
void
setExplicitBindAddress(java.net.InetAddress address, boolean autoDelegate)
void
setGenericFlag(byte flag, boolean value)
protected void
setLocalContact()
void
setPort(int new_port)
void
setRequestHandler(DHTTransportRequestHandler _request_handler)
Set the handler for incoming requestsvoid
setSuspended(boolean susp)
void
setTimeout(long timeout)
boolean
supportsStorage()
void
testExternalAddressChange()
void
testInstanceIDChange()
void
testNetworkAlive(boolean alive)
void
testTransportIDChange()
void
unregisterAlternativeNetwork(DHTTransportAlternativeNetwork network)
void
unregisterTransferHandler(byte[] handler_key, DHTTransportTransferHandler handler)
protected void
updateContactStatus(DHTTransportUDPContactImpl contact, int status, boolean incoming)
protected void
updateStats(int tick_count)
byte[]
writeReadTransfer(DHTTransportProgressListener listener, DHTTransportContact target, byte[] handler_key, byte[] data, long timeout)
void
writeTransfer(DHTTransportProgressListener listener, DHTTransportContact target, byte[] handler_key, byte[] key, byte[] data, long timeout)
-
-
-
Field Detail
-
TEST_EXTERNAL_IP
public static boolean TEST_EXTERNAL_IP
-
MIN_ADDRESS_CHANGE_PERIOD_INIT_DEFAULT
public static final int MIN_ADDRESS_CHANGE_PERIOD_INIT_DEFAULT
- See Also:
- Constant Field Values
-
MIN_ADDRESS_CHANGE_PERIOD_NEXT_DEFAULT
public static final int MIN_ADDRESS_CHANGE_PERIOD_NEXT_DEFAULT
- See Also:
- Constant Field Values
-
STORE_TIMEOUT_MULTIPLIER
public static final int STORE_TIMEOUT_MULTIPLIER
- See Also:
- Constant Field Values
-
external_address
java.lang.String external_address
-
min_address_change_period
private int min_address_change_period
-
protocol_version
private final byte protocol_version
-
network
private final int network
-
v6
private final boolean v6
-
ip_override
private final java.lang.String ip_override
-
port
private int port
-
max_fails_for_live
private final int max_fails_for_live
-
max_fails_for_unknown
private final int max_fails_for_unknown
-
request_timeout
private long request_timeout
-
store_timeout
private long store_timeout
-
reachable
private boolean reachable
-
reachable_accurate
private boolean reachable_accurate
-
dht_send_delay
private final int dht_send_delay
-
dht_receive_delay
private final int dht_receive_delay
-
explicit_bind
private java.net.InetAddress explicit_bind
-
logger
final DHTLogger logger
-
packet_handler
DHTUDPPacketHandler packet_handler
-
request_handler
DHTTransportRequestHandler request_handler
-
local_contact
DHTTransportUDPContactImpl local_contact
-
last_address_change
private long last_address_change
-
listeners
final java.util.List listeners
-
ip_filter
private final IpFilter ip_filter
-
stats
DHTTransportUDPStatsImpl stats
-
bootstrap_node
private boolean bootstrap_node
-
generic_flags
private byte generic_flags
-
generic_flags2
private byte generic_flags2
-
CONTACT_HISTORY_MAX
private static final int CONTACT_HISTORY_MAX
- See Also:
- Constant Field Values
-
CONTACT_HISTORY_PING_SIZE
private static final int CONTACT_HISTORY_PING_SIZE
- See Also:
- Constant Field Values
-
contact_history
final java.util.Map<java.net.InetSocketAddress,DHTTransportContact> contact_history
-
ROUTABLE_CONTACT_HISTORY_MAX
private static final int ROUTABLE_CONTACT_HISTORY_MAX
- See Also:
- Constant Field Values
-
routable_contact_history
final java.util.Map<java.net.InetSocketAddress,DHTTransportContact> routable_contact_history
-
other_routable_total
private long other_routable_total
-
other_non_routable_total
private long other_non_routable_total
-
routeable_percentage_average
private final MovingImmediateAverage routeable_percentage_average
-
RECENT_REPORTS_HISTORY_MAX
private static final int RECENT_REPORTS_HISTORY_MAX
- See Also:
- Constant Field Values
-
recent_reports
private final java.util.Map recent_reports
-
STATS_PERIOD
private static final int STATS_PERIOD
- See Also:
- Constant Field Values
-
STATS_DURATION_SECS
private static final int STATS_DURATION_SECS
- See Also:
- Constant Field Values
-
STATS_INIT_PERIOD
private static final long STATS_INIT_PERIOD
- See Also:
- Constant Field Values
-
stats_start_time
private long stats_start_time
-
last_alien_count
private long last_alien_count
-
last_alien_fv_count
private long last_alien_fv_count
-
alien_average
private final Average alien_average
-
alien_fv_average
private final Average alien_fv_average
-
random
private java.util.Random random
-
BAD_IP_BLOOM_FILTER_SIZE
private static final int BAD_IP_BLOOM_FILTER_SIZE
- See Also:
- Constant Field Values
-
bad_ip_bloom_filter
private BloomFilter bad_ip_bloom_filter
-
class_mon
private static final AEMonitor class_mon
-
this_mon
final AEMonitor this_mon
-
initial_address_change_deferred
private boolean initial_address_change_deferred
-
address_changing
boolean address_changing
-
xfer_handler
private final DHTTransferHandler xfer_handler
-
alt_net_states
private final java.util.Map<java.lang.Integer,DHTTransportAlternativeNetworkImpl> alt_net_states
-
alt_net_providers
private volatile java.util.Map<java.lang.Integer,DHTTransportAlternativeNetwork> alt_net_providers
-
alt_net_providers_lock
private final java.lang.Object alt_net_providers_lock
-
-
Constructor Detail
-
DHTTransportUDPImpl
public DHTTransportUDPImpl(byte _protocol_version, int _network, boolean _v6, java.lang.String _ip, java.lang.String _default_ip, int _port, int _max_fails_for_live, int _max_fails_for_unknown, long _timeout, int _dht_send_delay, int _dht_receive_delay, boolean _bootstrap_node, boolean _initial_reachability, DHTLogger _logger) throws DHTTransportException
- Throws:
DHTTransportException
-
-
Method Detail
-
createPacketHandler
protected void createPacketHandler() throws DHTTransportException
- Throws:
DHTTransportException
-
getRequestHandler
public DHTUDPRequestHandler getRequestHandler()
- Specified by:
getRequestHandler
in interfaceDHTTransportUDP
-
getPacketHandler
public DHTUDPPacketHandler getPacketHandler()
- Specified by:
getPacketHandler
in interfaceDHTTransportUDP
-
setSuspended
public void setSuspended(boolean susp)
- Specified by:
setSuspended
in interfaceDHTTransport
-
updateStats
protected void updateStats(int tick_count)
-
recordSkew
protected void recordSkew(java.net.InetSocketAddress originator_address, long skew)
-
getNodeStatus
protected int getNodeStatus()
-
isReachable
public boolean isReachable()
- Specified by:
isReachable
in interfaceDHTTransport
-
getProtocolVersion
public byte getProtocolVersion()
- Specified by:
getProtocolVersion
in interfaceDHTTransport
-
getMinimumProtocolVersion
public byte getMinimumProtocolVersion()
- Specified by:
getMinimumProtocolVersion
in interfaceDHTTransport
-
getPort
public int getPort()
- Specified by:
getPort
in interfaceDHTTransport
-
setPort
public void setPort(int new_port) throws DHTTransportException
- Specified by:
setPort
in interfaceDHTTransport
- Throws:
DHTTransportException
-
getTimeout
public long getTimeout()
- Specified by:
getTimeout
in interfaceDHTTransport
-
setTimeout
public void setTimeout(long timeout)
- Specified by:
setTimeout
in interfaceDHTTransport
-
getCurrentBindAddress
public java.net.InetAddress getCurrentBindAddress()
- Specified by:
getCurrentBindAddress
in interfaceDHTTransport
-
getExplicitBindAddress
public java.net.InetAddress getExplicitBindAddress()
- Specified by:
getExplicitBindAddress
in interfaceDHTTransport
-
setExplicitBindAddress
public void setExplicitBindAddress(java.net.InetAddress address, boolean autoDelegate)
- Specified by:
setExplicitBindAddress
in interfaceDHTTransport
-
getNetwork
public int getNetwork()
- Specified by:
getNetwork
in interfaceDHTTransport
-
getGenericFlags
public byte getGenericFlags()
- Specified by:
getGenericFlags
in interfaceDHTTransport
-
getGenericFlags2
public byte getGenericFlags2()
-
setGenericFlag
public void setGenericFlag(byte flag, boolean value)
- Specified by:
setGenericFlag
in interfaceDHTTransport
-
isIPV6
public boolean isIPV6()
- Specified by:
isIPV6
in interfaceDHTTransport
-
testInstanceIDChange
public void testInstanceIDChange() throws DHTTransportException
- Throws:
DHTTransportException
-
testTransportIDChange
public void testTransportIDChange() throws DHTTransportException
- Throws:
DHTTransportException
-
testExternalAddressChange
public void testExternalAddressChange()
-
testNetworkAlive
public void testNetworkAlive(boolean alive)
-
getExternalAddress
protected void getExternalAddress(java.lang.String default_address, DHTLogger log)
-
informLocalAddress
protected void informLocalAddress(java.lang.String address)
-
externalAddressChange
protected void externalAddressChange(DHTTransportUDPContactImpl reporter, java.net.InetSocketAddress new_address, boolean force) throws DHTTransportException
- Throws:
DHTTransportException
-
contactAlive
protected void contactAlive(DHTTransportUDPContactImpl contact)
-
getReachableContacts
public DHTTransportContact[] getReachableContacts()
- Specified by:
getReachableContacts
in interfaceDHTTransport
-
getRecentContacts
public DHTTransportContact[] getRecentContacts()
- Specified by:
getRecentContacts
in interfaceDHTTransport
-
updateContactStatus
protected void updateContactStatus(DHTTransportUDPContactImpl contact, int status, boolean incoming)
-
getRouteablePercentage
public int getRouteablePercentage()
-
invalidExternalAddress
protected boolean invalidExternalAddress(java.net.InetAddress ia)
-
getMaxFailForLiveCount
protected int getMaxFailForLiveCount()
-
getMaxFailForUnknownCount
protected int getMaxFailForUnknownCount()
-
getLocalContact
public DHTTransportContact getLocalContact()
Description copied from interface:DHTTransport
Gives access to the node ID for this transport- Specified by:
getLocalContact
in interfaceDHTTransport
- Returns:
-
setLocalContact
protected void setLocalContact()
-
importContact
public DHTTransportContact importContact(java.io.DataInputStream is, boolean is_bootstrap) throws java.io.IOException, DHTTransportException
- Specified by:
importContact
in interfaceDHTTransport
- Throws:
java.io.IOException
DHTTransportException
-
importContact
public DHTTransportUDPContact importContact(java.net.InetSocketAddress _address, byte _protocol_version, boolean is_bootstrap) throws DHTTransportException
- Specified by:
importContact
in interfaceDHTTransportUDP
- Throws:
DHTTransportException
-
importContact
protected void importContact(DHTTransportUDPContactImpl contact, boolean is_bootstrap)
-
exportContact
public void exportContact(DHTTransportContact contact, java.io.DataOutputStream os) throws java.io.IOException, DHTTransportException
- Throws:
java.io.IOException
DHTTransportException
-
exportContactToMap
public java.util.Map<java.lang.String,java.lang.Object> exportContactToMap(DHTTransportContact contact)
-
importContact
public DHTTransportUDPContact importContact(java.util.Map<java.lang.String,java.lang.Object> map)
- Specified by:
importContact
in interfaceDHTTransportUDP
-
removeContact
public void removeContact(DHTTransportContact contact)
-
setRequestHandler
public void setRequestHandler(DHTTransportRequestHandler _request_handler)
Description copied from interface:DHTTransport
Set the handler for incoming requests- Specified by:
setRequestHandler
in interfaceDHTTransport
-
getStats
public DHTTransportStats getStats()
- Specified by:
getStats
in interfaceDHTTransport
-
checkAddress
protected void checkAddress(DHTTransportUDPContactImpl contact) throws DHTUDPPacketHandlerException
- Throws:
DHTUDPPacketHandlerException
-
sendPing
protected void sendPing(DHTTransportUDPContactImpl contact, DHTTransportReplyHandler handler, long timeout, int priority)
-
sendPing
protected void sendPing(DHTTransportUDPContactImpl contact, DHTTransportReplyHandler handler)
-
sendImmediatePing
protected void sendImmediatePing(DHTTransportUDPContactImpl contact, DHTTransportReplyHandler handler, long timeout)
-
sendKeyBlockRequest
protected void sendKeyBlockRequest(DHTTransportUDPContactImpl contact, DHTTransportReplyHandler handler, byte[] block_request, byte[] block_signature)
-
sendStats
protected void sendStats(DHTTransportUDPContactImpl contact, DHTTransportReplyHandler handler)
-
askContactForExternalAddress
protected java.net.InetSocketAddress askContactForExternalAddress(DHTTransportUDPContactImpl contact)
-
sendStore
public void sendStore(DHTTransportUDPContactImpl contact, DHTTransportReplyHandler handler, byte[][] keys, DHTTransportValue[][] value_sets, int priority)
-
sendQueryStore
public void sendQueryStore(DHTTransportUDPContactImpl contact, DHTTransportReplyHandler handler, int header_size, java.util.List<java.lang.Object[]> key_details)
-
sendFindNode
public void sendFindNode(DHTTransportUDPContactImpl contact, DHTTransportReplyHandler handler, byte[] nid)
-
sendFindValue
public void sendFindValue(DHTTransportUDPContactImpl contact, DHTTransportReplyHandler handler, byte[] key, int max_values, short flags)
-
getFullStats
protected DHTTransportFullStats getFullStats(DHTTransportUDPContactImpl contact)
-
registerTransferHandler
public void registerTransferHandler(byte[] handler_key, DHTTransportTransferHandler handler)
- Specified by:
registerTransferHandler
in interfaceDHTTransport
-
registerTransferHandler
public void registerTransferHandler(byte[] handler_key, DHTTransportTransferHandler handler, java.util.Map<java.lang.String,java.lang.Object> options)
- Specified by:
registerTransferHandler
in interfaceDHTTransport
-
unregisterTransferHandler
public void unregisterTransferHandler(byte[] handler_key, DHTTransportTransferHandler handler)
- Specified by:
unregisterTransferHandler
in interfaceDHTTransport
-
readTransfer
public byte[] readTransfer(DHTTransportProgressListener listener, DHTTransportContact target, byte[] handler_key, byte[] key, long timeout) throws DHTTransportException
- Specified by:
readTransfer
in interfaceDHTTransport
- Throws:
DHTTransportException
-
writeTransfer
public void writeTransfer(DHTTransportProgressListener listener, DHTTransportContact target, byte[] handler_key, byte[] key, byte[] data, long timeout) throws DHTTransportException
- Specified by:
writeTransfer
in interfaceDHTTransport
- Throws:
DHTTransportException
-
writeReadTransfer
public byte[] writeReadTransfer(DHTTransportProgressListener listener, DHTTransportContact target, byte[] handler_key, byte[] data, long timeout) throws DHTTransportException
- Specified by:
writeReadTransfer
in interfaceDHTTransport
- Throws:
DHTTransportException
-
dataRequest
protected void dataRequest(DHTTransportUDPContactImpl originator, DHTUDPPacketData req)
-
process
public void process(DHTUDPPacketRequest request, boolean alien)
- Specified by:
process
in interfaceDHTUDPRequestHandler
-
process
public void process(DHTUDPPacketHandlerStub packet_handler_stub, DHTUDPPacketRequest request, boolean alien)
- Specified by:
process
in interfaceDHTUDPRequestHandler
-
getAlternativeNetwork
public DHTTransportAlternativeNetwork getAlternativeNetwork(int network_type)
- Specified by:
getAlternativeNetwork
in interfaceDHTTransportUDP
-
registerAlternativeNetwork
public void registerAlternativeNetwork(DHTTransportAlternativeNetwork network)
- Specified by:
registerAlternativeNetwork
in interfaceDHTTransportUDP
-
unregisterAlternativeNetwork
public void unregisterAlternativeNetwork(DHTTransportAlternativeNetwork network)
- Specified by:
unregisterAlternativeNetwork
in interfaceDHTTransportUDP
-
checkAltContacts
void checkAltContacts()
-
sendAltContacts
private void sendAltContacts(DHTUDPPacketRequestPing request, DHTUDPPacketReplyPing reply)
-
requestAltContacts
private void requestAltContacts(DHTUDPPacketRequestPing request)
-
receiveAltContacts
void receiveAltContacts(DHTUDPPacketReplyPing reply)
-
requestReceiveRequestProcessor
protected void requestReceiveRequestProcessor(DHTTransportUDPContactImpl contact, DHTUDPPacketRequest request)
-
requestReceiveReplyProcessor
protected void requestReceiveReplyProcessor(DHTTransportUDPContactImpl contact, DHTUDPPacketReply reply)
-
requestSendRequestProcessor
protected void requestSendRequestProcessor(DHTTransportUDPContactImpl contact, DHTUDPPacketRequest request)
-
requestSendReplyProcessor
protected void requestSendReplyProcessor(DHTTransportUDPContactImpl remote_contact, DHTTransportReplyHandler handler, DHTUDPPacketReply reply, long elapsed_time) throws DHTUDPPacketHandlerException
Returns false if this isn't an error reply, true if it is and a retry can be performed, throws an exception otherwise- Parameters:
reply
-- Throws:
DHTUDPPacketHandlerException
-
getConnectionID
protected long getConnectionID()
-
supportsStorage
public boolean supportsStorage()
- Specified by:
supportsStorage
in interfaceDHTTransport
-
addListener
public void addListener(DHTTransportListener l)
- Specified by:
addListener
in interfaceDHTTransport
-
removeListener
public void removeListener(DHTTransportListener l)
- Specified by:
removeListener
in interfaceDHTTransport
-
-