Package com.biglybt.core.dht.nat.impl
Class DHTNATPuncherImpl
java.lang.Object
com.biglybt.core.dht.nat.impl.DHTNATPuncherImpl
- All Implemented Interfaces:
DHTNATPuncher
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final DHTNATPuncherAdapter
private DHTTransportContact
(package private) DHTTransportContact
private final DHT
private final Map
private final Map
private static final int
private boolean
private final Formatters
private final boolean
private static long
private DHTTransportContact
private long
(package private) byte[]
(package private) List<DHTTransportContact>
private final CopyOnWriteList<DHTNATPuncherListener>
private final DHTLogger
private final int[]
private final List
private final PluginInterface
(package private) final Monitor
(package private) boolean
private final Monitor
private int
private int
private int
private int
private int
(package private) final Map<String,
DHTNATPuncherImpl.BindingData> private static final int
private long
private long
private DHTTransportContact
private long
private static final int
private static final int
private boolean
private static final int
private static final int
(package private) DHTTransportContact
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
(package private) final CopyOnWriteList<DHTNATPuncherImpl>
(package private) final Monitor
private boolean
(package private) boolean
private static final boolean
private final UTTimer
private final UTTimer
private final UTTimer
private static final boolean
private static final byte[]
private static final int
private static final int
-
Constructor Summary
ConstructorsModifierConstructorDescriptionDHTNATPuncherImpl
(DHTNATPuncherAdapter _adapter, DHT _dht) private
DHTNATPuncherImpl
(DHTNATPuncherAdapter _adapter, DHT _dht, boolean _is_secondary) -
Method Summary
Modifier and TypeMethodDescriptionboolean
active()
We're trying to run a rendezvousvoid
addListener
(DHTNATPuncherListener listener) protected DHTTransportUDPContact
decodeContact
(byte[] bytes) void
destroy()
protected byte[]
encodeContact
(DHTTransportContact contact) protected byte[]
encodePublishValue
(DHTTransportContact contact) void
forceActive
(boolean force) protected byte[]
getPublishKey
(DHTTransportContact contact) protected DHTTransportContact
getRendezvous
(String reason, DHTTransportContact target) getStats()
private static Map
handleDebug
(Map map) protected void
protected void
boolean
Got a good running rendezvousprotected void
publish
(boolean force) protected void
punch
(String reason, DHTTransportContact _target, DHTTransportContact[] rendezvous_used, Map originator_client_data) punch
(String reason, InetSocketAddress[] target, DHTTransportContact[] rendezvous_used, Map originator_client_data) protected void
receiveBind
(DHTTransportUDPContact originator, Map request, Map response) protected void
receiveClose
(DHTTransportUDPContact originator, Map request, Map response) protected void
receiveConnect
(DHTTransportContact rendezvous, Map request, Map response) protected void
receivePunch
(DHTTransportUDPContact originator, Map request, Map response) protected void
receiveQuery
(DHTTransportUDPContact originator, Map request, Map response) protected byte[]
receiveRequest
(DHTTransportUDPContact originator, byte[] data) protected Map
receiveRequest
(DHTTransportUDPContact originator, Map data) protected void
receiveTunnelInbound
(DHTTransportUDPContact originator, Map data) protected void
receiveTunnelOutbound
(DHTTransportContact originator, Map data) void
removeListener
(DHTNATPuncherListener listener) protected void
rendezvousFailed
(DHTTransportContact current_target, boolean tidy) protected void
protected void
protected int
sendBind
(DHTTransportContact target) protected int
sendClose
(DHTTransportContact target) protected Map
sendConnect
(DHTTransportContact target, DHTTransportContact originator, Map originator_client_data) sendMessage
(InetSocketAddress rendezvous, InetSocketAddress target, Map message) protected Map
sendPunch
(DHTTransportContact rendezvous, DHTTransportUDPContact target, Map originator_client_data, boolean no_tunnel) private int
sendQuery
(DHTTransportContact target) XXX: unusedprotected byte[]
sendRequest
(DHTTransportContact target, byte[] data, int timeout) protected Map
sendRequest
(DHTTransportContact target, Map data, int timeout) protected boolean
sendTunnelInbound
(DHTTransportContact target) protected boolean
sendTunnelMessage
(DHTTransportContact target, byte[] data) protected boolean
sendTunnelMessage
(DHTTransportContact target, Map data) protected boolean
void
setRendezvous
(DHTTransportContact target, DHTTransportContact rendezvous) void
setSuspended
(boolean susp) void
start()
protected void
-
Field Details
-
TESTING
private static final boolean TESTING- See Also:
-
TRACE
private static final boolean TRACE- See Also:
-
RT_BIND_REQUEST
private static final int RT_BIND_REQUEST- See Also:
-
RT_BIND_REPLY
private static final int RT_BIND_REPLY- See Also:
-
RT_PUNCH_REQUEST
private static final int RT_PUNCH_REQUEST- See Also:
-
RT_PUNCH_REPLY
private static final int RT_PUNCH_REPLY- See Also:
-
RT_CONNECT_REQUEST
private static final int RT_CONNECT_REQUEST- See Also:
-
RT_CONNECT_REPLY
private static final int RT_CONNECT_REPLY- See Also:
-
RT_TUNNEL_INBOUND
private static final int RT_TUNNEL_INBOUND- See Also:
-
RT_TUNNEL_OUTBOUND
private static final int RT_TUNNEL_OUTBOUND- See Also:
-
RT_QUERY_REQUEST
private static final int RT_QUERY_REQUEST- See Also:
-
RT_QUERY_REPLY
private static final int RT_QUERY_REPLY- See Also:
-
RT_CLOSE_REQUEST
private static final int RT_CLOSE_REQUEST- See Also:
-
RT_CLOSE_REPLY
private static final int RT_CLOSE_REPLY- See Also:
-
RESP_OK
private static final int RESP_OK- See Also:
-
RESP_NOT_OK
private static final int RESP_NOT_OK- See Also:
-
RESP_FAILED
private static final int RESP_FAILED- See Also:
-
transfer_handler_key
private static final byte[] transfer_handler_key -
started
private boolean started -
adapter
-
dht
-
logger
-
is_secondary
private final boolean is_secondary -
plugin_interface
-
formatters
-
timer1
-
timer2
-
timer3
-
REPUBLISH_TIME_MIN
private static final int REPUBLISH_TIME_MIN- See Also:
-
TRANSFER_TIMEOUT
private static final int TRANSFER_TIMEOUT- See Also:
-
RENDEZVOUS_LOOKUP_TIMEOUT
private static final int RENDEZVOUS_LOOKUP_TIMEOUT- See Also:
-
TUNNEL_TIMEOUT
private static final int TUNNEL_TIMEOUT- See Also:
-
RENDEZVOUS_SERVER_MAX
private static final int RENDEZVOUS_SERVER_MAX- See Also:
-
RENDEZVOUS_SERVER_TIMEOUT
private static final int RENDEZVOUS_SERVER_TIMEOUT- See Also:
-
RENDEZVOUS_CLIENT_PING_PERIOD
private static final int RENDEZVOUS_CLIENT_PING_PERIOD- See Also:
-
RENDEZVOUS_PING_FAIL_LIMIT
private static final int RENDEZVOUS_PING_FAIL_LIMIT- See Also:
-
server_mon
-
rendezvous_bindings
-
secondaries
-
force_active
private boolean force_active -
last_publish
private long last_publish -
pub_mon
-
publish_in_progress
boolean publish_in_progress -
rendezvous_local_contact
-
rendezvous_target
-
last_ok_rendezvous
-
MESSAGE_STATS
private final int[] MESSAGE_STATS -
punch_send_ok
private int punch_send_ok -
punch_send_fail
private int punch_send_fail -
punch_recv_ok
private int punch_recv_ok -
punch_recv_fail
private int punch_recv_fail -
FAILED_RENDEZVOUS_HISTORY_MAX
private static final int FAILED_RENDEZVOUS_HISTORY_MAX- See Also:
-
failed_rendezvous
-
rendezvous_running
private boolean rendezvous_running -
explicit_rendezvous_map
-
punch_mon
-
oustanding_punches
-
current_local
-
current_target
DHTTransportContact current_target -
rendevzous_fail_count
private int rendevzous_fail_count -
rendezvous_last_ok_time
private long rendezvous_last_ok_time -
rendezvous_last_fail_time
private long rendezvous_last_fail_time -
last_publish_key
volatile byte[] last_publish_key -
last_write_set
-
listeners
-
suspended
boolean suspended -
rendezvous_lookup_cache
-
rendezvous_lookup_cache_tidy_time
private long rendezvous_lookup_cache_tidy_time -
last_debug
private static long last_debug
-
-
Constructor Details
-
DHTNATPuncherImpl
-
DHTNATPuncherImpl
-
-
Method Details
-
getSecondaryPuncher
- Specified by:
getSecondaryPuncher
in interfaceDHTNATPuncher
-
start
public void start()- Specified by:
start
in interfaceDHTNATPuncher
-
setSuspended
public void setSuspended(boolean susp) - Specified by:
setSuspended
in interfaceDHTNATPuncher
-
active
public boolean active()Description copied from interface:DHTNATPuncher
We're trying to run a rendezvous- Specified by:
active
in interfaceDHTNATPuncher
- Returns:
-
forceActive
public void forceActive(boolean force) - Specified by:
forceActive
in interfaceDHTNATPuncher
-
operational
public boolean operational()Description copied from interface:DHTNATPuncher
Got a good running rendezvous- Specified by:
operational
in interfaceDHTNATPuncher
- Returns:
-
getLocalContact
- Specified by:
getLocalContact
in interfaceDHTNATPuncher
-
getRendezvous
- Specified by:
getRendezvous
in interfaceDHTNATPuncher
-
publish
protected void publish(boolean force) -
publishSupport
protected void publishSupport() -
runRendezvous
protected void runRendezvous() -
runRendezvousSupport
protected void runRendezvousSupport() -
rendezvousFailed
-
sendRequest
-
receiveRequest
-
sendRequest
-
receiveRequest
-
sendTunnelMessage
-
sendTunnelMessage
-
sendBind
-
receiveBind
-
destroy
public void destroy()- Specified by:
destroy
in interfaceDHTNATPuncher
-
sendClose
-
receiveClose
-
sendQuery
XXX: unused -
receiveQuery
-
sendPunch
protected Map sendPunch(DHTTransportContact rendezvous, DHTTransportUDPContact target, Map originator_client_data, boolean no_tunnel) -
receivePunch
-
sendConnect
protected Map sendConnect(DHTTransportContact target, DHTTransportContact originator, Map originator_client_data) -
receiveConnect
-
sendTunnelInbound
-
receiveTunnelInbound
-
sendTunnelOutbound
-
receiveTunnelOutbound
-
punch
public Map punch(String reason, InetSocketAddress[] target, DHTTransportContact[] rendezvous_used, Map originator_client_data) - Specified by:
punch
in interfaceDHTNATPuncher
target
- input/output parameter for target of traversal- Returns:
-
punch
public Map punch(String reason, DHTTransportContact _target, DHTTransportContact[] rendezvous_used, Map originator_client_data) - Specified by:
punch
in interfaceDHTNATPuncher
-
sendMessage
- Specified by:
sendMessage
in interfaceDHTNATPuncher
-
setRendezvous
- Specified by:
setRendezvous
in interfaceDHTNATPuncher
-
getRendezvous
-
getPublishKey
-
handleDebug
-
encodePublishValue
-
encodeContact
-
decodeContact
-
addListener
- Specified by:
addListener
in interfaceDHTNATPuncher
-
removeListener
- Specified by:
removeListener
in interfaceDHTNATPuncher
-
log
-
log
-
trace
-
getStats
- Specified by:
getStats
in interfaceDHTNATPuncher
-