seda.sandStorm.lib.Gnutella
Class GnutellaPacketReader

java.lang.Object
  extended by seda.sandStorm.lib.Gnutella.GnutellaPacketReader
All Implemented Interfaces:
GnutellaConst

 class GnutellaPacketReader
extends java.lang.Object
implements GnutellaConst

This is an internal class, responsible for generating GnutellaPacket objects from raw socket data. It encapsulates the core packet-processing code in the Gnutella protocol.


Field Summary
private  java.util.Vector completePackets
           
private  int cur_offset
           
private static boolean DEBUG
           
private  int function
           
private  GnutellaGUID guid
           
private  byte[] header
           
private  int hops
           
private  int packet_offset
           
private  byte[] payload
           
private  int payload_length
           
private  byte[] pktdata
           
private  int state
           
private static int STATE_READ_HEADER
           
private static int STATE_READ_PAYLOAD
           
private  int ttl
           
 
Fields inherited from interface seda.sandStorm.lib.Gnutella.GnutellaConst
DEFAULT_DOWNLOAD_PORT, DEFAULT_GNUTELLA_PORT, DEFAULT_HOPS, DEFAULT_PING_INTERVAL, DEFAULT_SPEED, DEFAULT_TTL, GNUTELLA_CONNECT, GNUTELLA_FN_PING, GNUTELLA_FN_PONG, GNUTELLA_FN_PUSH, GNUTELLA_FN_QUERY, GNUTELLA_FN_QUERYHITS, GNUTELLA_OK, MAX_PAYLOAD_SIZE, PACKET_HEADER_SIZE, WRITE_CLOG_THRESHOLD
 
Constructor Summary
GnutellaPacketReader()
           
 
Method Summary
(package private)  void createPacket()
           
private  boolean doReadHeader()
           
private  boolean doReadPayload()
           
(package private)  GnutellaPacket getGnutellaPacket()
           
private  void processHeader()
           
(package private)  void pushPacket(ATcpInPacket pkt)
           
private  void reset()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEBUG

private static final boolean DEBUG
See Also:
Constant Field Values

STATE_READ_HEADER

private static final int STATE_READ_HEADER
See Also:
Constant Field Values

STATE_READ_PAYLOAD

private static final int STATE_READ_PAYLOAD
See Also:
Constant Field Values

state

private int state

cur_offset

private int cur_offset

packet_offset

private int packet_offset

pktdata

private byte[] pktdata

guid

private GnutellaGUID guid

function

private int function

ttl

private int ttl

hops

private int hops

payload_length

private int payload_length

header

private byte[] header

payload

private byte[] payload

completePackets

private java.util.Vector completePackets
Constructor Detail

GnutellaPacketReader

GnutellaPacketReader()
Method Detail

pushPacket

void pushPacket(ATcpInPacket pkt)
          throws java.io.IOException
Throws:
java.io.IOException

reset

private void reset()

doReadHeader

private boolean doReadHeader()
                      throws java.io.IOException
Throws:
java.io.IOException

doReadPayload

private boolean doReadPayload()
                       throws java.io.IOException
Throws:
java.io.IOException

processHeader

private void processHeader()
                    throws java.io.IOException
Throws:
java.io.IOException

getGnutellaPacket

GnutellaPacket getGnutellaPacket()
                           throws java.io.IOException
Throws:
java.io.IOException

createPacket

void createPacket()
            throws java.io.IOException
Throws:
java.io.IOException