fix metadata

This commit is contained in:
ginuerzh
2022-01-09 00:07:26 +08:00
parent f45dc93e92
commit 37e77bdce5
12 changed files with 118 additions and 159 deletions

View File

@ -17,47 +17,42 @@ func init() {
}
type rtcpListener struct {
addr string
laddr net.Addr
chain *chain.Chain
ln net.Listener
md metadata
router *chain.Router
logger logger.Logger
closed chan struct{}
laddr net.Addr
ln net.Listener
md metadata
router *chain.Router
logger logger.Logger
closed chan struct{}
options listener.Options
}
func NewListener(opts ...listener.Option) listener.Listener {
options := &listener.Options{}
options := listener.Options{}
for _, opt := range opts {
opt(options)
opt(&options)
}
return &rtcpListener{
addr: options.Addr,
closed: make(chan struct{}),
router: &chain.Router{
Logger: options.Logger,
},
logger: options.Logger,
closed: make(chan struct{}),
logger: options.Logger,
options: options,
}
}
// implements chain.Chainable interface
func (l *rtcpListener) WithChain(chain *chain.Chain) {
l.router.Chain = chain
}
func (l *rtcpListener) Init(md md.Metadata) (err error) {
if err = l.parseMetadata(md); err != nil {
return
}
laddr, err := net.ResolveTCPAddr("tcp", l.addr)
laddr, err := net.ResolveTCPAddr("tcp", l.options.Addr)
if err != nil {
return
}
l.laddr = laddr
l.router = &chain.Router{
Chain: l.options.Chain,
Logger: l.logger,
}
return
}

View File

@ -12,24 +12,8 @@ const (
)
type metadata struct {
enableMux bool
backlog int
retryCount int
}
func (l *rtcpListener) parseMetadata(md mdata.Metadata) (err error) {
const (
enableMux = "mux"
backlog = "backlog"
retryCount = "retry"
)
l.md.enableMux = mdata.GetBool(md, enableMux)
l.md.retryCount = mdata.GetInt(md, retryCount)
l.md.backlog = mdata.GetInt(md, backlog)
if l.md.backlog <= 0 {
l.md.backlog = defaultBacklog
}
return
}