|
|
@ -365,6 +365,7 @@ func (p *Peer) startProtocols(writeStart <-chan struct{}, writeErr chan<- error) |
|
|
|
} |
|
|
|
} |
|
|
|
p.log.Trace(fmt.Sprintf("Starting protocol %s/%d", proto.Name, proto.Version)) |
|
|
|
p.log.Trace(fmt.Sprintf("Starting protocol %s/%d", proto.Name, proto.Version)) |
|
|
|
go func() { |
|
|
|
go func() { |
|
|
|
|
|
|
|
defer p.wg.Done() |
|
|
|
err := proto.Run(p, rw) |
|
|
|
err := proto.Run(p, rw) |
|
|
|
if err == nil { |
|
|
|
if err == nil { |
|
|
|
p.log.Trace(fmt.Sprintf("Protocol %s/%d returned", proto.Name, proto.Version)) |
|
|
|
p.log.Trace(fmt.Sprintf("Protocol %s/%d returned", proto.Name, proto.Version)) |
|
|
@ -373,7 +374,6 @@ func (p *Peer) startProtocols(writeStart <-chan struct{}, writeErr chan<- error) |
|
|
|
p.log.Trace(fmt.Sprintf("Protocol %s/%d failed", proto.Name, proto.Version), "err", err) |
|
|
|
p.log.Trace(fmt.Sprintf("Protocol %s/%d failed", proto.Name, proto.Version), "err", err) |
|
|
|
} |
|
|
|
} |
|
|
|
p.protoErr <- err |
|
|
|
p.protoErr <- err |
|
|
|
p.wg.Done() |
|
|
|
|
|
|
|
}() |
|
|
|
}() |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|