Skip to content

Commit c0a98f7

Browse files
authored
Transport: Remove DomainSocket (#3757)
#3755 (comment)
1 parent 9a953c0 commit c0a98f7

File tree

15 files changed

+37
-724
lines changed

15 files changed

+37
-724
lines changed

infra/conf/transport.go

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ type TransportConfig struct {
1212
KCPConfig *KCPConfig `json:"kcpSettings"`
1313
WSConfig *WebSocketConfig `json:"wsSettings"`
1414
HTTPConfig *HTTPConfig `json:"httpSettings"`
15-
DSConfig *DomainSocketConfig `json:"dsSettings"`
1615
GRPCConfig *GRPCConfig `json:"grpcSettings"`
1716
GUNConfig *GRPCConfig `json:"gunSettings"`
1817
HTTPUPGRADEConfig *HttpUpgradeConfig `json:"httpupgradeSettings"`
@@ -67,17 +66,6 @@ func (c *TransportConfig) Build() (*global.Config, error) {
6766
})
6867
}
6968

70-
if c.DSConfig != nil {
71-
ds, err := c.DSConfig.Build()
72-
if err != nil {
73-
return nil, errors.New("Failed to build DomainSocket config.").Base(err)
74-
}
75-
config.TransportSettings = append(config.TransportSettings, &internet.TransportConfig{
76-
ProtocolName: "domainsocket",
77-
Settings: serial.ToTypedMessage(ds),
78-
})
79-
}
80-
8169
if c.GRPCConfig == nil {
8270
c.GRPCConfig = c.GUNConfig
8371
}

infra/conf/transport_internet.go

Lines changed: 2 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import (
1616
"github.com/xtls/xray-core/common/platform/filesystem"
1717
"github.com/xtls/xray-core/common/serial"
1818
"github.com/xtls/xray-core/transport/internet"
19-
"github.com/xtls/xray-core/transport/internet/domainsocket"
2019
httpheader "github.com/xtls/xray-core/transport/internet/headers/http"
2120
"github.com/xtls/xray-core/transport/internet/http"
2221
"github.com/xtls/xray-core/transport/internet/httpupgrade"
@@ -313,21 +312,6 @@ func (c *HTTPConfig) Build() (proto.Message, error) {
313312
return config, nil
314313
}
315314

316-
type DomainSocketConfig struct {
317-
Path string `json:"path"`
318-
Abstract bool `json:"abstract"`
319-
Padding bool `json:"padding"`
320-
}
321-
322-
// Build implements Buildable.
323-
func (c *DomainSocketConfig) Build() (proto.Message, error) {
324-
return &domainsocket.Config{
325-
Path: c.Path,
326-
Abstract: c.Abstract,
327-
Padding: c.Padding,
328-
}, nil
329-
}
330-
331315
func readFileOrString(f string, s []string) ([]byte, error) {
332316
if len(f) > 0 {
333317
return filesystem.ReadFile(f)
@@ -646,8 +630,6 @@ func (p TransportProtocol) Build() (string, error) {
646630
return "websocket", nil
647631
case "h2", "http":
648632
return "http", nil
649-
case "ds", "domainsocket":
650-
return "domainsocket", nil
651633
case "grpc", "gun":
652634
return "grpc", nil
653635
case "httpupgrade":
@@ -783,7 +765,6 @@ type StreamConfig struct {
783765
KCPSettings *KCPConfig `json:"kcpSettings"`
784766
WSSettings *WebSocketConfig `json:"wsSettings"`
785767
HTTPSettings *HTTPConfig `json:"httpSettings"`
786-
DSSettings *DomainSocketConfig `json:"dsSettings"`
787768
SocketSettings *SocketConfig `json:"sockopt"`
788769
GRPCConfig *GRPCConfig `json:"grpcSettings"`
789770
GUNConfig *GRPCConfig `json:"gunSettings"`
@@ -818,8 +799,8 @@ func (c *StreamConfig) Build() (*internet.StreamConfig, error) {
818799
config.SecuritySettings = append(config.SecuritySettings, tm)
819800
config.SecurityType = tm.Type
820801
case "reality":
821-
if config.ProtocolName != "tcp" && config.ProtocolName != "http" && config.ProtocolName != "grpc" && config.ProtocolName != "domainsocket" {
822-
return nil, errors.New("REALITY only supports TCP, H2, gRPC and DomainSocket for now.")
802+
if config.ProtocolName != "tcp" && config.ProtocolName != "http" && config.ProtocolName != "grpc" {
803+
return nil, errors.New("REALITY only supports TCP, H2 and gRPC for now.")
823804
}
824805
if c.REALITYSettings == nil {
825806
return nil, errors.New(`REALITY: Empty "realitySettings".`)
@@ -876,16 +857,6 @@ func (c *StreamConfig) Build() (*internet.StreamConfig, error) {
876857
Settings: serial.ToTypedMessage(ts),
877858
})
878859
}
879-
if c.DSSettings != nil {
880-
ds, err := c.DSSettings.Build()
881-
if err != nil {
882-
return nil, errors.New("Failed to build DomainSocket config.").Base(err)
883-
}
884-
config.TransportSettings = append(config.TransportSettings, &internet.TransportConfig{
885-
ProtocolName: "domainsocket",
886-
Settings: serial.ToTypedMessage(ds),
887-
})
888-
}
889860
if c.GRPCConfig == nil {
890861
c.GRPCConfig = c.GUNConfig
891862
}

infra/conf/xray.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -553,9 +553,6 @@ func applyTransportConfig(s *StreamConfig, t *TransportConfig) {
553553
if s.HTTPSettings == nil {
554554
s.HTTPSettings = t.HTTPConfig
555555
}
556-
if s.DSSettings == nil {
557-
s.DSSettings = t.DSConfig
558-
}
559556
if s.HTTPUPGRADESettings == nil {
560557
s.HTTPUPGRADESettings = t.HTTPUPGRADEConfig
561558
}

main/distro/all/all.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ import (
5050
_ "github.com/xtls/xray-core/proxy/wireguard"
5151

5252
// Transports
53-
_ "github.com/xtls/xray-core/transport/internet/domainsocket"
5453
_ "github.com/xtls/xray-core/transport/internet/grpc"
5554
_ "github.com/xtls/xray-core/transport/internet/http"
5655
_ "github.com/xtls/xray-core/transport/internet/httpupgrade"
Lines changed: 0 additions & 117 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package scenarios
22

33
import (
4-
"os"
5-
"runtime"
64
"testing"
75
"time"
86

@@ -20,7 +18,6 @@ import (
2018
"github.com/xtls/xray-core/proxy/vmess/outbound"
2119
"github.com/xtls/xray-core/testing/servers/tcp"
2220
"github.com/xtls/xray-core/transport/internet"
23-
"github.com/xtls/xray-core/transport/internet/domainsocket"
2421
"github.com/xtls/xray-core/transport/internet/headers/http"
2522
tcptransport "github.com/xtls/xray-core/transport/internet/tcp"
2623
)
@@ -128,117 +125,3 @@ func TestHTTPConnectionHeader(t *testing.T) {
128125
t.Error(err)
129126
}
130127
}
131-
132-
func TestDomainSocket(t *testing.T) {
133-
if runtime.GOOS == "windows" || runtime.GOOS == "android" {
134-
t.Skip("Not supported on windows or android")
135-
return
136-
}
137-
tcpServer := tcp.Server{
138-
MsgProcessor: xor,
139-
}
140-
dest, err := tcpServer.Start()
141-
common.Must(err)
142-
defer tcpServer.Close()
143-
144-
const dsPath = "/tmp/ds_scenario"
145-
os.Remove(dsPath)
146-
147-
userID := protocol.NewID(uuid.New())
148-
serverPort := tcp.PickPort()
149-
serverConfig := &core.Config{
150-
Inbound: []*core.InboundHandlerConfig{
151-
{
152-
ReceiverSettings: serial.ToTypedMessage(&proxyman.ReceiverConfig{
153-
PortList: &net.PortList{Range: []*net.PortRange{net.SinglePortRange(serverPort)}},
154-
Listen: net.NewIPOrDomain(net.LocalHostIP),
155-
StreamSettings: &internet.StreamConfig{
156-
Protocol: internet.TransportProtocol_DomainSocket,
157-
TransportSettings: []*internet.TransportConfig{
158-
{
159-
Protocol: internet.TransportProtocol_DomainSocket,
160-
Settings: serial.ToTypedMessage(&domainsocket.Config{
161-
Path: dsPath,
162-
}),
163-
},
164-
},
165-
},
166-
}),
167-
ProxySettings: serial.ToTypedMessage(&inbound.Config{
168-
User: []*protocol.User{
169-
{
170-
Account: serial.ToTypedMessage(&vmess.Account{
171-
Id: userID.String(),
172-
}),
173-
},
174-
},
175-
}),
176-
},
177-
},
178-
Outbound: []*core.OutboundHandlerConfig{
179-
{
180-
ProxySettings: serial.ToTypedMessage(&freedom.Config{}),
181-
},
182-
},
183-
}
184-
185-
clientPort := tcp.PickPort()
186-
clientConfig := &core.Config{
187-
Inbound: []*core.InboundHandlerConfig{
188-
{
189-
ReceiverSettings: serial.ToTypedMessage(&proxyman.ReceiverConfig{
190-
PortList: &net.PortList{Range: []*net.PortRange{net.SinglePortRange(clientPort)}},
191-
Listen: net.NewIPOrDomain(net.LocalHostIP),
192-
}),
193-
ProxySettings: serial.ToTypedMessage(&dokodemo.Config{
194-
Address: net.NewIPOrDomain(dest.Address),
195-
Port: uint32(dest.Port),
196-
NetworkList: &net.NetworkList{
197-
Network: []net.Network{net.Network_TCP},
198-
},
199-
}),
200-
},
201-
},
202-
Outbound: []*core.OutboundHandlerConfig{
203-
{
204-
ProxySettings: serial.ToTypedMessage(&outbound.Config{
205-
Receiver: []*protocol.ServerEndpoint{
206-
{
207-
Address: net.NewIPOrDomain(net.LocalHostIP),
208-
Port: uint32(serverPort),
209-
User: []*protocol.User{
210-
{
211-
Account: serial.ToTypedMessage(&vmess.Account{
212-
Id: userID.String(),
213-
}),
214-
},
215-
},
216-
},
217-
},
218-
}),
219-
SenderSettings: serial.ToTypedMessage(&proxyman.SenderConfig{
220-
StreamSettings: &internet.StreamConfig{
221-
Protocol: internet.TransportProtocol_DomainSocket,
222-
TransportSettings: []*internet.TransportConfig{
223-
{
224-
Protocol: internet.TransportProtocol_DomainSocket,
225-
Settings: serial.ToTypedMessage(&domainsocket.Config{
226-
Path: dsPath,
227-
}),
228-
},
229-
},
230-
},
231-
}),
232-
},
233-
},
234-
}
235-
236-
servers, err := InitializeServerConfigs(serverConfig, clientConfig)
237-
common.Must(err)
238-
defer CloseAllServers(servers)
239-
240-
if err := testTCPConn(clientPort, 1024, time.Second*2)(); err != nil {
241-
t.Error(err)
242-
}
243-
}
244-

transport/internet/config.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,6 @@ func transportProtocolToString(protocol TransportProtocol) string {
4242
return "mkcp"
4343
case TransportProtocol_WebSocket:
4444
return "websocket"
45-
case TransportProtocol_DomainSocket:
46-
return "domainsocket"
4745
case TransportProtocol_HTTPUpgrade:
4846
return "httpupgrade"
4947
default:

transport/internet/config.pb.go

Lines changed: 35 additions & 39 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

transport/internet/config.proto

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ enum TransportProtocol {
1414
MKCP = 2;
1515
WebSocket = 3;
1616
HTTP = 4;
17-
DomainSocket = 5;
1817
HTTPUpgrade = 6;
1918
SplitHTTP = 7;
2019
}

0 commit comments

Comments
 (0)