Versions in this module Expand all Collapse all v0 v0.5.0 Mar 7, 2017 Changes in this version + const AnnounceFrequency + const HeartbeatFrequency + const MaxSearchLength + const ResolveListSize + const SeedSearchFrequency + const TimeBeforeReExplore + var PeerDisconnected = errors.New("Peer has disconnected") + var PeerUnreachable = errors.New("Peer could not be reached") + var RecursionLimit = errors.New("Recursion limit reached, peer cannot be resolved") + func CreateNetMap(entry dht.Entry, db *dht.DHT, currentNodes map[string]bool, ...) ([]MapNode, []MapLink) + func ExternalIp() string + func SetupZifTorService(port, tor int, cookie string) (*torc.TorControl, string, error) + type CommandAddMeta struct + Value string + type CommandAddPost struct + Index bool + type CommandAddressEncode struct + Raw []byte + type CommandAnnounce CommandPeer + type CommandBootstrap CommandPeer + type CommandFile struct + File string + type CommandGetMeta CommandMeta + type CommandLocalGet struct + Key string + type CommandLocalSet struct + Key string + Value string + type CommandMeta struct + PId int + type CommandMirror CommandPeer + type CommandMirrorProgress CommandPeer + type CommandNetMap struct + Address string + type CommandPeer struct + Address string + type CommandPeerIndex struct + Since int + type CommandPeerPopular CommandPeerRecent + type CommandPeerRecent struct + Page int + type CommandPeerSearch CommandRSearch + type CommandPeers interface + type CommandPing CommandPeer + type CommandRSearch struct + Page int + Query string + type CommandRebuildCollection interface + type CommandRequestAddPeer struct + Peer string + Remote string + type CommandResolve CommandPeer + type CommandResult struct + Error error + IsOK bool + Result interface{} + func (cr *CommandResult) WriteJSON(w io.Writer) + type CommandSaveCollection interface + type CommandSaveRoutingTable interface + type CommandSearchEntry struct + Desc string + Name string + Page int + type CommandSelfIndex struct + Since int + type CommandSelfPopular CommandSelfRecent + type CommandSelfRecent struct + Page int + type CommandSelfSearch struct + Page int + type CommandServer struct + LocalPeer *LocalPeer + MirrorProgress cmap.ConcurrentMap + func NewCommandServer(lp *LocalPeer) *CommandServer + func (cs *CommandServer) AddMeta(cam CommandAddMeta) CommandResult + func (cs *CommandServer) AddPost(ap CommandAddPost) CommandResult + func (cs *CommandServer) AddressEncode(ce CommandAddressEncode) CommandResult + func (cs *CommandServer) Announce(a CommandAnnounce) CommandResult + func (cs *CommandServer) Bootstrap(cb CommandBootstrap) CommandResult + func (cs *CommandServer) EntrySearch(ps CommandSearchEntry) CommandResult + func (cs *CommandServer) Explore() CommandResult + func (cs *CommandServer) GetMirrorProgress(cmp CommandMirrorProgress) CommandResult + func (cs *CommandServer) LocalGet(clg CommandLocalGet) CommandResult + func (cs *CommandServer) LocalSet(cls CommandLocalSet) CommandResult + func (cs *CommandServer) MemProfile(cf CommandFile) CommandResult + func (cs *CommandServer) Mirror(cm CommandMirror) CommandResult + func (cs *CommandServer) NetMap(cnm CommandNetMap) CommandResult + func (cs *CommandServer) PeerIndex(ci CommandPeerIndex) CommandResult + func (cs *CommandServer) PeerPopular(pp CommandPeerPopular) CommandResult + func (cs *CommandServer) PeerRecent(pr CommandPeerRecent) CommandResult + func (cs *CommandServer) PeerSearch(ps CommandPeerSearch) CommandResult + func (cs *CommandServer) Peers(cp CommandPeers) CommandResult + func (cs *CommandServer) Ping(p CommandPing) CommandResult + func (cs *CommandServer) RSearch(rs CommandRSearch) CommandResult + func (cs *CommandServer) RebuildCollection(crc CommandRebuildCollection) CommandResult + func (cs *CommandServer) RequestAddPeer(crap CommandRequestAddPeer) CommandResult + func (cs *CommandServer) Resolve(cr CommandResolve) CommandResult + func (cs *CommandServer) SaveCollection(csc CommandSaveCollection) CommandResult + func (cs *CommandServer) SelfIndex(ci CommandSelfIndex) CommandResult + func (cs *CommandServer) SelfPopular(cp CommandSelfPopular) CommandResult + func (cs *CommandServer) SelfRecent(cr CommandSelfRecent) CommandResult + func (cs *CommandServer) SelfSearch(css CommandSelfSearch) CommandResult + func (cs *CommandServer) SelfSuggest(css CommandSuggest) CommandResult + func (cs *CommandServer) SetSeedLeech(csl CommandSetSeedLeech) CommandResult + func (cs *CommandServer) StartCpuProfile(cf CommandFile) CommandResult + func (cs *CommandServer) StopCpuProfile() CommandResult + type CommandSetSeedLeech struct + Id uint + Leechers uint + Seeders uint + type CommandSuggest struct + Query string + type HttpServer struct + CommandServer *CommandServer + func (hs *HttpServer) AddMeta(w http.ResponseWriter, r *http.Request) + func (hs *HttpServer) AddPost(w http.ResponseWriter, r *http.Request) + func (hs *HttpServer) AddressEncode(w http.ResponseWriter, r *http.Request) + func (hs *HttpServer) Announce(w http.ResponseWriter, r *http.Request) + func (hs *HttpServer) Bootstrap(w http.ResponseWriter, r *http.Request) + func (hs *HttpServer) CpuProfile(w http.ResponseWriter, r *http.Request) + func (hs *HttpServer) FtsIndex(w http.ResponseWriter, r *http.Request) + func (hs *HttpServer) IndexHandler(w http.ResponseWriter, r *http.Request) + func (hs *HttpServer) ListenHttp(addr string) + func (hs *HttpServer) MemProfile(w http.ResponseWriter, r *http.Request) + func (hs *HttpServer) Mirror(w http.ResponseWriter, r *http.Request) + func (hs *HttpServer) MirrorProgress(w http.ResponseWriter, r *http.Request) + func (hs *HttpServer) NetMap(w http.ResponseWriter, r *http.Request) + func (hs *HttpServer) PeerFtsIndex(w http.ResponseWriter, r *http.Request) + func (hs *HttpServer) PeerRSearch(w http.ResponseWriter, r *http.Request) + func (hs *HttpServer) PeerSearch(w http.ResponseWriter, r *http.Request) + func (hs *HttpServer) Peers(w http.ResponseWriter, r *http.Request) + func (hs *HttpServer) Ping(w http.ResponseWriter, r *http.Request) + func (hs *HttpServer) Popular(w http.ResponseWriter, r *http.Request) + func (hs *HttpServer) RebuildCollection(w http.ResponseWriter, r *http.Request) + func (hs *HttpServer) Recent(w http.ResponseWriter, r *http.Request) + func (hs *HttpServer) RequestAddPeer(w http.ResponseWriter, r *http.Request) + func (hs *HttpServer) Resolve(w http.ResponseWriter, r *http.Request) + func (hs *HttpServer) SaveCollection(w http.ResponseWriter, r *http.Request) + func (hs *HttpServer) SearchEntry(w http.ResponseWriter, r *http.Request) + func (hs *HttpServer) SelfExplore(w http.ResponseWriter, r *http.Request) + func (hs *HttpServer) SelfGet(w http.ResponseWriter, r *http.Request) + func (hs *HttpServer) SelfPopular(w http.ResponseWriter, r *http.Request) + func (hs *HttpServer) SelfRecent(w http.ResponseWriter, r *http.Request) + func (hs *HttpServer) SelfSearch(w http.ResponseWriter, r *http.Request) + func (hs *HttpServer) SelfSet(w http.ResponseWriter, r *http.Request) + func (hs *HttpServer) SelfSuggest(w http.ResponseWriter, r *http.Request) + func (hs *HttpServer) SetSeedLeech(w http.ResponseWriter, r *http.Request) + type LocalPeer struct + Collection *data.Collection + Collections cmap.ConcurrentMap + DHT *dht.DHT + Database *data.Database + Databases cmap.ConcurrentMap + Entry *dht.Entry + PublicAddress string + SearchProvider *data.SearchProvider + Server *proto.Server + func (lp *LocalPeer) AddEntry(entry dht.Entry) error + func (lp *LocalPeer) AddPost(p data.Post, store bool) (int64, error) + func (lp *LocalPeer) AddSeeding(entry dht.Entry) error + func (lp *LocalPeer) Close() + func (lp *LocalPeer) ConnectPeer(addr dht.Address) (*Peer, *dht.Entry, error) + func (lp *LocalPeer) ConnectPeerDirect(addr string) (*Peer, error) + func (lp *LocalPeer) GenerateKey() + func (lp *LocalPeer) GetNetworkPeer(addr dht.Address) proto.NetworkPeer + func (lp *LocalPeer) GetPeer(addr dht.Address) *Peer + func (lp *LocalPeer) GetSocksPort() int + func (lp *LocalPeer) HandleAddPeer(msg *proto.Message) error + func (lp *LocalPeer) HandleAnnounce(msg *proto.Message) error + func (lp *LocalPeer) HandleCloseConnection(addr *dht.Address) + func (lp *LocalPeer) HandleFindClosest(msg *proto.Message) error + func (lp *LocalPeer) HandleHandshake(header proto.ConnHeader) (proto.NetworkPeer, error) + func (lp *LocalPeer) HandleHashList(msg *proto.Message) error + func (lp *LocalPeer) HandlePiece(msg *proto.Message) error + func (lp *LocalPeer) HandlePopular(msg *proto.Message) error + func (lp *LocalPeer) HandleQuery(msg *proto.Message) error + func (lp *LocalPeer) HandleRecent(msg *proto.Message) error + func (lp *LocalPeer) HandleSearch(msg *proto.Message) error + func (lp *LocalPeer) Listen(addr string) + func (lp *LocalPeer) ListenStream(peer *Peer) + func (lp *LocalPeer) LoadEntry() error + func (lp *LocalPeer) PeerCount() int + func (lp *LocalPeer) Peers() map[string]*Peer + func (lp *LocalPeer) QueryEntry(addr dht.Address) (*dht.Entry, error) + func (lp *LocalPeer) QuerySelf() + func (lp *LocalPeer) ReadKey() error + func (lp *LocalPeer) Resolve(addr dht.Address) (*dht.Entry, error) + func (lp *LocalPeer) SaveEntry() error + func (lp *LocalPeer) SetNetworkPeer(p proto.NetworkPeer) + func (lp *LocalPeer) SetPeer(p *Peer) + func (lp *LocalPeer) SetSocks(on bool) + func (lp *LocalPeer) SetSocksPort(port int) + func (lp *LocalPeer) Setup() + func (lp *LocalPeer) Sign(msg []byte) []byte + func (lp *LocalPeer) SignEntry() + func (lp *LocalPeer) StartExploring() error + func (lp *LocalPeer) WriteKey() error + type MapLink struct + Source string + Target string + type MapNode struct + Address string + Name string + type Peer struct + func (p *Peer) AddStream(conn net.Conn) + func (p *Peer) Address() *dht.Address + func (p *Peer) Announce(lp *LocalPeer) error + func (p *Peer) Bootstrap(d *dht.DHT) error + func (p *Peer) CloseStreams() + func (p *Peer) Connect(addr string, lp *LocalPeer) error + func (p *Peer) ConnectClient(lp *LocalPeer) (*yamux.Session, error) + func (p *Peer) ConnectServer() (*yamux.Session, error) + func (p *Peer) EAddress() common.Encoder + func (p *Peer) Entry() (*dht.Entry, error) + func (p *Peer) FindClosest(address dht.Address) ([]common.Verifier, error) + func (p *Peer) GetCapabilities() *proto.MessageCapabilities + func (p *Peer) GetEntry() (*dht.Entry, error) + func (p *Peer) GetStream(conn net.Conn) *proto.Client + func (p *Peer) Mirror(db *data.Database, lp dht.Address, onPiece chan int) error + func (p *Peer) NewMessage(header string) *proto.Message + func (p *Peer) OpenStream() (*proto.Client, error) + func (p *Peer) Ping(timeOut time.Duration) (time.Duration, error) + func (p *Peer) Popular(page int) ([]*data.Post, error) + func (p *Peer) PublicKey() []byte + func (p *Peer) Query(address dht.Address) (common.Verifier, error) + func (p *Peer) Recent(page int) ([]*data.Post, error) + func (p *Peer) RemoveStream(conn net.Conn) + func (p *Peer) RequestAddPeer(entry dht.Entry) error + func (p *Peer) Search(search string, page int) (*data.SearchResult, error) + func (p *Peer) Session() *yamux.Session + func (p *Peer) SetCapabilities(caps proto.MessageCapabilities) + func (p *Peer) SetTCP(header proto.ConnHeader) + func (p *Peer) Streams() *proto.StreamManager + func (p *Peer) Terminate() + func (p *Peer) UpdateSeen() + type PeerManager struct + func NewPeerManager(lp *LocalPeer) *PeerManager + func (pm *PeerManager) AddSeedManager(addr dht.Address) error + func (pm *PeerManager) ConnectPeer(addr dht.Address) (*Peer, *dht.Entry, error) + func (pm *PeerManager) ConnectPeerDirect(addr string) (*Peer, error) + func (pm *PeerManager) Count() int + func (pm *PeerManager) GetPeer(addr dht.Address) *Peer + func (pm *PeerManager) HandleCloseConnection(addr *dht.Address) + func (pm *PeerManager) LoadSeeds() error + func (pm *PeerManager) Peers() map[string]*Peer + func (pm *PeerManager) Resolve(addr dht.Address) (*dht.Entry, error) + func (pm *PeerManager) SetPeer(p *Peer) + type SeedManager struct + Close chan bool + func NewSeedManager(track dht.Address, lp *LocalPeer) (*SeedManager, error) + func (sm *SeedManager) Start()