Skip to content

Commit dd871e7

Browse files
committed
p2p: initialize Server.ourHandshake before accepting connections
1 parent 3dbd320 commit dd871e7

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

p2p/server.go

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ func (srv *Server) Start() (err error) {
160160
}
161161
srvlog.Infoln("Starting Server")
162162

163-
// initialize all the fields
163+
// static fields
164164
if srv.PrivateKey == nil {
165165
return fmt.Errorf("Server.PrivateKey must be set to a non-nil key")
166166
}
@@ -170,31 +170,32 @@ func (srv *Server) Start() (err error) {
170170
srv.quit = make(chan struct{})
171171
srv.peers = make(map[discover.NodeID]*Peer)
172172
srv.peerConnect = make(chan *discover.Node)
173-
174173
if srv.setupFunc == nil {
175174
srv.setupFunc = setupConn
176175
}
177176
if srv.Blacklist == nil {
178177
srv.Blacklist = NewBlacklist()
179178
}
180-
if srv.ListenAddr != "" {
181-
if err := srv.startListening(); err != nil {
182-
return err
183-
}
184-
}
185179

186-
// dial stuff
180+
// node table
187181
ntab, err := discover.ListenUDP(srv.PrivateKey, srv.ListenAddr, srv.NAT)
188182
if err != nil {
189183
return err
190184
}
191185
srv.ntab = ntab
192186

187+
// handshake
193188
srv.ourHandshake = &protoHandshake{Version: baseProtocolVersion, Name: srv.Name, ID: ntab.Self()}
194189
for _, p := range srv.Protocols {
195190
srv.ourHandshake.Caps = append(srv.ourHandshake.Caps, p.cap())
196191
}
197192

193+
// listen/dial
194+
if srv.ListenAddr != "" {
195+
if err := srv.startListening(); err != nil {
196+
return err
197+
}
198+
}
198199
if srv.Dialer == nil {
199200
srv.Dialer = &net.Dialer{Timeout: defaultDialTimeout}
200201
}

0 commit comments

Comments
 (0)