From 0824f4bcd9a31add8e7cfa1662d2cb40900de073 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sun, 27 Mar 2016 20:44:30 +0200 Subject: Encapsulate in package --- goxyctl/main.go | 87 --------------------------------------------------------- 1 file changed, 87 deletions(-) delete mode 100644 goxyctl/main.go (limited to 'goxyctl') diff --git a/goxyctl/main.go b/goxyctl/main.go deleted file mode 100644 index 5fbc1e8..0000000 --- a/goxyctl/main.go +++ /dev/null @@ -1,87 +0,0 @@ -package main - -import ( - "flag" - "io/ioutil" - "log" - "net/rpc" -) - -var ( - rpcserver = flag.String("server", ":http-alt", "RPC Server port") - servername = flag.String("host", "", "ServerName") - upstream = flag.String("upstream", "", "Upstream URL") - keyfile = flag.String("key", "", "TLS Key file") - certfile = flag.String("cert", "", "TLS Cert file") - remove = flag.Bool("remove", false, "Remove route") -) - -// Entry contains routing settings -type Entry struct { - ServerName string - Upstream string - Cert []byte - Key []byte -} - -func (e Entry) String() string { - ret := e.ServerName + " → " + e.Upstream - if e.Cert != nil && e.Key != nil { - ret += " with TLS" - } - return ret -} - -func loadCert(certFile, keyFile string) ([]byte, []byte) { - if certFile == "" || keyFile == "" { - return nil, nil - } - cert, err := ioutil.ReadFile(certFile) - if err != nil { - log.Fatal(err) - } - key, err := ioutil.ReadFile(keyFile) - if err != nil { - log.Fatal(err) - } - return cert, key -} - -func send(server string, e Entry, del bool) error { - client, err := rpc.DialHTTP("tcp", server) - if err != nil { - return err - } - defer client.Close() - - switch { - case e.ServerName != "" && e.Upstream != "": - log.Println("Add", e) - return client.Call("GoXY.Add", e, nil) - case e.ServerName != "" && del: - log.Println("Del", e) - return client.Call("GoXY.Del", e, nil) - default: - var r []Entry - err = client.Call("GoXY.List", struct{}{}, &r) - if err != nil { - return err - } - for _, e := range r { - log.Println(e) - } - } - return nil -} - -func main() { - var e Entry - flag.Parse() - - e.ServerName, e.Upstream = *servername, *upstream - e.Cert, e.Key = loadCert(*certfile, *keyfile) - - if err := send(*rpcserver, e, *remove); err != nil { - log.Fatal(err) - } -} -- cgit v1.2.3