frp 0.31.2

This commit is contained in:
曹海迪 2020-02-17 10:56:45 +08:00
parent f03d1e5eba
commit 575b7d569b
5 changed files with 10 additions and 40 deletions

View File

@ -17,6 +17,7 @@ package client
import ( import (
"context" "context"
"crypto/tls" "crypto/tls"
"github.com/fatedier/frp/utils/log"
"io" "io"
"net" "net"
"runtime/debug" "runtime/debug"
@ -78,7 +79,7 @@ type Control struct {
mu sync.RWMutex mu sync.RWMutex
ProxyFunc func(err error) ProxyFunc func(err error)
xl *xlog.Logger xl *xlog.Logger
// service context // service context
ctx context.Context ctx context.Context

View File

@ -260,7 +260,7 @@ func newAddress(addr string, port int) string {
} }
} }
func (pxy *XtcpProxy) InWorkConn(conn frpNet.Conn, m *msg.StartWorkConn) { func (pxy *XtcpProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) {
xl := pxy.xl xl := pxy.xl
defer conn.Close() defer conn.Close()
var natHoleSidMsg msg.NatHoleSid var natHoleSidMsg msg.NatHoleSid

View File

@ -62,7 +62,7 @@ type Service struct {
// This is configured by the login response from frps // This is configured by the login response from frps
serverUDPPort int serverUDPPort int
exit uint32 // 0 means not exit exit uint32 // 0 means not exit
// service context // service context
ctx context.Context ctx context.Context
@ -94,7 +94,6 @@ func NewService(cfg config.ClientCommonConf, pxyCfgs map[string]config.ProxyConf
pxyCfgs: pxyCfgs, pxyCfgs: pxyCfgs,
visitorCfgs: visitorCfgs, visitorCfgs: visitorCfgs,
exit: 0, exit: 0,
closedCh: make(chan bool),
ctx: xlog.NewContext(ctx, xlog.New()), ctx: xlog.NewContext(ctx, xlog.New()),
cancel: cancel, cancel: cancel,
} }
@ -152,11 +151,13 @@ func (svr *Service) Run(isCmd bool) error {
svr.closed = false svr.closed = false
if isCmd { if isCmd {
svr.closed = <-svr.ctx.Done() <-svr.ctx.Done()
svr.closed = true
log.Info("svr closed") log.Info("svr closed")
} else { } else {
go func() { go func() {
svr.closed = <-svr.ctx.Done() <-svr.ctx.Done()
svr.closed = true
log.Info("svr closed") log.Info("svr closed")
if svr.onClosedListener != nil { if svr.onClosedListener != nil {

View File

@ -22,38 +22,6 @@ import (
"github.com/fatedier/golib/errors" "github.com/fatedier/golib/errors"
) )
type Listener interface {
Accept() (Conn, error)
Close() error
log.Logger
}
type LogListener struct {
l net.Listener
net.Listener
log.Logger
}
func WrapLogListener(l net.Listener) Listener {
return &LogListener{
l: l,
Listener: l,
Logger: log.NewPrefixLogger(""),
}
}
func (logL *LogListener) Accept() (Conn, error) {
log.Info("call Accept")
c, err := logL.l.Accept()
log.Info("Accept new conn: ", c)
return WrapConn(c), err
}
// Close 关闭listener
func (logL *LogListener) Close() error {
return logL.l.Close()
}
// Custom listener // Custom listener
type CustomListener struct { type CustomListener struct {
acceptCh chan net.Conn acceptCh chan net.Conn

View File

@ -70,8 +70,8 @@ func (p *WebsocketListener) Accept() (net.Conn, error) {
} }
func (p *WebsocketListener) Close() error { func (p *WebsocketListener) Close() error {
if p.accept != nil { if p.acceptCh != nil {
close(p.accept) close(p.acceptCh)
} }
if p.ln != nil { if p.ln != nil {
if err := p.ln.Close(); err != nil { if err := p.ln.Close(); err != nil {