Move handling of key and cert params to server.go
This commit is contained in:
parent
42a9d102dd
commit
60712a67b1
1
cmd/gost/.gitignore
vendored
Normal file
1
cmd/gost/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
gost
|
@ -1,17 +1,17 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"crypto/tls"
|
||||
"encoding/json"
|
||||
"flag"
|
||||
"fmt"
|
||||
"github.com/ginuerzh/gost"
|
||||
"github.com/golang/glog"
|
||||
"golang.org/x/net/http2"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"runtime"
|
||||
"sync"
|
||||
|
||||
"github.com/ginuerzh/gost"
|
||||
"github.com/golang/glog"
|
||||
"golang.org/x/net/http2"
|
||||
)
|
||||
|
||||
var (
|
||||
@ -68,18 +68,7 @@ func main() {
|
||||
wg.Add(1)
|
||||
go func(node gost.ProxyNode) {
|
||||
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, &tls.Config{Certificates: []tls.Certificate{cert}})
|
||||
server := gost.NewProxyServer(node, chain)
|
||||
glog.Fatal(server.Serve())
|
||||
}(serverNode)
|
||||
}
|
||||
|
3
gost.go
3
gost.go
@ -4,11 +4,12 @@ import (
|
||||
"crypto/tls"
|
||||
"encoding/base64"
|
||||
"errors"
|
||||
"github.com/golang/glog"
|
||||
"io"
|
||||
"net"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/golang/glog"
|
||||
)
|
||||
|
||||
const (
|
||||
|
28
server.go
28
server.go
@ -3,17 +3,18 @@ package gost
|
||||
import (
|
||||
"bufio"
|
||||
"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/ioutil"
|
||||
"net"
|
||||
"net/http"
|
||||
"strconv"
|
||||
"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 {
|
||||
@ -25,13 +26,22 @@ type ProxyServer struct {
|
||||
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 {
|
||||
chain = NewProxyChain()
|
||||
}
|
||||
if config == nil {
|
||||
config = &tls.Config{}
|
||||
}
|
||||
|
||||
var cipher *ss.Cipher
|
||||
var ota bool
|
||||
|
Loading…
Reference in New Issue
Block a user