This commit is contained in:
兔子 2025-06-17 12:09:12 +08:00
parent 54958724e7
commit 9f5aca124d

View File

@ -2,6 +2,7 @@ package starnet
import (
"bytes"
"context"
"crypto/tls"
"io"
"net"
@ -92,6 +93,28 @@ func Listen(network, address string) (*Listener, error) {
return &Listener{Listener: listener}, nil
}
func ListenTLSWithListenConfig(liscfg net.ListenConfig, network, address string, config *tls.Config, getConfigForClient func(hostname string) *tls.Config, allowNonTls bool) (*Listener, error) {
listener, err := liscfg.Listen(context.Background(), network, address)
if err != nil {
return nil, err
}
return &Listener{
Listener: listener,
cfg: config,
getConfigForClient: getConfigForClient,
allowNonTls: allowNonTls,
}, nil
}
func ListenWithListener(listener net.Listener, config *tls.Config, getConfigForClient func(hostname string) *tls.Config, allowNonTls bool) (*Listener, error) {
return &Listener{
Listener: listener,
cfg: config,
getConfigForClient: getConfigForClient,
allowNonTls: allowNonTls,
}, nil
}
func ListenTLSWithConfig(network, address string, config *tls.Config, getConfigForClient func(hostname string) *tls.Config, allowNonTls bool) (*Listener, error) {
listener, err := net.Listen(network, address)
if err != nil {