arnaucube
arnaucube/bcPublic Self-hosted repository
bc/peer/p2plib/init.go
peer/p2plib/init.goRaw
 1package p2plib
 2
 3import (
 4	"fmt"
 5	"math/rand"
 6	"time"
 7)
 8
 9func InitializePeer(role, ip, port, restport, serverip, serverport string) ThisPeer {
10	//initialize some vars
11	rand.Seed(time.Now().Unix())
12
13	var tp ThisPeer
14	tp.Running = true
15	tp.RunningPeer.Role = role
16	tp.RunningPeer.Port = port
17	tp.RunningPeer.RESTPort = restport
18	tp.RunningPeer.ID = HashPeer(tp.RunningPeer)
19
20	tp.ID = tp.RunningPeer.ID
21	globalTP.PeersConnections.Outcoming.PeerID = tp.RunningPeer.ID
22	fmt.Println(tp.RunningPeer)
23	//outcomingPeersList.Peers = append(outcomingPeersList.Peers, peer.RunningPeer)
24	globalTP.PeersConnections.Outcoming = AppendPeerIfNoExist(globalTP.PeersConnections.Outcoming, tp.RunningPeer)
25	fmt.Println(globalTP.PeersConnections.Outcoming)
26
27	if tp.RunningPeer.Role == "server" {
28		go tp.AcceptPeers(tp.RunningPeer)
29	}
30	if tp.RunningPeer.Role == "client" {
31		var serverPeer Peer
32		serverPeer.IP = serverip
33		serverPeer.Port = serverport
34		serverPeer.Role = "server"
35		serverPeer.ID = HashPeer(serverPeer)
36		go tp.AcceptPeers(tp.RunningPeer)
37		ConnectToPeer(serverPeer)
38	}
39	globalTP = tp
40
41	return tp
42
43}