1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2024-12-04 01:06:30 -05:00

allow tls connection in http proxy

This commit is contained in:
v2ray 2016-05-07 10:36:36 +02:00
parent b65017d28d
commit f2c656843e
2 changed files with 25 additions and 1 deletions

View File

@ -16,6 +16,25 @@ type TlsConfig struct {
Certs []*CertificateConfig
}
func (this *TlsConfig) GetConfig() *tls.Config {
if !this.Enabled {
return nil
}
config := &tls.Config{
InsecureSkipVerify: false,
}
config.Certificates = make([]tls.Certificate, len(this.Certs))
for index, cert := range this.Certs {
config.Certificates[index] = cert.Certificate
}
config.BuildNameToCertificate()
return config
}
type Config struct {
OwnHosts []v2net.Address
TlsConfig *TlsConfig

View File

@ -2,6 +2,7 @@ package http
import (
"bufio"
"crypto/tls"
"io"
"net"
"net/http"
@ -60,7 +61,11 @@ func (this *HttpProxyServer) Listen(port v2net.Port) error {
}
this.listeningPort = port
tcpListener, err := hub.ListenTCP(port, this.handleConnection, nil)
var tlsConfig *tls.Config = nil
if this.config.TlsConfig != nil {
tlsConfig = this.config.TlsConfig.GetConfig()
}
tcpListener, err := hub.ListenTCP(port, this.handleConnection, tlsConfig)
if err != nil {
log.Error("Http: Failed listen on port ", port, ": ", err)
return err