add reload and plugin support for hop

This commit is contained in:
ginuerzh
2023-09-28 21:04:15 +08:00
parent ddc3c9392e
commit ea585fc25d
88 changed files with 2208 additions and 1538 deletions

View File

@ -1,6 +1,7 @@
package h2
import (
"context"
"crypto/tls"
"errors"
"net"
@ -74,7 +75,12 @@ func (l *h2Listener) Init(md md.Metadata) (err error) {
if xnet.IsIPv4(l.options.Addr) {
network = "tcp4"
}
ln, err := net.Listen(network, l.options.Addr)
lc := net.ListenConfig{}
if l.md.mptcp {
lc.SetMultipathTCP(true)
l.logger.Debugf("mptcp enabled: %v", lc.MultipathTCP())
}
ln, err := lc.Listen(context.Background(), network, l.options.Addr)
if err != nil {
return err
}

View File

@ -12,6 +12,7 @@ const (
type metadata struct {
path string
backlog int
mptcp bool
}
func (l *h2Listener) parseMetadata(md mdata.Metadata) (err error) {
@ -26,5 +27,7 @@ func (l *h2Listener) parseMetadata(md mdata.Metadata) (err error) {
}
l.md.path = mdutil.GetString(md, path)
l.md.mptcp = mdutil.GetBool(md, "mptcp")
return
}

View File

@ -1,6 +1,7 @@
package http2
import (
"context"
"crypto/tls"
"net"
"net/http"
@ -63,7 +64,12 @@ func (l *http2Listener) Init(md md.Metadata) (err error) {
if xnet.IsIPv4(l.options.Addr) {
network = "tcp4"
}
ln, err := net.Listen(network, l.options.Addr)
lc := net.ListenConfig{}
if l.md.mptcp {
lc.SetMultipathTCP(true)
l.logger.Debugf("mptcp enabled: %v", lc.MultipathTCP())
}
ln, err := lc.Listen(context.Background(), network, l.options.Addr)
if err != nil {
return err
}

View File

@ -11,6 +11,7 @@ const (
type metadata struct {
backlog int
mptcp bool
}
func (l *http2Listener) parseMetadata(md mdata.Metadata) (err error) {
@ -22,5 +23,7 @@ func (l *http2Listener) parseMetadata(md mdata.Metadata) (err error) {
if l.md.backlog <= 0 {
l.md.backlog = defaultBacklog
}
l.md.mptcp = mdutil.GetBool(md, "mptcp")
return
}