Skip to content

Commit 387cf3d

Browse files
committed
les: un-indented f.synced check
1 parent 4593001 commit 387cf3d

File tree

1 file changed

+39
-35
lines changed

1 file changed

+39
-35
lines changed

les/clientpool.go

Lines changed: 39 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -399,43 +399,47 @@ func (f *clientPool) serveCapQuery(id enode.ID, freeID string, data []byte) []by
399399
return nil
400400
}
401401
result := make(vflux.CapacityQueryReply, len(req.AddTokens))
402-
if f.synced() {
403-
node := f.ns.GetNode(id)
404-
if node == nil {
405-
node = enode.SignNull(&enr.Record{}, id)
406-
}
407-
c, _ := f.ns.GetField(node, clientInfoField).(*clientInfo)
408-
if c == nil {
409-
c = &clientInfo{node: node}
410-
f.ns.SetField(node, clientInfoField, c)
411-
f.ns.SetField(node, connAddressField, freeID)
412-
defer func() {
413-
f.ns.SetField(node, connAddressField, nil)
414-
f.ns.SetField(node, clientInfoField, nil)
415-
}()
416-
if c.balance, _ = f.ns.GetField(node, f.BalanceField).(*vfs.NodeBalance); c.balance == nil {
417-
log.Error("BalanceField is missing", "node", node.ID())
418-
return nil
419-
}
402+
if !f.synced() {
403+
capacityQueryZeroMeter.Mark(1)
404+
reply, _ := rlp.EncodeToBytes(&result)
405+
return reply
406+
}
407+
408+
node := f.ns.GetNode(id)
409+
if node == nil {
410+
node = enode.SignNull(&enr.Record{}, id)
411+
}
412+
c, _ := f.ns.GetField(node, clientInfoField).(*clientInfo)
413+
if c == nil {
414+
c = &clientInfo{node: node}
415+
f.ns.SetField(node, clientInfoField, c)
416+
f.ns.SetField(node, connAddressField, freeID)
417+
defer func() {
418+
f.ns.SetField(node, connAddressField, nil)
419+
f.ns.SetField(node, clientInfoField, nil)
420+
}()
421+
if c.balance, _ = f.ns.GetField(node, f.BalanceField).(*vfs.NodeBalance); c.balance == nil {
422+
log.Error("BalanceField is missing", "node", node.ID())
423+
return nil
420424
}
421-
// use vfs.CapacityCurve to answer request for multiple newly bought token amounts
422-
curve := f.pp.GetCapacityCurve().Exclude(id)
423-
bias := time.Second * time.Duration(req.Bias)
424-
if f.connectedBias > bias {
425-
bias = f.connectedBias
425+
}
426+
// use vfs.CapacityCurve to answer request for multiple newly bought token amounts
427+
curve := f.pp.GetCapacityCurve().Exclude(id)
428+
bias := time.Second * time.Duration(req.Bias)
429+
if f.connectedBias > bias {
430+
bias = f.connectedBias
431+
}
432+
pb, _ := c.balance.GetBalance()
433+
for i, addTokens := range req.AddTokens {
434+
add := addTokens.Int64()
435+
result[i] = curve.MaxCapacity(func(capacity uint64) int64 {
436+
return c.balance.EstimatePriority(capacity, add, 0, bias, false) / int64(capacity)
437+
})
438+
if add <= 0 && uint64(-add) >= pb && result[i] > f.minCap {
439+
result[i] = f.minCap
426440
}
427-
pb, _ := c.balance.GetBalance()
428-
for i, addTokens := range req.AddTokens {
429-
add := addTokens.Int64()
430-
result[i] = curve.MaxCapacity(func(capacity uint64) int64 {
431-
return c.balance.EstimatePriority(capacity, add, 0, bias, false) / int64(capacity)
432-
})
433-
if add <= 0 && uint64(-add) >= pb && result[i] > f.minCap {
434-
result[i] = f.minCap
435-
}
436-
if result[i] < f.minCap {
437-
result[i] = 0
438-
}
441+
if result[i] < f.minCap {
442+
result[i] = 0
439443
}
440444
}
441445
// add first result to metrics (don't care about priority client multi-queries yet)

0 commit comments

Comments
 (0)