func (c *ClusterChecker) startPollonProxy() error { if c.pp != nil { return nil } log.Infof("Starting proxying") addr, err := net.ResolveTCPAddr("tcp", net.JoinHostPort(cfg.listenAddress, cfg.port)) if err != nil { return fmt.Errorf("error resolving tcp addr %q: %v", addr.String(), err) } listener, err := net.ListenTCP("tcp", addr) if err != nil { return fmt.Errorf("error listening on tcp addr %q: %v", addr.String(), err) } pp, err := pollon.NewProxy(listener) if err != nil { return fmt.Errorf("error creating pollon proxy: %v", err) } c.pp = pp c.listener = listener go func() { c.endPollonProxyCh <- c.pp.Start() }() return nil }
func main() { addr, err := net.ResolveTCPAddr("tcp", "127.0.0.1:2222") if err != nil { log.Fatalf("error: %v", err) } listener, err := net.ListenTCP("tcp", addr) if err != nil { log.Fatalf("error: %v", err) } proxy, err := pollon.NewProxy(listener) if err != nil { log.Fatalf("error: %v", err) } go func() { for { Check(proxy.C) time.Sleep(2 * time.Second) } }() err = proxy.Start() if err != nil { log.Fatalf("error: %v", err) } }
func proxy(cmd *cobra.Command, args []string) { capnslog.SetGlobalLogLevel(capnslog.INFO) if cfg.debug { capnslog.SetGlobalLogLevel(capnslog.DEBUG) } if cfg.clusterName == "" { log.Fatalf("cluster name required") } u := uuid.NewV4() id := fmt.Sprintf("%x", u[:4]) log.Infof("id: %s", id) addr, err := net.ResolveTCPAddr("tcp", net.JoinHostPort(cfg.listenAddress, cfg.port)) if err != nil { log.Fatalf("error: %v", err) } listener, err := net.ListenTCP("tcp", addr) if err != nil { log.Fatalf("error: %v", err) } proxy, err := pollon.NewProxy(listener) if err != nil { log.Fatalf("error: %v", err) } clusterChecker, err := NewClusterChecker(id, cfg, proxy.C) if err != nil { log.Fatalf("cannot create cluster checker: %v", err) } go clusterChecker.Start() err = proxy.Start() if err != nil { log.Fatalf("error: %v", err) } }