package main import ( "crypto/tls" "log" "os" "time" "git.xeserv.us/xena/route/lib/tun2" "github.com/Xe/ln" ) var ( token = mustEnv("ROUTE_TOKEN", "") domain = mustEnv("ROUTE_DOMAIN", "") backend = mustEnv("ROUTE_BACKEND", "") method = mustEnv("ROUTE_METHOD", "") serverAddr = mustEnv("ROUTE_LOAD_BALANCER", "") connMethod = mustEnv("ROUTE_METHOD", "tcp") ) func mustEnv(key string, def string) string { val := os.Getenv(key) if val == "" { log.Printf("autohttpagent: %s not found, things may not work", key) return def } return val } func doHttpAgent() { go func() { cfg := &tun2.ClientConfig{ TLSConfig: &tls.Config{}, ConnType: connMethod, ServerAddr: serverAddr, Token: token, Domain: domain, BackendURL: backend, } client, _ := tun2.NewClient(cfg) err := client.Connect() if err != nil { ln.Error(err, ln.F{ "action": "client_running", }) time.Sleep(5 * time.Second) doHttpAgent() } }() } func init() { doHttpAgent() }