Merge branch '2.4' into certificates

This commit is contained in:
ginuerzh 2017-03-24 11:33:58 +02:00 committed by GitHub
commit be14152e80
3 changed files with 20 additions and 20 deletions

1
cmd/gost/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
gost

View File

@ -68,17 +68,6 @@ func main() {
wg.Add(1) wg.Add(1)
go func(node gost.ProxyNode) { go func(node gost.ProxyNode) {
defer wg.Done() defer wg.Done()
certFile, keyFile := node.Get("cert"), node.Get("key")
if certFile == "" {
certFile = gost.DefaultCertFile
}
if keyFile == "" {
keyFile = gost.DefaultKeyFile
}
cert, err := gost.LoadCertificate(certFile, keyFile)
if err != nil {
glog.Fatal(err)
}
server := gost.NewProxyServer(node, chain) server := gost.NewProxyServer(node, chain)
glog.Fatal(server.Serve()) glog.Fatal(server.Serve())
}(serverNode) }(serverNode)

View File

@ -3,17 +3,18 @@ package gost
import ( import (
"bufio" "bufio"
"crypto/tls" "crypto/tls"
"github.com/ginuerzh/gosocks4"
"github.com/ginuerzh/gosocks5"
"github.com/golang/glog"
ss "github.com/shadowsocks/shadowsocks-go/shadowsocks"
"golang.org/x/crypto/ssh"
"io" "io"
"io/ioutil" "io/ioutil"
"net" "net"
"net/http" "net/http"
"strconv" "strconv"
"strings" "strings"
"github.com/ginuerzh/gosocks4"
"github.com/ginuerzh/gosocks5"
"github.com/golang/glog"
ss "github.com/shadowsocks/shadowsocks-go/shadowsocks"
"golang.org/x/crypto/ssh"
) )
type ProxyServer struct { type ProxyServer struct {
@ -25,13 +26,22 @@ type ProxyServer struct {
ota bool ota bool
} }
func NewProxyServer(node ProxyNode, chain *ProxyChain, config *tls.Config) *ProxyServer { func NewProxyServer(node ProxyNode, chain *ProxyChain) *ProxyServer {
certFile, keyFile := node.certFile(), node.keyFile()
cert, err := LoadCertificate(certFile, keyFile)
if err != nil {
glog.Fatal(err)
}
config := &tls.Config{
Certificates: []tls.Certificate{cert},
}
if chain == nil { if chain == nil {
chain = NewProxyChain() chain = NewProxyChain()
} }
if config == nil {
config = &tls.Config{}
}
var cipher *ss.Cipher var cipher *ss.Cipher
var ota bool var ota bool