mirror of
https://github.com/XTLS/Xray-core.git
synced 2024-11-27 19:11:27 +00:00
UDS: prevent crash when proxy udp (#3967)
* net: Prevent nil pointer err in NetAddr() * Fix dsworker saddr problem
This commit is contained in:
parent
ccc4b7b2cf
commit
057e6284b2
|
@ -464,7 +464,8 @@ func (w *dsWorker) callback(conn stat.Connection) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ctx = session.ContextWithInbound(ctx, &session.Inbound{
|
ctx = session.ContextWithInbound(ctx, &session.Inbound{
|
||||||
Source: net.DestinationFromAddr(conn.RemoteAddr()),
|
// Unix have no source addr, so we use gateway as source for log.
|
||||||
|
Source: net.UnixDestination(w.address),
|
||||||
Gateway: net.UnixDestination(w.address),
|
Gateway: net.UnixDestination(w.address),
|
||||||
Tag: w.tag,
|
Tag: w.tag,
|
||||||
Conn: conn,
|
Conn: conn,
|
||||||
|
|
|
@ -89,11 +89,13 @@ func UnixDestination(address Address) Destination {
|
||||||
// NetAddr returns the network address in this Destination in string form.
|
// NetAddr returns the network address in this Destination in string form.
|
||||||
func (d Destination) NetAddr() string {
|
func (d Destination) NetAddr() string {
|
||||||
addr := ""
|
addr := ""
|
||||||
|
if d.Address != nil {
|
||||||
if d.Network == Network_TCP || d.Network == Network_UDP {
|
if d.Network == Network_TCP || d.Network == Network_UDP {
|
||||||
addr = d.Address.String() + ":" + d.Port.String()
|
addr = d.Address.String() + ":" + d.Port.String()
|
||||||
} else if d.Network == Network_UNIX {
|
} else if d.Network == Network_UNIX {
|
||||||
addr = d.Address.String()
|
addr = d.Address.String()
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return addr
|
return addr
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue