@@ -11,6 +11,13 @@ var NetworkAdminNotConnectedError = errors.New("Network admin interface not conn
11
11
var NetworkAdminCredentialsMissingError = errors .New ("Network admin credentials missing" )
12
12
var NetworkAdminCredentialsInvalidError = errors .New ("Network admin credentials invalid" )
13
13
14
+ var KnownPeers []* Peers
15
+
16
+ type Peers struct {
17
+ Source IP
18
+ Destinations []IP
19
+ }
20
+
14
21
type Network interface {
15
22
// Connect initializes the object and connects to whatever
16
23
// administration interfaces necessary.
@@ -21,13 +28,13 @@ type Network interface {
21
28
Close () error
22
29
23
30
// PeersOf retrieves all IP addresses known to be connected to the
24
- // given IP. It can return a nil slice .
25
- PeersOf (IP ) ([] IP , error )
31
+ // given IP. It can return nil.
32
+ PeersOf (IP ) (* Peers , error )
26
33
27
34
// PeersOfAll functions similarly to PeersOf, but gives connected
28
35
// IPs for all given IPs, in the order they are given. Slices can
29
36
// be nil.
30
- PeersOfAll ([]IP ) ([][] IP , error )
37
+ PeersOfAll ([]IP ) ([]* Peers , error )
31
38
}
32
39
33
40
// PopulateRoutes finds the peers of every known node in the
@@ -70,7 +77,8 @@ func PopulatePeers(db DB) {
70
77
l .Errf ("Error listing peers: %s" , err )
71
78
return
72
79
}
73
- l .Debugf ("IPs: %v\n Peers: %v\n " , ips , peers )
80
+ l .Infof ("Peering data refreshed" )
81
+ KnownPeers = peers
74
82
}
75
83
76
84
type CJDNSNetwork struct {
@@ -116,7 +124,7 @@ func (n *CJDNSNetwork) Close() error {
116
124
return n .conn .Conn .Close ()
117
125
}
118
126
119
- func (n * CJDNSNetwork ) PeersOf (ip IP ) (peers [] IP , err error ) {
127
+ func (n * CJDNSNetwork ) PeersOf (ip IP ) (peers * Peers , err error ) {
120
128
// First, ensure that the Network is connected. If not, return the
121
129
// appropriate error.
122
130
if ! n .connected {
@@ -137,16 +145,19 @@ func (n *CJDNSNetwork) PeersOf(ip IP) (peers []IP, err error) {
137
145
return
138
146
}
139
147
140
- peers = make ([]IP , len (peerRoutes ))
148
+ peers = & Peers {
149
+ Source : ip ,
150
+ Destinations : make ([]IP , len (peerRoutes )),
151
+ }
141
152
142
153
for i , route := range peerRoutes {
143
- peers [i ] = IP (* route .IP )
154
+ peers . Destinations [i ] = IP (* route .IP )
144
155
}
145
156
return
146
157
}
147
158
148
- func (n * CJDNSNetwork ) PeersOfAll (ips []IP ) (peers [][] IP , err error ) {
149
- peers = make ([][] IP , len (ips ))
159
+ func (n * CJDNSNetwork ) PeersOfAll (ips []IP ) (peers []* Peers , err error ) {
160
+ peers = make ([]* Peers , len (ips ))
150
161
for i , ip := range ips {
151
162
peers [i ], err = n .PeersOf (ip )
152
163
if err != nil {
0 commit comments