예제 #1
0
파일: simple.go 프로젝트: sgotti/pollon
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)
	}

	proxyConfig := &pollon.Config{
		ConfChecker:        &ConfChecker{},
		CheckInterval:      1 * time.Second,
		ExitOnCheckerError: false,
	}
	proxy, err := pollon.NewProxy(listener, proxyConfig)
	if err != nil {
		log.Fatalf("error: %v", err)
	}
	err = proxy.Start()
	if err != nil {
		log.Fatalf("error: %v", err)
	}

}
예제 #2
0
파일: proxy.go 프로젝트: sorintlab/stolon
func (c *ClusterChecker) startPollonProxy() error {
	if c.pp != nil {
		return nil
	}

	log.Info("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
}
예제 #3
0
파일: simple.go 프로젝트: flaviotax/pollon
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)
	}

}