Merge branch '2.4' into certificates
This commit is contained in:
commit
be14152e80
1
cmd/gost/.gitignore
vendored
Normal file
1
cmd/gost/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
gost
|
@ -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)
|
||||||
|
28
server.go
28
server.go
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user