From 8094a1d9a9e6279dbd59ce3492f01acff1b3d8b6 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Wed, 23 Mar 2016 20:46:32 +0100 Subject: Fix empty cert --- goxyctl/main.go | 6 +++--- main.go | 12 +++++++----- 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 -- cgit v1.2.3