Skip to content

Commit 9be7ee4

Browse files
committed
update. It is now possible to specify the logger for Dynamic Forward, and the default is /dev/null.
1 parent fb7f994 commit 9be7ee4

File tree

4 files changed

+21
-2
lines changed

4 files changed

+21
-2
lines changed

common.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import (
1212
"path/filepath"
1313
"strings"
1414

15-
"golang.org/x/crypto/ssh/terminal"
15+
terminal "golang.org/x/term"
1616
)
1717

1818
// getAbsPath return absolute path convert.

connect.go

+5
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ package sshlib
66

77
import (
88
"io"
9+
"log"
910
"net"
1011
"os"
1112
"os/signal"
@@ -49,6 +50,7 @@ type Connect struct {
4950
ForwardAgent bool
5051

5152
// CheckKnownHosts if true, check knownhosts.
53+
// Ignored if HostKeyCallback is set.
5254
// Set it before CraeteClient.
5355
CheckKnownHosts bool
5456

@@ -93,6 +95,9 @@ type Connect struct {
9395
// Set it before CraeteClient.
9496
ForwardX11Trusted bool
9597

98+
//
99+
DynamicForwardLogger *log.Logger
100+
96101
// shell terminal log flag
97102
logging bool
98103

forward.go

+14
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"errors"
1010
"fmt"
1111
"io"
12+
"log"
1213
"net"
1314
"net/http"
1415
"os"
@@ -242,10 +243,18 @@ func (c *Connect) forwarder(local net.Conn, remote net.Conn) {
242243
// socks5Resolver prevents DNS from resolving on the local machine, rather than over the SSH connection.
243244
type socks5Resolver struct{}
244245

246+
// Resolve
245247
func (socks5Resolver) Resolve(ctx context.Context, name string) (context.Context, net.IP, error) {
246248
return ctx, nil, nil
247249
}
248250

251+
func (c *Connect) getDynamicForwardLogger() *log.Logger {
252+
if c.DynamicForwardLogger == nil {
253+
return log.New(io.Discard, "", log.LstdFlags)
254+
}
255+
return c.DynamicForwardLogger
256+
}
257+
249258
// TCPDynamicForward forwarding tcp data. Like Dynamic forward (`ssh -D <port>`).
250259
// listen port Socks5 proxy server.
251260
func (c *Connect) TCPDynamicForward(address, port string) (err error) {
@@ -255,6 +264,7 @@ func (c *Connect) TCPDynamicForward(address, port string) (err error) {
255264
return c.Client.Dial(n, addr)
256265
},
257266
Resolver: socks5Resolver{},
267+
Logger: c.getDynamicForwardLogger(),
258268
}
259269

260270
// Create Socks5 server
@@ -278,6 +288,7 @@ func (c *Connect) TCPReverseDynamicForward(address, port string) (err error) {
278288
return net.Dial(n, addr)
279289
},
280290
Resolver: socks5Resolver{},
291+
Logger: c.getDynamicForwardLogger(),
281292
}
282293

283294
// create listner
@@ -308,6 +319,9 @@ func (c *Connect) HTTPDynamicForward(address, port string) (err error) {
308319
return c.Client.Dial(n, addr)
309320
}
310321

322+
// set logger
323+
httpProxy.Logger = c.getDynamicForwardLogger()
324+
311325
// listen
312326
err = http.ListenAndServe(net.JoinHostPort(address, port), httpProxy)
313327
return

shell.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import (
1414

1515
"github.com/lunixbochs/vtclean"
1616
"golang.org/x/crypto/ssh"
17-
"golang.org/x/crypto/ssh/terminal"
17+
terminal "golang.org/x/term"
1818
)
1919

2020
// Shell connect login shell over ssh.

0 commit comments

Comments
 (0)