aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--goxyctl/main.go6
-rw-r--r--main.go12
2 files changed, 10 insertions, 8 deletions
diff --git a/goxyctl/main.go b/goxyctl/main.go
index 64af637..f360f41 100644
--- a/goxyctl/main.go
+++ b/goxyctl/main.go
@@ -16,7 +16,7 @@ var (
remove = flag.Bool("remove", false, "remove entry")
)
-type RPCEntry struct {
+type Entry struct {
ServerName string
Upstream string
Cert []byte
@@ -26,7 +26,7 @@ type RPCEntry struct {
func main() {
flag.Parse()
- e := RPCEntry{
+ e := Entry{
ServerName: *servername,
Upstream: *upstream,
}
@@ -53,7 +53,7 @@ func main() {
case e.ServerName != "" && *remove:
err = client.Call("GoXY.Del", e, nil)
default:
- var r []RPCEntry
+ var r []Entry
err = client.Call("GoXY.List", struct{}{}, &r)
for _, v := range r {
log.Println(v.ServerName, "->", v.Upstream)
diff --git a/main.go b/main.go
index de273cc..784d1d7 100644
--- a/main.go
+++ b/main.go
@@ -41,12 +41,14 @@ func (r Route) SNI(h *tls.ClientHelloInfo) (*tls.Certificate, error) {
func (r Route) Restore() error {
server.Handler = http.NewServeMux()
for k, v := range route {
- cert, err := tls.X509KeyPair(v.Cert, v.Key)
- if err != nil {
- return err
+ if v.Cert != nil && v.Key != nil {
+ cert, err := tls.X509KeyPair(v.Cert, v.Key)
+ if err != nil {
+ return err
+ }
+ v.cert = &cert
+ r[k] = v
}
- v.cert = &cert
- r[k] = v
v.NewHandle()
}
return nil