예제 #1
0
func main() {
	// parse argument and check
	options := argsCheck()

	app := tunnel.NewApp(options)
	if options.TunnelServer {
		var tunnelServer *tunnel.TunnelServer
		if options.Front {
			tunnelServer = tunnel.NewTunnelServer(tunnel.NewFrontDoor)
		} else {
			tunnelServer = tunnel.NewTunnelServer(tunnel.NewBackDoor)
		}
		app.Add(tunnelServer)
	} else {
		var tunnelClient *tunnel.TunnelClient
		if options.Front {
			tunnelClient = tunnel.NewTunnelClient(tunnel.NewFrontDoor)
		} else {
			tunnelClient = tunnel.NewTunnelClient(tunnel.NewBackDoor)
		}
		app.Add(tunnelClient)
	}

	err := app.Start()
	if err != nil {
		fmt.Printf("start gotunnel failed:%s\n", err.Error())
		return
	}
	go handleSignal(app)

	app.Wait()
}
예제 #2
0
파일: main.go 프로젝트: kevin1sMe/gotunnel
func main() {
	// parse argument and check
	options := argsCheck()

	app := tunnel.NewApp(options)
	if options.Server == "" {
		app.Add(tunnel.NewTunnelServer())
	} else {
		app.Add(tunnel.NewTunnelClient())
	}

	err := app.Start()
	if err != nil {
		fmt.Printf("start gotunnel failed:%s\n", err.Error())
		return
	}
	go handleSignal(app)

	app.Wait()
}
예제 #3
0
파일: main.go 프로젝트: kivan/gotunnel
func main() {
	// parse argument and check
	options := argsCheck()

	app := tunnel.NewApp(options)
	if options.Gate {
		backDoor := tunnel.NewBackServer()
		app.Add(backDoor)
	} else {
		backClient := tunnel.NewBackClient()
		app.Add(backClient)
	}

	err := app.Start()
	if err != nil {
		fmt.Printf("start gotunnel failed:%s\n", err.Error())
		return
	}
	go handleSignal(app)

	app.Wait()
}