@@ -10,12 +10,13 @@ import (
10
10
"time"
11
11
12
12
"github.com/metacubex/mihomo/listener/inner"
13
+ "github.com/metacubex/mihomo/log"
13
14
"github.com/metacubex/mihomo/ntp"
14
15
15
- "github.com/metacubex/reality "
16
+ utls "github.com/metacubex/utls "
16
17
)
17
18
18
- type Conn = reality .Conn
19
+ type Conn = utls .Conn
19
20
20
21
type Config struct {
21
22
Dest string
@@ -27,12 +28,13 @@ type Config struct {
27
28
}
28
29
29
30
func (c Config ) Build () (* Builder , error ) {
30
- realityConfig := & reality. Config {}
31
+ realityConfig := & utls. RealityConfig {}
31
32
realityConfig .SessionTicketsDisabled = true
32
33
realityConfig .Type = "tcp"
33
34
realityConfig .Dest = c .Dest
34
35
realityConfig .Time = ntp .Now
35
36
realityConfig .ServerNames = make (map [string ]bool )
37
+ realityConfig .Log = log .Debugln
36
38
for _ , it := range c .ServerNames {
37
39
realityConfig .ServerNames [it ] = true
38
40
}
@@ -72,19 +74,19 @@ func (c Config) Build() (*Builder, error) {
72
74
}
73
75
74
76
type Builder struct {
75
- realityConfig * reality. Config
77
+ realityConfig * utls. RealityConfig
76
78
}
77
79
78
80
func (b Builder ) NewListener (l net.Listener ) net.Listener {
79
- l = reality . NewListener (l , b .realityConfig )
81
+ l = utls . NewRealityListener (l , b .realityConfig )
80
82
// Due to low implementation quality, the reality server intercepted half close and caused memory leaks.
81
83
// We fixed it by calling Close() directly.
82
84
l = realityListenerWrapper {l }
83
85
return l
84
86
}
85
87
86
88
type realityConnWrapper struct {
87
- * reality .Conn
89
+ * utls .Conn
88
90
}
89
91
90
92
func (c realityConnWrapper ) Upstream () any {
@@ -104,5 +106,5 @@ func (l realityListenerWrapper) Accept() (net.Conn, error) {
104
106
if err != nil {
105
107
return nil , err
106
108
}
107
- return realityConnWrapper {c .(* reality .Conn )}, nil
109
+ return realityConnWrapper {c .(* utls .Conn )}, nil
108
110
}
0 commit comments