优化代码

This commit is contained in:
tsosunchia
2024-05-13 20:39:22 +08:00
parent f6f90f3a5b
commit b053ee646b
6 changed files with 36 additions and 9 deletions

View File

@@ -286,7 +286,10 @@ func (t *ICMPTracer) send(ttl int) error {
},
}
ipv4.NewPacketConn(t.icmpListen).SetTTL(ttl)
err := ipv4.NewPacketConn(t.icmpListen).SetTTL(ttl)
if err != nil {
return err
}
wb, err := icmpHeader.Marshal(nil)
if err != nil {
@@ -328,7 +331,10 @@ func (t *ICMPTracer) send(ttl int) error {
t.fetchLock.Lock()
defer t.fetchLock.Unlock()
h.fetchIPData(t.Config)
err := h.fetchIPData(t.Config)
if err != nil {
return err
}
t.res.add(h)
case <-time.After(t.Timeout):

View File

@@ -282,7 +282,10 @@ func (t *ICMPTracerv6) send(ttl int) error {
p := ipv6.NewPacketConn(t.icmpListen)
icmpHeader.Body.(*icmp.Echo).Seq = ttl
p.SetHopLimit(ttl)
err := p.SetHopLimit(ttl)
if err != nil {
return err
}
wb, err := icmpHeader.Marshal(nil)
if err != nil {
@@ -324,7 +327,10 @@ func (t *ICMPTracerv6) send(ttl int) error {
t.fetchLock.Lock()
defer t.fetchLock.Unlock()
h.fetchIPData(t.Config)
err := h.fetchIPData(t.Config)
if err != nil {
return err
}
t.res.add(h)

View File

@@ -70,11 +70,17 @@ func ListenICMP(network string, laddr string) (net.PacketConn, error) {
if ifIndex != -1 {
if proto == syscall.IPPROTO_ICMP {
return c.Control(func(fd uintptr) {
syscall.SetsockoptInt(int(fd), syscall.IPPROTO_IP, syscall.IP_BOUND_IF, ifIndex)
err := syscall.SetsockoptInt(int(fd), syscall.IPPROTO_IP, syscall.IP_BOUND_IF, ifIndex)
if err != nil {
return
}
})
} else {
return c.Control(func(fd uintptr) {
syscall.SetsockoptInt(int(fd), syscall.IPPROTO_IPV6, syscall.IPV6_BOUND_IF, ifIndex)
err := syscall.SetsockoptInt(int(fd), syscall.IPPROTO_IPV6, syscall.IPV6_BOUND_IF, ifIndex)
if err != nil {
return
}
})
}
}

View File

@@ -293,7 +293,10 @@ func (t *TCPTracer) send(ttl int) error {
t.fetchLock.Lock()
defer t.fetchLock.Unlock()
h.fetchIPData(t.Config)
err := h.fetchIPData(t.Config)
if err != nil {
return err
}
t.res.add(h)

View File

@@ -233,7 +233,10 @@ func (t *TCPTracerv6) send(ttl int) error {
return err
}
ipv6.NewPacketConn(t.tcp).SetHopLimit(ttl)
err := ipv6.NewPacketConn(t.tcp).SetHopLimit(ttl)
if err != nil {
return err
}
if err != nil {
return err
}

View File

@@ -264,7 +264,10 @@ func (t *UDPTracer) send(ttl int) error {
t.fetchLock.Lock()
defer t.fetchLock.Unlock()
h.fetchIPData(t.Config)
err := h.fetchIPData(t.Config)
if err != nil {
return err
}
t.res.add(h)