org.klomp.snark
Class ExtensionHandler

java.lang.Object
  extended by org.klomp.snark.ExtensionHandler

abstract class ExtensionHandler
extends Object

REF: BEP 10 Extension Protocol

Since:
0.8.2
Author:
zzz

Field Summary
static int ID_DHT
           
static int ID_HANDSHAKE
           
static int ID_METADATA
           
static int ID_PEX
           
static String TYPE_DHT
          not using the option bit since the compact format is different
static String TYPE_METADATA
           
static String TYPE_PEX
          not ut_pex since the compact format is different
 
Constructor Summary
ExtensionHandler()
           
 
Method Summary
static byte[] getHandshake(int metasize, boolean pexAndMetadata, boolean dht)
           
static void handleMessage(Peer peer, PeerListener listener, int id, byte[] bs)
           
static void sendDHT(Peer peer, int qport, int rport)
          Send the DHT port numbers
static void sendPEX(Peer peer, List<Peer> pList)
          added.f and dropped unsupported
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ID_HANDSHAKE

public static final int ID_HANDSHAKE
See Also:
Constant Field Values

ID_METADATA

public static final int ID_METADATA
See Also:
Constant Field Values

TYPE_METADATA

public static final String TYPE_METADATA
See Also:
Constant Field Values

ID_PEX

public static final int ID_PEX
See Also:
Constant Field Values

TYPE_PEX

public static final String TYPE_PEX
not ut_pex since the compact format is different

See Also:
Constant Field Values

ID_DHT

public static final int ID_DHT
See Also:
Constant Field Values

TYPE_DHT

public static final String TYPE_DHT
not using the option bit since the compact format is different

See Also:
Constant Field Values
Constructor Detail

ExtensionHandler

ExtensionHandler()
Method Detail

getHandshake

public static byte[] getHandshake(int metasize,
                                  boolean pexAndMetadata,
                                  boolean dht)
Parameters:
metasize - -1 if unknown
pexAndMetadata - advertise these capabilities
dht - advertise DHT capability
Returns:
bencoded outgoing handshake message

handleMessage

public static void handleMessage(Peer peer,
                                 PeerListener listener,
                                 int id,
                                 byte[] bs)

sendPEX

public static void sendPEX(Peer peer,
                           List<Peer> pList)
added.f and dropped unsupported

Parameters:
pList - non-null
Since:
0.8.4

sendDHT

public static void sendDHT(Peer peer,
                           int qport,
                           int rport)
Send the DHT port numbers

Since:
DHT