Skip to content

Commit 8bb4364

Browse files
thinkAfCodGrapeBaBa
authored andcommitted
fix: utp initial in test case
1 parent 814fee9 commit 8bb4364

7 files changed

Lines changed: 36 additions & 47 deletions

File tree

cmd/shisui/main.go

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -123,9 +123,6 @@ func shisui(ctx *cli.Context) error {
123123
if err != nil {
124124
return err
125125
}
126-
go func() {
127-
debug.Setup(ctx)
128-
}()
129126

130127
// Start metrics export if enabled
131128
utils.SetupMetrics(ctx)
@@ -397,11 +394,9 @@ func initHistory(config Config, server *rpc.Server, conn discover.UDPConn, local
397394
conn,
398395
localNode,
399396
discV5,
397+
utp,
400398
contentStorage,
401-
contentQueue,
402-
func(p *discover.PortalProtocol) {
403-
p.Utp = utp
404-
})
399+
contentQueue)
405400

406401
if err != nil {
407402
return nil, err
@@ -450,11 +445,9 @@ func initBeacon(config Config, server *rpc.Server, conn discover.UDPConn, localN
450445
conn,
451446
localNode,
452447
discV5,
448+
utp,
453449
contentStorage,
454-
contentQueue,
455-
func(p *discover.PortalProtocol) {
456-
p.Utp = utp
457-
})
450+
contentQueue)
458451

459452
if err != nil {
460453
return nil, err
@@ -496,11 +489,9 @@ func initState(config Config, server *rpc.Server, conn discover.UDPConn, localNo
496489
conn,
497490
localNode,
498491
discV5,
492+
utp,
499493
stateStore,
500-
contentQueue,
501-
func(p *discover.PortalProtocol) {
502-
p.Utp = utp
503-
})
494+
contentQueue)
504495

505496
if err != nil {
506497
return nil, err

internal/debug/flags.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -252,8 +252,8 @@ func Setup(ctx *cli.Context) error {
252252
glogger = log.NewGlogHandler(handler)
253253

254254
// logging
255-
//verbosity := log.FromLegacyLevel(ctx.Int(verbosityFlag.Name))
256-
//glogger.Verbosity(verbosity)
255+
verbosity := log.FromLegacyLevel(ctx.Int(verbosityFlag.Name))
256+
glogger.Verbosity(verbosity)
257257
vmodule := ctx.String(logVmoduleFlag.Name)
258258
if vmodule == "" {
259259
// Retain backwards compatibility with `--vmodule` flag if `--log.vmodule` not set
@@ -264,7 +264,7 @@ func Setup(ctx *cli.Context) error {
264264
}
265265
glogger.Vmodule(vmodule)
266266

267-
//log.SetDefault(log.NewLogger(glogger))
267+
log.SetDefault(log.NewLogger(glogger))
268268

269269
// profiling, tracing
270270
runtime.MemProfileRate = memprofilerateFlag.Value
@@ -312,7 +312,7 @@ func StartPProf(address string, withMetrics bool) {
312312
}
313313
log.Info("Starting pprof server", "addr", fmt.Sprintf("http://%s/debug/pprof", address))
314314
go func() {
315-
if err := http.ListenAndServe(address, nil); err != nil {
315+
if err := http.ListenAndServe("0.0.0.0:8080", nil); err != nil {
316316
log.Error("Failure in running pprof server", "err", err)
317317
}
318318
}()

p2p/discover/portal_protocol.go

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ func defaultContentIdFunc(contentKey []byte) []byte {
201201
return digest[:]
202202
}
203203

204-
func NewPortalProtocol(config *PortalProtocolConfig, protocolId portalwire.ProtocolId, privateKey *ecdsa.PrivateKey, conn UDPConn, localNode *enode.LocalNode, discV5 *UDPv5, storage storage.ContentStorage, contentQueue chan *ContentElement, opts ...PortalProtocolOption) (*PortalProtocol, error) {
204+
func NewPortalProtocol(config *PortalProtocolConfig, protocolId portalwire.ProtocolId, privateKey *ecdsa.PrivateKey, conn UDPConn, localNode *enode.LocalNode, discV5 *UDPv5, utp *PortalUtp, storage storage.ContentStorage, contentQueue chan *ContentElement, opts ...PortalProtocolOption) (*PortalProtocol, error) {
205205
closeCtx, cancelCloseCtx := context.WithCancel(context.Background())
206206

207207
protocol := &PortalProtocol{
@@ -222,6 +222,7 @@ func NewPortalProtocol(config *PortalProtocolConfig, protocolId portalwire.Proto
222222
offerQueue: make(chan *OfferRequestWithNode, concurrentOffers),
223223
conn: conn,
224224
DiscV5: discV5,
225+
Utp: utp,
225226
NAT: config.NAT,
226227
clock: config.clock,
227228
connIdGen: libutp.NewConnIdGenerator(),
@@ -247,7 +248,9 @@ func (p *PortalProtocol) Start() error {
247248
}
248249

249250
p.DiscV5.RegisterTalkHandler(p.protocolId, p.handleTalkRequest)
250-
err = p.Utp.Start()
251+
if p.Utp != nil {
252+
err = p.Utp.Start()
253+
}
251254
if err != nil {
252255
return err
253256
}
@@ -268,7 +271,9 @@ func (p *PortalProtocol) Stop() {
268271
p.cancelCloseCtx()
269272
p.table.close()
270273
p.DiscV5.Close()
271-
p.Utp.Stop()
274+
if p.Utp != nil {
275+
p.Utp.Stop()
276+
}
272277
}
273278
func (p *PortalProtocol) RoutingTableInfo() [][]string {
274279
p.table.mutex.Lock()
@@ -1146,7 +1151,7 @@ func (p *PortalProtocol) handleFindContent(id enode.ID, addr *net.UDPAddr, reque
11461151
}(p.closeCtx, connectionId)
11471152

11481153
idBuffer := make([]byte, 2)
1149-
binary.BigEndian.PutUint16(idBuffer, uint16(connectionId.SendId()))
1154+
binary.BigEndian.PutUint16(idBuffer, connectionId.SendId())
11501155
connIdMsg := &portalwire.ConnectionId{
11511156
Id: idBuffer,
11521157
}
@@ -1286,7 +1291,7 @@ func (p *PortalProtocol) handleOffer(id enode.ID, addr *net.UDPAddr, request *po
12861291
}
12871292
}(p.closeCtx, connectionId)
12881293

1289-
binary.BigEndian.PutUint16(idBuffer, uint16(connectionId.SendId()))
1294+
binary.BigEndian.PutUint16(idBuffer, connectionId.SendId())
12901295
} else {
12911296
binary.BigEndian.PutUint16(idBuffer, uint16(0))
12921297
}

p2p/discover/portal_protocol_test.go

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -94,11 +94,9 @@ func setupLocalPortalNode(addr string, bootNodes []*enode.Node) (*PortalProtocol
9494
conn,
9595
localNode,
9696
discV5,
97+
utpSocket,
9798
&storage.MockStorage{Db: make(map[string][]byte)},
98-
contentQueue,
99-
func(p *PortalProtocol) {
100-
p.Utp = utpSocket
101-
})
99+
contentQueue)
102100
if err != nil {
103101
return nil, err
104102
}
@@ -195,7 +193,7 @@ func TestPortalWireProtocolUdp(t *testing.T) {
195193
_ = connWithConnId.Close()
196194
}
197195
}()
198-
connWithConnId, err = node2.Utp.DialWithCid(context.Background(), node1.localNode.Node(), uint16(cid1.SendId()))
196+
connWithConnId, err = node2.Utp.DialWithCid(context.Background(), node1.localNode.Node(), cid1.SendId())
199197
if err != nil {
200198
panic(err)
201199
}
@@ -218,7 +216,7 @@ func TestPortalWireProtocolUdp(t *testing.T) {
218216
_ = ConnId2Conn.Close()
219217
}
220218
}()
221-
ConnId2Conn, err = node2.Utp.DialWithCid(context.Background(), node1.localNode.Node(), uint16(cid2.SendId()))
219+
ConnId2Conn, err = node2.Utp.DialWithCid(context.Background(), node1.localNode.Node(), cid2.SendId())
222220
if err != nil && err != io.EOF {
223221
panic(err)
224222
}

p2p/discover/portal_utp.go

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -42,26 +42,20 @@ func NewPortalUtp(ctx context.Context, config *PortalProtocolConfig, discV5 *UDP
4242
}
4343

4444
func (p *PortalUtp) Start() error {
45-
errCh := make(chan error, 1)
46-
p.startOnce.Do(func() {
47-
defer func() {
48-
close(errCh)
49-
}()
50-
laddr := p.getLocalAddr()
51-
52-
p.packetRouter = utp.NewPacketRouter(p.packetRouterFunc)
53-
45+
var err error
46+
go p.startOnce.Do(func() {
5447
var logger *zap.Logger
55-
var err error
5648
if p.log.Enabled(p.ctx, log.LevelDebug) || p.log.Enabled(p.ctx, log.LevelTrace) {
5749
logger, err = zap.NewDevelopmentConfig().Build()
5850
} else {
5951
logger, err = zap.NewProductionConfig().Build()
6052
}
6153
if err != nil {
62-
errCh <- err
6354
return
6455
}
56+
57+
laddr := p.getLocalAddr()
58+
p.packetRouter = utp.NewPacketRouter(p.packetRouterFunc)
6559
p.utpSm, err = utp.NewSocketManagerWithOptions(
6660
"utp",
6761
laddr,
@@ -70,12 +64,10 @@ func (p *PortalUtp) Start() error {
7064
utp.WithPacketRouter(p.packetRouter),
7165
utp.WithMaxPacketSize(1145))
7266
if err != nil {
73-
errCh <- err
7467
return
7568
}
7669
p.listener, err = utp.ListenUTPOptions("utp", (*utp.Addr)(laddr), utp.WithSocketManager(p.utpSm))
7770
if err != nil {
78-
errCh <- err
7971
return
8072
}
8173
p.lAddr = p.listener.Addr().(*utp.Addr)
@@ -84,7 +76,7 @@ func (p *PortalUtp) Start() error {
8476
p.discV5.RegisterTalkHandler(string(portalwire.Utp), p.handleUtpTalkRequest)
8577
})
8678

87-
return <-errCh
79+
return err
8880
}
8981

9082
func (p *PortalUtp) Stop() {

portalnetwork/beacon/test_utils.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package beacon
22

33
import (
44
"bytes"
5+
"context"
56
"fmt"
67
"net"
78
"os"
@@ -65,7 +66,8 @@ func SetupBeaconNetwork(addr string, bootNodes []*enode.Node) (*BeaconNetwork, e
6566

6667
contentQueue := make(chan *discover.ContentElement, 50)
6768

68-
portalProtocol, err := discover.NewPortalProtocol(conf, portalwire.Beacon, privKey, conn, localNode, discV5, &storage.MockStorage{Db: make(map[string][]byte)}, contentQueue)
69+
utpSocket := discover.NewPortalUtp(context.Background(), conf, discV5, conn)
70+
portalProtocol, err := discover.NewPortalProtocol(conf, portalwire.Beacon, privKey, conn, localNode, discV5, utpSocket, &storage.MockStorage{Db: make(map[string][]byte)}, contentQueue)
6971
if err != nil {
7072
return nil, err
7173
}

portalnetwork/history/history_network_test.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package history
22

33
import (
44
"bytes"
5+
"context"
56
"crypto/sha256"
67
_ "embed"
78
"encoding/json"
@@ -334,8 +335,8 @@ func genHistoryNetwork(addr string, bootNodes []*enode.Node) (*HistoryNetwork, e
334335
}
335336

336337
contentQueue := make(chan *discover.ContentElement, 50)
337-
338-
portalProtocol, err := discover.NewPortalProtocol(conf, portalwire.History, privKey, conn, localNode, discV5, &storage.MockStorage{Db: make(map[string][]byte)}, contentQueue)
338+
utpSocket := discover.NewPortalUtp(context.Background(), conf, discV5, conn)
339+
portalProtocol, err := discover.NewPortalProtocol(conf, portalwire.History, privKey, conn, localNode, discV5, utpSocket, &storage.MockStorage{Db: make(map[string][]byte)}, contentQueue)
339340
if err != nil {
340341
return nil, err
341342
}

0 commit comments

Comments
 (0)