mirror of
https://github.com/fumiama/WireGold.git
synced 2026-06-15 22:50:24 +08:00
fix(loop): local loopback
This commit is contained in:
@@ -2,11 +2,9 @@ package link
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"errors"
|
|
||||||
"io"
|
"io"
|
||||||
"net"
|
"net"
|
||||||
"net/netip"
|
"net/netip"
|
||||||
"os"
|
|
||||||
"runtime"
|
"runtime"
|
||||||
"strconv"
|
"strconv"
|
||||||
"sync"
|
"sync"
|
||||||
@@ -50,19 +48,11 @@ func (m *Me) listenudp() (conn *net.UDPConn, err error) {
|
|||||||
}
|
}
|
||||||
logrus.Debugln("[listen] lock index", i)
|
logrus.Debugln("[listen] lock index", i)
|
||||||
lbf := listenbuff[i*65536 : (i+1)*65536]
|
lbf := listenbuff[i*65536 : (i+1)*65536]
|
||||||
err = conn.SetDeadline(time.Now().Add(time.Second))
|
|
||||||
if err != nil {
|
|
||||||
logrus.Warnln("[listen] set ddl err:", err)
|
|
||||||
}
|
|
||||||
READ:
|
|
||||||
n, addr, err := conn.ReadFromUDP(lbf)
|
n, addr, err := conn.ReadFromUDP(lbf)
|
||||||
if m.loop == nil {
|
if m.loop == nil {
|
||||||
logrus.Warnln("[listen] quit listening")
|
logrus.Warnln("[listen] quit listening")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if errors.Is(err, os.ErrDeadlineExceeded) {
|
|
||||||
goto READ
|
|
||||||
}
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logrus.Warnln("[listen] read from udp err, reconnect:", err)
|
logrus.Warnln("[listen] read from udp err, reconnect:", err)
|
||||||
conn, err = net.ListenUDP("udp", net.UDPAddrFromAddrPort(netip.MustParseAddrPort(m.udpep.String())))
|
conn, err = net.ListenUDP("udp", net.UDPAddrFromAddrPort(netip.MustParseAddrPort(m.udpep.String())))
|
||||||
|
|||||||
@@ -86,9 +86,13 @@ func NewMe(cfg *MyConfig) (m Me) {
|
|||||||
cache: ttl.NewCache[string, *Link](time.Minute),
|
cache: ttl.NewCache[string, *Link](time.Minute),
|
||||||
}
|
}
|
||||||
m.router.SetDefault(nil)
|
m.router.SetDefault(nil)
|
||||||
|
_, localp, err := net.SplitHostPort(m.EndPoint().String())
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
m.loop = m.AddPeer(&PeerConfig{
|
m.loop = m.AddPeer(&PeerConfig{
|
||||||
PeerIP: m.me.String(),
|
PeerIP: m.me.String(),
|
||||||
EndPoint: "127.0.0.1:56789",
|
EndPoint: "127.0.0.1:" + localp,
|
||||||
AllowedIPs: []string{cfg.MyIPwithMask},
|
AllowedIPs: []string{cfg.MyIPwithMask},
|
||||||
NoPipe: cfg.NIC != nil,
|
NoPipe: cfg.NIC != nil,
|
||||||
MTU: cfg.MTU,
|
MTU: cfg.MTU,
|
||||||
|
|||||||
Reference in New Issue
Block a user