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 DHTNATPuncherAdapterprivate DHTTransportContact(package private) DHTTransportContactprivate final DHTprivate final Mapprivate final Mapprivate static final intprivate booleanprivate final Formattersprivate final booleanprivate static longprivate DHTTransportContactprivate long(package private) byte[](package private) List<DHTTransportContact> private final CopyOnWriteList<DHTNATPuncherListener> private final DHTLoggerprivate final int[]private final Listprivate final PluginInterface(package private) final Monitor(package private) booleanprivate final Monitorprivate intprivate intprivate intprivate intprivate int(package private) final Map<String, DHTNATPuncherImpl.BindingData> private static final intprivate longprivate longprivate DHTTransportContactprivate longprivate static final intprivate static final intprivate booleanprivate static final intprivate static final int(package private) DHTTransportContactprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final int(package private) final CopyOnWriteList<DHTNATPuncherImpl> (package private) final Monitorprivate boolean(package private) booleanprivate static final booleanprivate final UTTimerprivate final UTTimerprivate final UTTimerprivate static final booleanprivate static final byte[]private static final intprivate static final int -
Constructor Summary
ConstructorsModifierConstructorDescriptionDHTNATPuncherImpl(DHTNATPuncherAdapter _adapter, DHT _dht) privateDHTNATPuncherImpl(DHTNATPuncherAdapter _adapter, DHT _dht, boolean _is_secondary) -
Method Summary
Modifier and TypeMethodDescriptionbooleanactive()We're trying to run a rendezvousvoidaddListener(DHTNATPuncherListener listener) protected DHTTransportUDPContactdecodeContact(byte[] bytes) voiddestroy()protected byte[]encodeContact(DHTTransportContact contact) protected byte[]encodePublishValue(DHTTransportContact contact) voidforceActive(boolean force) protected byte[]getPublishKey(DHTTransportContact contact) protected DHTTransportContactgetRendezvous(String reason, DHTTransportContact target) getStats()private static MaphandleDebug(Map map) protected voidprotected voidbooleanGot a good running rendezvousprotected voidpublish(boolean force) protected voidpunch(String reason, DHTTransportContact _target, DHTTransportContact[] rendezvous_used, Map originator_client_data) punch(String reason, InetSocketAddress[] target, DHTTransportContact[] rendezvous_used, Map originator_client_data) protected voidreceiveBind(DHTTransportUDPContact originator, Map request, Map response) protected voidreceiveClose(DHTTransportUDPContact originator, Map request, Map response) protected voidreceiveConnect(DHTTransportContact rendezvous, Map request, Map response) protected voidreceivePunch(DHTTransportUDPContact originator, Map request, Map response) protected voidreceiveQuery(DHTTransportUDPContact originator, Map request, Map response) protected byte[]receiveRequest(DHTTransportUDPContact originator, byte[] data) protected MapreceiveRequest(DHTTransportUDPContact originator, Map data) protected voidreceiveTunnelInbound(DHTTransportUDPContact originator, Map data) protected voidreceiveTunnelOutbound(DHTTransportContact originator, Map data) voidremoveListener(DHTNATPuncherListener listener) protected voidrendezvousFailed(DHTTransportContact current_target, boolean tidy) protected voidprotected voidprotected intsendBind(DHTTransportContact target) protected intsendClose(DHTTransportContact target) protected MapsendConnect(DHTTransportContact target, DHTTransportContact originator, Map originator_client_data) sendMessage(InetSocketAddress rendezvous, InetSocketAddress target, Map message) protected MapsendPunch(DHTTransportContact rendezvous, DHTTransportUDPContact target, Map originator_client_data, boolean no_tunnel) private intsendQuery(DHTTransportContact target) XXX: unusedprotected byte[]sendRequest(DHTTransportContact target, byte[] data, int timeout) protected MapsendRequest(DHTTransportContact target, Map data, int timeout) protected booleansendTunnelInbound(DHTTransportContact target) protected booleansendTunnelMessage(DHTTransportContact target, byte[] data) protected booleansendTunnelMessage(DHTTransportContact target, Map data) protected booleanvoidsetRendezvous(DHTTransportContact target, DHTTransportContact rendezvous) voidsetSuspended(boolean susp) voidstart()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:
getSecondaryPuncherin interfaceDHTNATPuncher
-
start
public void start()- Specified by:
startin interfaceDHTNATPuncher
-
setSuspended
public void setSuspended(boolean susp) - Specified by:
setSuspendedin interfaceDHTNATPuncher
-
active
public boolean active()Description copied from interface:DHTNATPuncherWe're trying to run a rendezvous- Specified by:
activein interfaceDHTNATPuncher- Returns:
-
forceActive
public void forceActive(boolean force) - Specified by:
forceActivein interfaceDHTNATPuncher
-
operational
public boolean operational()Description copied from interface:DHTNATPuncherGot a good running rendezvous- Specified by:
operationalin interfaceDHTNATPuncher- Returns:
-
getLocalContact
- Specified by:
getLocalContactin interfaceDHTNATPuncher
-
getRendezvous
- Specified by:
getRendezvousin 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:
destroyin 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:
punchin interfaceDHTNATPuncher- Parameters:
target- input/output parameter for target of traversaloriginator_client_data-- Returns:
-
punch
public Map punch(String reason, DHTTransportContact _target, DHTTransportContact[] rendezvous_used, Map originator_client_data) - Specified by:
punchin interfaceDHTNATPuncher
-
sendMessage
- Specified by:
sendMessagein interfaceDHTNATPuncher
-
setRendezvous
- Specified by:
setRendezvousin interfaceDHTNATPuncher- Parameters:
target-rendezvous-
-
getRendezvous
-
getPublishKey
-
handleDebug
-
encodePublishValue
-
encodeContact
-
decodeContact
-
addListener
- Specified by:
addListenerin interfaceDHTNATPuncher
-
removeListener
- Specified by:
removeListenerin interfaceDHTNATPuncher
-
log
-
log
-
trace
-
getStats
- Specified by:
getStatsin interfaceDHTNATPuncher
-