fix tap
This commit is contained in:
@ -83,7 +83,7 @@ func (d *kcpDialer) Dial(ctx context.Context, addr string, opts ...dialer.DialOp
|
||||
PacketConn: pc,
|
||||
}
|
||||
} else {
|
||||
c, err := options.NetDialer.Dial(ctx, "udp", addr)
|
||||
c, err := options.NetDialer.Dial(ctx, "udp", "")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -179,7 +179,8 @@ func (h *httpHandler) handleRequest(ctx context.Context, conn net.Conn, req *htt
|
||||
dump, _ := httputil.DumpResponse(resp, false)
|
||||
log.Debug(string(dump))
|
||||
}
|
||||
return resp.Write(conn)
|
||||
resp.Write(conn)
|
||||
return err
|
||||
}
|
||||
defer cc.Close()
|
||||
|
||||
|
@ -130,7 +130,7 @@ func (h *tapHandler) handleLoop(ctx context.Context, conn net.Conn, addr net.Add
|
||||
var pc net.PacketConn
|
||||
|
||||
if addr != nil {
|
||||
cc, err := h.router.Dial(ctx, addr.Network(), addr.String())
|
||||
cc, err := h.router.Dial(ctx, addr.Network(), "")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -138,7 +138,7 @@ func (h *tapHandler) handleLoop(ctx context.Context, conn net.Conn, addr net.Add
|
||||
var ok bool
|
||||
pc, ok = cc.(net.PacketConn)
|
||||
if !ok {
|
||||
return errors.New("invalid connection")
|
||||
return errors.New("wrong connection type")
|
||||
}
|
||||
} else {
|
||||
laddr, _ := net.ResolveUDPAddr("udp", conn.LocalAddr().String())
|
||||
@ -151,8 +151,9 @@ func (h *tapHandler) handleLoop(ctx context.Context, conn net.Conn, addr net.Add
|
||||
if h.cipher != nil {
|
||||
pc = h.cipher.PacketConn(pc)
|
||||
}
|
||||
defer pc.Close()
|
||||
|
||||
return h.transport(conn, pc, addr, log)
|
||||
return h.transport(conn, pc, addr, config, log)
|
||||
}()
|
||||
if err != nil {
|
||||
log.Error(err)
|
||||
@ -181,7 +182,7 @@ func (h *tapHandler) handleLoop(ctx context.Context, conn net.Conn, addr net.Add
|
||||
|
||||
}
|
||||
|
||||
func (h *tapHandler) transport(tap net.Conn, conn net.PacketConn, raddr net.Addr, log logger.Logger) error {
|
||||
func (h *tapHandler) transport(tap net.Conn, conn net.PacketConn, raddr net.Addr, config *tap_util.Config, log logger.Logger) error {
|
||||
errc := make(chan error, 1)
|
||||
|
||||
go func() {
|
||||
|
@ -18,7 +18,7 @@ func (h *tapHandler) parseMetadata(md mdata.Metadata) (err error) {
|
||||
h.md.key = mdata.GetString(md, key)
|
||||
h.md.bufferSize = mdata.GetInt(md, bufferSize)
|
||||
if h.md.bufferSize <= 0 {
|
||||
h.md.bufferSize = 1024
|
||||
h.md.bufferSize = 1500
|
||||
}
|
||||
return
|
||||
}
|
||||
|
@ -90,6 +90,7 @@ func newMetrics() *Metrics {
|
||||
prometheus.MustRegister(m.requestSeconds)
|
||||
prometheus.MustRegister(m.inputBytes)
|
||||
prometheus.MustRegister(m.outputBytes)
|
||||
prometheus.MustRegister(m.handlerErrors)
|
||||
return m
|
||||
}
|
||||
|
||||
|
@ -110,6 +110,7 @@ func (s *service) Serve() error {
|
||||
}()
|
||||
|
||||
if err := s.handler.Handle(context.Background(), conn); err != nil {
|
||||
s.options.logger.Error(err)
|
||||
metrics.HandlerErrors(s.name).Inc()
|
||||
}
|
||||
}()
|
||||
|
Reference in New Issue
Block a user