Improve: add session cache for trojan

This commit is contained in:
Dreamacro 2020-03-19 22:39:09 +08:00
parent b562f28c1b
commit b068466108
2 changed files with 11 additions and 8 deletions

View file

@ -76,10 +76,11 @@ func NewTrojan(option TrojanOption) (*Trojan, error) {
server := net.JoinHostPort(option.Server, strconv.Itoa(option.Port)) server := net.JoinHostPort(option.Server, strconv.Itoa(option.Port))
tOption := &trojan.Option{ tOption := &trojan.Option{
Password: option.Password, Password: option.Password,
ALPN: option.ALPN, ALPN: option.ALPN,
ServerName: option.Server, ServerName: option.Server,
SkipCertVerify: option.SkipCertVerify, SkipCertVerify: option.SkipCertVerify,
ClientSessionCache: getClientSessionCache(),
} }
if option.SNI != "" { if option.SNI != "" {

View file

@ -28,10 +28,11 @@ var (
) )
type Option struct { type Option struct {
Password string Password string
ALPN []string ALPN []string
ServerName string ServerName string
SkipCertVerify bool SkipCertVerify bool
ClientSessionCache tls.ClientSessionCache
} }
type Trojan struct { type Trojan struct {
@ -50,6 +51,7 @@ func (t *Trojan) StreamConn(conn net.Conn) (net.Conn, error) {
MinVersion: tls.VersionTLS12, MinVersion: tls.VersionTLS12,
InsecureSkipVerify: t.option.SkipCertVerify, InsecureSkipVerify: t.option.SkipCertVerify,
ServerName: t.option.ServerName, ServerName: t.option.ServerName,
ClientSessionCache: t.option.ClientSessionCache,
} }
tlsConn := tls.Client(conn, tlsConfig) tlsConn := tls.Client(conn, tlsConfig)