Package org.klomp.snark

I2P version of the snark bittorrent client, imported in 2005 and heavily enhanced to add a web UI, DHT support, and other features.

  • Interface Summary 
    Interface Description
    CompleteListener
    Callback for Snark events.
    CoordinatorListener
    Callback used when some peer changes state.
    DataLoader
    Callback used to fetch data
    PeerListener
    Listener for Peer events.
    ShutdownListener
    Callback for end of shutdown sequence.
    StorageListener
    Callback used when Storage changes.
  • Class Summary 
    Class Description
    BitField
    Container of a byte array representing set and unset bits.
    BWLimits
    Connect via I2CP and ask the router the bandwidth limits.
    CommandLine
    Simple command line access to various utilities.
    ConnectionAcceptor
    Accepts connections on a I2PServerSocket and routes them to PeerAcceptors.
    ExtensionHandler
    REF: BEP 10 Extension Protocol
    I2PSnarkUtil
    I2P specific helpers for I2PSnark We use this class as a sort of context for i2psnark so we can run multiple instances of single Snarks (but not multiple SnarkManagers, it is still static)
    IdleChecker
    Periodically check for idle condition based on connected peers, and reduce/restore tunnel count as necessary.
    MagnetState
    Simple state for the download of the metainfo, shared between Peer and ExtensionHandler.
    MagnetURI  
    Message
    Used to queue outgoing connections sendMessage() should be used to translate them to wire format.
    MetaInfo
    Note: this class is buggy, as it doesn't propogate custom meta fields into the bencoded info data, and from there to the info_hash.
    Mp3Test
    Callback used to fetch data
    PartialPiece
    Store the received data either on the heap or in a temp file.
    Peer  
    PeerAcceptor
    Accepts incomming connections from peers.
    PeerCheckerTask
    TimerTask that checks for good/bad up/downloader.
    PeerConnectionIn  
    PeerConnectionOut  
    PeerCoordinator
    Coordinates what peer does what.
    PeerCoordinatorSet
    Hmm, any guesses as to what this is? Used by the multitorrent functionality in the PeerAcceptor to pick the right PeerCoordinator to accept the con for.
    PeerID
    Store the address information about a peer.
    PeerMonitorTask Deprecated.
    unused, for command line client only, commented out in Snark.java
    PeerState  
    Piece
    This class is used solely by PeerCoordinator.
    Request
    Holds all information needed for a partial piece request.
    Snark
    Main Snark program startup class.
    SnarkManager
    Manage multiple snarks
    SnarkShutdown Deprecated.
    unused
    StaticSnark
    Main snark startup class for staticly linking with gcj.
    Storage
    Maintains pieces on disk.
    Tracker
    A structure for known trackers
    TrackerClient
    Informs metainfo tracker of events and gets new peers for peer coordinator.
    TrackerInfo
    The data structure for the tracker response.
    UpdateHandler
    Handles the request to update the router by firing up a magnet.
    UpdateRunner
    The downloader for router signed updates.
    URIUtil
    URI Holder.
    WebPeer
    BEP 19.
  • Exception Summary 
    Exception Description
    PeerAcceptor.ProtocolException
    A unique exception so we can tell the ConnectionAcceptor about non-BT connections
    Snark.RouterException
    A unique exception class to blame the router that can be caught by SnarkManager