Skip to content

Commit

Permalink
Change interface
Browse files Browse the repository at this point in the history
  • Loading branch information
hzyitc committed Jun 9, 2021
1 parent f9b3b38 commit 12857a8
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 18 deletions.
8 changes: 3 additions & 5 deletions TCPMode/demoWeb.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@ type demoWeb struct {
closingChan chan struct{}
closedChan chan struct{}

listener Interface
server net.Listener
listener Listener
}

func (s *demoWeb) server_handle(conn net.Conn) {
Expand Down Expand Up @@ -49,7 +48,7 @@ func (s *demoWeb) server_main() {
defer s.worker.Done()

for {
conn, err := s.server.Accept()
conn, err := s.listener.Accept()
if err != nil {
select {
case <-s.closingChan:
Expand All @@ -64,7 +63,7 @@ func (s *demoWeb) server_main() {
}

func NewDemoWeb(rpfc routerPortForward.Config, port int) (Interface, error) {
listener, server, err := NewListener(rpfc, port)
listener, err := NewListener(rpfc, port)
if err != nil {
return nil, err
}
Expand All @@ -77,7 +76,6 @@ func NewDemoWeb(rpfc routerPortForward.Config, port int) (Interface, error) {
make(chan struct{}),

listener,
server,
}

go s.server_main()
Expand Down
File renamed without changes.
21 changes: 13 additions & 8 deletions TCPMode/listener.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,34 +9,39 @@ import (
"github.com/hzyitc/mnh/routerPortForward"
)

type Listener interface {
Interface
net.Listener
}

type listener struct {
port int

closingChan chan struct{}
closedChan chan struct{}

server net.Listener
reuse Interface
net.Listener
reuse Interface
}

func NewListener(rpfc routerPortForward.Config, port int) (Interface, net.Listener, error) {
func NewListener(rpfc routerPortForward.Config, port int) (Listener, error) {
local := "0.0.0.0:" + strconv.Itoa(port)
server, err := reuseport.Listen("tcp", local)
if err != nil {
return nil, nil, err
return nil, err
}

addr, err := net.ResolveTCPAddr("tcp", server.Addr().String())
if err != nil {
server.Close()
return nil, nil, err
return nil, err
}
port = addr.Port

reuse, err := NewReuse(rpfc, port)
if err != nil {
server.Close()
return nil, nil, err
return nil, err
}

s := &listener{
Expand All @@ -49,7 +54,7 @@ func NewListener(rpfc routerPortForward.Config, port int) (Interface, net.Listen
reuse,
}

return s, server, nil
return s, nil
}

func (s *listener) Dial(addr string) (net.Conn, error) {
Expand All @@ -70,7 +75,7 @@ func (s *listener) Close() error {
close(s.closingChan)

err := s.reuse.Close()
err2 := s.server.Close()
err2 := s.Listener.Close()

close(s.closedChan)
if err != nil {
Expand Down
8 changes: 3 additions & 5 deletions TCPMode/proxy.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,7 @@ type proxy struct {
closingChan chan struct{}
closedChan chan struct{}

listener Interface
server net.Listener
listener Listener
}

func (s *proxy) server_handle(conn net.Conn) {
Expand Down Expand Up @@ -68,7 +67,7 @@ func (s *proxy) server_main() {
defer s.worker.Done()

for {
conn, err := s.server.Accept()
conn, err := s.listener.Accept()
if err != nil {
select {
case <-s.closingChan:
Expand All @@ -88,7 +87,7 @@ func NewProxy(rpfc routerPortForward.Config, port int, service string) (Interfac
return nil, err
}

listener, server, err := NewListener(rpfc, port)
listener, err := NewListener(rpfc, port)
if err != nil {
return nil, err
}
Expand All @@ -102,7 +101,6 @@ func NewProxy(rpfc routerPortForward.Config, port int, service string) (Interfac
make(chan struct{}),

listener,
server,
}

go s.server_main()
Expand Down
File renamed without changes.

0 comments on commit 12857a8

Please sign in to comment.