Skip to content

Commit e9ea3ea

Browse files
committed
2025-08-21 14:18:40
1 parent 4051d8a commit e9ea3ea

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

daze.go

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,14 @@ var Conf = struct {
6464

6565
// Expv is a simple wrapper around the expvars package.
6666
var Expv = struct {
67-
RouterCacheHits *expvar.Int
6867
RouterCacheCall *expvar.Int
68+
RouterCacheHits *expvar.Int
6969
RouterCacheRate expvar.Func
70+
RouterIPNetCall *expvar.Int
71+
RouterIPNetTime *expvar.Float
7072
}{
71-
RouterCacheHits: expvar.NewInt("RouterCache.Hits"),
7273
RouterCacheCall: expvar.NewInt("RouterCache.Call"),
74+
RouterCacheHits: expvar.NewInt("RouterCache.Hits"),
7375
RouterCacheRate: func() expvar.Func {
7476
f := expvar.Func(func() any {
7577
hits := expvar.Get("RouterCache.Hits").(*expvar.Int).Value()
@@ -80,6 +82,8 @@ var Expv = struct {
8082
expvar.Publish("RouterCache.Rate", f)
8183
return f
8284
}(),
85+
RouterIPNetCall: expvar.NewInt("RouterIPNet.Call"),
86+
RouterIPNetTime: expvar.NewFloat("RouterIPNet.Time"),
8387
}
8488

8589
// ResolverDns returns a DNS resolver.
@@ -763,7 +767,15 @@ func (r *RouterIPNet) FromFile(name string) {
763767

764768
// Road implements daze.Router.
765769
func (r *RouterIPNet) Road(ctx *Context, host string) Road {
766-
l, err := net.DefaultResolver.LookupIPAddr(context.Background(), host)
770+
l, err := func() ([]net.IPAddr, error) {
771+
Expv.RouterIPNetCall.Add(1)
772+
t := time.Now()
773+
l, err := net.DefaultResolver.LookupIPAddr(context.Background(), host)
774+
s := time.Since(t).Seconds()
775+
// This is not strictly concurrency-safe, but it won't have much impact on the data.
776+
Expv.RouterIPNetTime.Add((s - Expv.RouterIPNetTime.Value()) / 64)
777+
return l, err
778+
}()
767779
if err != nil {
768780
log.Printf("conn: %08x error %s", ctx.Cid, err)
769781
return RoadPuzzle

0 commit comments

Comments
 (0)