Add TLS support (only over tcp)
This commit is contained in:
@@ -47,7 +47,7 @@
|
|||||||
proxies = mkOption {
|
proxies = mkOption {
|
||||||
type = attrsOf (submodule ({config, ...}: {
|
type = attrsOf (submodule ({config, ...}: {
|
||||||
options = let
|
options = let
|
||||||
proto = enum ["udp" "tcp" "unix"];
|
proto = enum ["udp" "tcp" "unix" "tls"];
|
||||||
in {
|
in {
|
||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
type = bool;
|
type = bool;
|
||||||
|
|||||||
9
main.go
9
main.go
@@ -24,11 +24,18 @@ func (dialer Dialer) Dial() (net.Conn, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Forward(server *tsnet.Server, proto, port, dst string, finish chan error) {
|
func Forward(server *tsnet.Server, proto, port, dst string, finish chan error) {
|
||||||
|
var ln net.Listener
|
||||||
|
var err error
|
||||||
|
if proto == "tls" {
|
||||||
|
proto = "tcp"
|
||||||
|
ln, err = server.ListenTLS(proto, fmt.Sprint(":", port))
|
||||||
|
} else {
|
||||||
ln, err = server.Listen(proto, fmt.Sprint(":", port))
|
ln, err = server.Listen(proto, fmt.Sprint(":", port))
|
||||||
defer ln.Close()
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
finish <- err
|
finish <- err
|
||||||
}
|
}
|
||||||
|
defer ln.Close()
|
||||||
err = netforward.Forward(Dialer { proto: proto, addr: dst }, ln)
|
err = netforward.Forward(Dialer { proto: proto, addr: dst }, ln)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
finish <- err
|
finish <- err
|
||||||
|
|||||||
Reference in New Issue
Block a user