aboutsummaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-03-23 23:41:59 +0100
committerDimitri Sokolyuk <demon@dim13.org>2016-03-23 23:41:59 +0100
commitf2483c50f52762db42eec3c785b0da1353b0b0c8 (patch)
treeac35cdf3a8053c764af7e4f87e4a042db7bb1477 /main.go
parent2e34992a77eaa4e191b9257465535501fa227fac (diff)
Split
Diffstat (limited to 'main.go')
-rw-r--r--main.go49
1 files changed, 0 insertions, 49 deletions
diff --git a/main.go b/main.go
index e91f016..4a29e62 100644
--- a/main.go
+++ b/main.go
@@ -2,12 +2,9 @@ package main
import (
"crypto/tls"
- "errors"
"flag"
"log"
"net/http"
- "net/http/httputil"
- "net/url"
_ "net/http/pprof"
)
@@ -21,52 +18,6 @@ var (
}
)
-type Route map[string]Entry
-
-type Entry struct {
- ServerName string
- Upstream string
- Cert []byte
- Key []byte
- cert *tls.Certificate
-}
-
-func (r Route) SNI(h *tls.ClientHelloInfo) (*tls.Certificate, error) {
- if e, ok := r[h.ServerName]; ok && e.cert != nil {
- return e.cert, nil
- }
- return nil, errors.New("no cert for " + h.ServerName)
-}
-
-func (r Route) Restore() error {
- mux := http.NewServeMux()
- for k, v := range route {
- 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
- }
- up, err := url.Parse(v.Upstream)
- if err != nil {
- return err
- }
- mux.Handle(v.ServerName+"/", httputil.NewSingleHostReverseProxy(up))
- }
- server.Handler = mux
- return nil
-}
-
-func (e Entry) String() string {
- if e.cert != nil {
- return e.ServerName + " -> " + e.Upstream + " with TLS"
- } else {
- return e.ServerName + " -> " + e.Upstream
- }
-}
-
func main() {
flag.Parse()