p2plib

package
v0.0.0-...-bfa7b29 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 27, 2018 License: GPL-3.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ConnectToPeer

func ConnectToPeer(peer Peer)

func DeletePeerFromPeersList

func DeletePeerFromPeersList(p Peer, pl *PeersList)

func GetIPFromConn

func GetIPFromConn(conn net.Conn) string

func GetIPPortFromConn

func GetIPPortFromConn(conn net.Conn) string

func GetPortFromConn

func GetPortFromConn(conn net.Conn) string

func HandleConn

func HandleConn(conn net.Conn, connPeer Peer)

func HashPeer

func HashPeer(p Peer) string

func InitializeDefaultMsgCases

func InitializeDefaultMsgCases(configuredMsgCases map[string]func(Peer, Msg))

func MessageHandler

func MessageHandler(peer Peer, msg Msg)

func PeerIsInPeersList

func PeerIsInPeersList(p Peer, pl []Peer) int

func PrintPeersList

func PrintPeersList()

func PropagateData

func PropagateData(p Peer, s string)

func PropagatePeersList

func PropagatePeersList(p Peer)

send the outcomingPeersList to all the peers except the peer p that has send the outcomingPeersList

func RandInt

func RandInt(min int, max int) int

func SearchPeerAndUpdate

func SearchPeerAndUpdate(p Peer)

func SendPetition

func SendPetition(peer Peer, petition string)

func UpdateNetworkPeersList

func UpdateNetworkPeersList(conn net.Conn, newPeersList PeersList)

Types

type Case

type Case struct {
	Case     string
	Function func(Peer, Msg)
}

type Msg

type Msg struct {
	Type      string    `json:"type"`
	Date      time.Time `json:"date"`
	Content   string    `json:"content"`
	PeersList PeersList `json:"peerslist"`
	Data      []byte    `json:"data"`
}

func (*Msg) Construct

func (msg *Msg) Construct(msgtype string, msgcontent string)

func (Msg) CreateFromBytes

func (msg Msg) CreateFromBytes(bytes []byte) Msg

func (Msg) ToBytes

func (msg Msg) ToBytes() []byte

type Peer

type Peer struct {
	ID       string   `json:"id"` //in the future, this will be the peer hash
	IP       string   `json:"ip"`
	Port     string   `json:"port"`
	RESTPort string   `json:"restport"`
	Role     string   `json:"role"` //client or server
	Conn     net.Conn `json:"conn"`
}

type PeersConnections

type PeersConnections struct {
	Incoming  PeersList
	Outcoming PeersList
	Network   PeersList //the peers that have been received in the lists from other peers
}

type PeersList

type PeersList struct {
	PeerID string
	Peers  []Peer    `json:"peerslist"`
	Date   time.Time `json:"date"`
}

func AppendPeerIfNoExist

func AppendPeerIfNoExist(pl PeersList, p Peer) PeersList

type ThisPeer

type ThisPeer struct {
	Running          bool
	ID               string
	RunningPeer      Peer
	PeersConnections PeersConnections
}

func InitializePeer

func InitializePeer(role, ip, port, restport, serverip, serverport string,
	configuredMsgCases map[string]func(Peer, Msg)) ThisPeer

func (*ThisPeer) AcceptPeers

func (tp *ThisPeer) AcceptPeers(peer Peer)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL