func ListenAndServe(server *Agent) error { rpc.HandleHTTP() if err := rpc.Register(server); err != nil { return err } return http.ListenAndServe(server.Address, nil) }
func main() { rpcAddr := flag.String("rpcaddr", ":1115", "rpc listen address") httpAddr := flag.String("httpaddr", ":8080", "http frontend listen address") flag.Parse() // Will use DISCOVERD environment variable d, err := discoverd.NewClient() if err != nil { log.Fatal(err) } // Read etcd address from ETCD etcdAddr := strings.Split(os.Getenv("ETCD"), ",") if len(etcdAddr) == 1 && etcdAddr[0] == "" { etcdAddr = nil } var s Server s.HTTPFrontend = NewHTTPFrontend(*httpAddr, etcd.NewClient(etcdAddr), d) rpc.Register(&Router{s}) rpc.HandleHTTP() go http.ListenAndServe(*rpcAddr, nil) if err = d.Register("flynn-strowger-rpc", *rpcAddr); err != nil { log.Fatal(err) } s.ListenAndServe(nil) }
func serveHTTP(host *Host, attach *attachHandler) { rpc.Register(host) rpc.HandleHTTP() http.Handle("/attach", attach) http.ListenAndServe(":1113", nil) }