api/internal/endpoint/uplink.go
Peter Kurfer d70ba748f5 Introduce Lifecycle for every endpoint and manage listeners in the renamed Orchestrator
- merge packages to get a more concise layout because plugins are no more and therefore there's not a lot to be exported
- fix test logger
- rework config parsing to be easier and more transparent
- remove unnecessary APIs because dynamic endpoint handling is rather a won't implement
2021-02-10 20:26:45 +00:00

33 lines
529 B
Go

package endpoint
import (
"net"
"go.uber.org/multierr"
)
type Uplink struct {
Proto NetProto
Listener net.Listener
PacketConn net.PacketConn
}
func (u Uplink) Addr() net.Addr {
if u.Listener != nil {
return u.Listener.Addr()
}
if u.PacketConn != nil {
return u.PacketConn.LocalAddr()
}
return nil
}
func (u Uplink) Close() (err error) {
if u.Listener != nil {
err = multierr.Append(err, u.Listener.Close())
}
if u.PacketConn != nil {
err = multierr.Append(err, u.PacketConn.Close())
}
return
}