add Listen to api and listenURL to tcp

This commit is contained in:
Arceliar 2021-05-23 21:47:12 -05:00
parent fd5cda6329
commit 5f2bcaa71f
5 changed files with 58 additions and 14 deletions

View file

@ -185,6 +185,32 @@ func (t *tcp) reconfigure() {
*/
}
func (t *tcp) listenURL(u *url.URL, sintf string) (*TcpListener, error) {
var metric uint8
if ms := u.Query()["metric"]; len(ms) == 1 {
m64, _ := strconv.ParseUint(ms[0], 10, 8)
metric = uint8(m64)
}
var listener *TcpListener
var err error
hostport := u.Host // Used for tcp and tls
if len(sintf) != 0 {
host, port, err := net.SplitHostPort(hostport)
if err == nil {
hostport = fmt.Sprintf("[%s%%%s]:%s", host, sintf, port)
}
}
switch u.Scheme {
case "tcp":
listener, err = t.listen(hostport, nil, metric)
case "tls":
listener, err = t.listen(hostport, t.tls.forListener, metric)
default:
t.links.core.log.Errorln("Failed to add listener: listener", u.String(), "is not correctly formatted, ignoring")
}
return listener, err
}
func (t *tcp) listen(listenaddr string, upgrade *TcpUpgrade, metric uint8) (*TcpListener, error) {
var err error