aboutsummaryrefslogtreecommitdiff
path: root/route.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-04-03 20:08:36 +0200
committerDimitri Sokolyuk <demon@dim13.org>2016-04-03 20:08:36 +0200
commitd548648e11fd5e1a3a43877b53e63325be1bc159 (patch)
tree0f2b8806a20130369c81a7b8e5d1600a803555dc /route.go
parentfa3272edca41882027f6b22f70bc61d9a182bd0d (diff)
NewRoute
Diffstat (limited to 'route.go')
-rw-r--r--route.go28
1 files changed, 6 insertions, 22 deletions
diff --git a/route.go b/route.go
index cc5bc05..a13c111 100644
--- a/route.go
+++ b/route.go
@@ -2,12 +2,10 @@ package goxy
import (
"crypto/tls"
- "encoding/json"
"errors"
"fmt"
"net/http"
"net/url"
- "os"
)
// Routes defines a set of routes including correspondent TLS certificates
@@ -38,26 +36,6 @@ func (r Routes) GetCertificate(h *tls.ClientHelloInfo) (*tls.Certificate, error)
return nil, errors.New("no cert for " + host)
}
-// Save routes to persistent file
-func (r Routes) Save(fname string) error {
- fd, err := os.Create(fname)
- if err != nil {
- return err
- }
- defer fd.Close()
- return json.NewEncoder(fd).Encode(r)
-}
-
-// Load routes from persistent file
-func (r *Routes) Load(fname string) error {
- fd, err := os.Open(fname)
- if err != nil {
- return err
- }
- defer fd.Close()
- return json.NewDecoder(fd).Decode(r)
-}
-
func (r Routes) ServeHTTP(w http.ResponseWriter, _ *http.Request) {
for _, v := range r {
fmt.Fprintln(w, v)
@@ -74,6 +52,12 @@ func NewRoute(e Entry) (Route, error) {
if err != nil {
return fail(err)
}
+ if host.Host == "" || up.Host == "" {
+ return fail(ErrNoHost)
+ }
+ if host.Path == "" {
+ host.Path = "/"
+ }
r := Route{
ServerName: host,
Upstream: up,