aboutsummaryrefslogtreecommitdiff
path: root/goxyctl/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'goxyctl/main.go')
-rw-r--r--goxyctl/main.go87
1 files changed, 0 insertions, 87 deletions
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)
- }
-}