revert change for Listener

This commit is contained in:
ginuerzh 2022-03-15 10:43:38 +08:00
parent 2e40afe535
commit 20e7528b25
8 changed files with 20 additions and 20 deletions

View File

@ -14,7 +14,7 @@ var (
// Listener is a server listener, just like a net.Listener. // Listener is a server listener, just like a net.Listener.
type Listener interface { type Listener interface {
Init(metadata.Metadata) error Init(metadata.Metadata) error
Accept() (net.Conn, metadata.Metadata, error) Accept() (net.Conn, error)
Addr() net.Addr Addr() net.Addr
Close() error Close() error
} }

View File

@ -57,10 +57,10 @@ func (l *rtcpListener) Init(md md.Metadata) (err error) {
return return
} }
func (l *rtcpListener) Accept() (conn net.Conn, md md.Metadata, err error) { func (l *rtcpListener) Accept() (conn net.Conn, err error) {
select { select {
case <-l.closed: case <-l.closed:
return nil, nil, net.ErrClosed return nil, net.ErrClosed
default: default:
} }
@ -70,7 +70,7 @@ func (l *rtcpListener) Accept() (conn net.Conn, md md.Metadata, err error) {
connector.MuxBindOption(true), connector.MuxBindOption(true),
) )
if err != nil { if err != nil {
return nil, nil, listener.NewAcceptError(err) return nil, listener.NewAcceptError(err)
} }
l.ln = metrics.WrapListener(l.options.Service, l.ln) l.ln = metrics.WrapListener(l.options.Service, l.ln)
} }
@ -78,7 +78,7 @@ func (l *rtcpListener) Accept() (conn net.Conn, md md.Metadata, err error) {
if err != nil { if err != nil {
l.ln.Close() l.ln.Close()
l.ln = nil l.ln = nil
return nil, nil, listener.NewAcceptError(err) return nil, listener.NewAcceptError(err)
} }
return return
} }

View File

@ -57,10 +57,10 @@ func (l *rudpListener) Init(md md.Metadata) (err error) {
return return
} }
func (l *rudpListener) Accept() (conn net.Conn, md md.Metadata, err error) { func (l *rudpListener) Accept() (conn net.Conn, err error) {
select { select {
case <-l.closed: case <-l.closed:
return nil, nil, net.ErrClosed return nil, net.ErrClosed
default: default:
} }
@ -73,14 +73,14 @@ func (l *rudpListener) Accept() (conn net.Conn, md md.Metadata, err error) {
connector.UDPDataQueueSizeBindOption(l.md.readQueueSize), connector.UDPDataQueueSizeBindOption(l.md.readQueueSize),
) )
if err != nil { if err != nil {
return nil, nil, listener.NewAcceptError(err) return nil, listener.NewAcceptError(err)
} }
} }
conn, err = l.ln.Accept() conn, err = l.ln.Accept()
if err != nil { if err != nil {
l.ln.Close() l.ln.Close()
l.ln = nil l.ln = nil
return nil, nil, listener.NewAcceptError(err) return nil, listener.NewAcceptError(err)
} }
if pc, ok := conn.(net.PacketConn); ok { if pc, ok := conn.(net.PacketConn); ok {

View File

@ -47,9 +47,8 @@ func (l *tcpListener) Init(md md.Metadata) (err error) {
return return
} }
func (l *tcpListener) Accept() (conn net.Conn, md md.Metadata, err error) { func (l *tcpListener) Accept() (conn net.Conn, err error) {
conn, err = l.ln.Accept() return l.ln.Accept()
return
} }
func (l *tcpListener) Addr() net.Addr { func (l *tcpListener) Addr() net.Addr {

View File

@ -51,9 +51,8 @@ func (l *tlsListener) Init(md md.Metadata) (err error) {
return return
} }
func (l *tlsListener) Accept() (conn net.Conn, md md.Metadata, err error) { func (l *tlsListener) Accept() (conn net.Conn, err error) {
conn, err = l.ln.Accept() return l.ln.Accept()
return
} }
func (l *tlsListener) Addr() net.Addr { func (l *tlsListener) Addr() net.Addr {

View File

@ -60,9 +60,8 @@ func (l *udpListener) Init(md md.Metadata) (err error) {
return return
} }
func (l *udpListener) Accept() (conn net.Conn, md md.Metadata, err error) { func (l *udpListener) Accept() (conn net.Conn, err error) {
conn, err = l.ln.Accept() return l.ln.Accept()
return
} }
func (l *udpListener) Addr() net.Addr { func (l *udpListener) Addr() net.Addr {

View File

@ -6,6 +6,10 @@ import (
"time" "time"
) )
type Metadatable interface {
GetMetadata() Metadata
}
type Metadata interface { type Metadata interface {
IsExists(key string) bool IsExists(key string) bool
Set(key string, value any) Set(key string, value any)

View File

@ -71,7 +71,7 @@ func (s *service) Serve() error {
var tempDelay time.Duration var tempDelay time.Duration
for { for {
conn, md, e := s.listener.Accept() conn, e := s.listener.Accept()
if e != nil { if e != nil {
if ne, ok := e.(net.Error); ok && ne.Temporary() { if ne, ok := e.(net.Error); ok && ne.Temporary() {
if tempDelay == 0 { if tempDelay == 0 {
@ -111,7 +111,6 @@ func (s *service) Serve() error {
if err := s.handler.Handle( if err := s.handler.Handle(
context.Background(), context.Background(),
conn, conn,
handler.MetadataHandleOption(md),
); err != nil { ); err != nil {
s.options.logger.Error(err) s.options.logger.Error(err)
metrics.HandlerErrors(s.name).Inc() metrics.HandlerErrors(s.name).Inc()