From 4b688f58cbaed56dc515e37733c90f35b08a13be Mon Sep 17 00:00:00 2001 From: piaodazhu <2283079466@qq.com> Date: Sun, 8 Oct 2023 16:29:33 +0800 Subject: [PATCH 1/2] fix tunnel close bug & add a cli example --- example/server/main.go | 2 +- server.go | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/example/server/main.go b/example/server/main.go index 6a47ce7..5a469b0 100644 --- a/example/server/main.go +++ b/example/server/main.go @@ -3,6 +3,6 @@ import "github.com/piaodazhu/proxylite" func main() { server := proxylite.NewProxyLiteServer() - server.AddPort(9930, 9932) + server.AddPort(9940, 9948) panic(server.Run(":9933")) } diff --git a/server.go b/server.go index cf96b46..1552cd3 100644 --- a/server.go +++ b/server.go @@ -279,6 +279,7 @@ func (s *ProxyLiteServer) startTunnel(tn *tunnel) { listener, err := net.Listen("tcp", fmt.Sprintf("0.0.0.0:%d", tn.service.Port)) if err != nil { (*tn.innerConn).Close() + tn.empty = true return } From ca3ebfa23361b7b51f3c1367de3bc03f227d692f Mon Sep 17 00:00:00 2001 From: piaodazhu <2283079466@qq.com> Date: Sun, 8 Oct 2023 16:31:08 +0800 Subject: [PATCH 2/2] fix tunnel close bug & add a cli example --- example/cli/go.mod | 8 ++++++++ example/cli/main.go | 28 ++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 example/cli/go.mod create mode 100644 example/cli/main.go diff --git a/example/cli/go.mod b/example/cli/go.mod new file mode 100644 index 0000000..a522f29 --- /dev/null +++ b/example/cli/go.mod @@ -0,0 +1,8 @@ +module cli + +go 1.12 + +// require github.com/piaodazhu/proxylite v0.0.0-20230813091435-b2c8f474a9fc +replace github.com/piaodazhu/proxylite => ../../ + +require github.com/piaodazhu/proxylite v0.0.0-00010101000000-000000000000 diff --git a/example/cli/main.go b/example/cli/main.go new file mode 100644 index 0000000..f91fbc5 --- /dev/null +++ b/example/cli/main.go @@ -0,0 +1,28 @@ +package main + +import ( + "flag" + + "github.com/piaodazhu/proxylite" +) + +func main() { + var name string + flag.StringVar(&name, "n", "abc", "service name") + flag.Parse() + cli := proxylite.NewProxyLiteClient(":9933") + port, ok := cli.AnyPort() + if !ok { + panic("anyport() error") + } + _, done, err := cli.RegisterInnerService(proxylite.RegisterInfo{ + OuterPort: port, + InnerAddr: ":123", + Name: name, + Message: "hello world", + }, proxylite.ControlInfo{}) + if err != nil { + panic(err) + } + <-done +} \ No newline at end of file