@@ -32,23 +32,23 @@ type Options struct {
3232 Logger slog.Logger
3333}
3434
35- type Dialer func (ctx context.Context , options * peer. ConnOptions ) (* peerbroker.Listener , error )
35+ type Dialer func (ctx context.Context , logger slog. Logger ) (* peerbroker.Listener , error )
3636
37- func New (dialer Dialer , options * peer. ConnOptions ) io.Closer {
37+ func New (dialer Dialer , logger slog. Logger ) io.Closer {
3838 ctx , cancelFunc := context .WithCancel (context .Background ())
3939 server := & agent {
40- clientDialer : dialer ,
41- options : options ,
42- closeCancel : cancelFunc ,
43- closed : make (chan struct {}),
40+ dialer : dialer ,
41+ logger : logger ,
42+ closeCancel : cancelFunc ,
43+ closed : make (chan struct {}),
4444 }
4545 server .init (ctx )
4646 return server
4747}
4848
4949type agent struct {
50- clientDialer Dialer
51- options * peer. ConnOptions
50+ dialer Dialer
51+ logger slog. Logger
5252
5353 connCloseWait sync.WaitGroup
5454 closeCancel context.CancelFunc
@@ -64,18 +64,18 @@ func (a *agent) run(ctx context.Context) {
6464 // An exponential back-off occurs when the connection is failing to dial.
6565 // This is to prevent server spam in case of a coderd outage.
6666 for retrier := retry .New (50 * time .Millisecond , 10 * time .Second ); retrier .Wait (ctx ); {
67- peerListener , err = a .clientDialer (ctx , a .options )
67+ peerListener , err = a .dialer (ctx , a .logger )
6868 if err != nil {
6969 if errors .Is (err , context .Canceled ) {
7070 return
7171 }
7272 if a .isClosed () {
7373 return
7474 }
75- a .options . Logger .Warn (context .Background (), "failed to dial" , slog .Error (err ))
75+ a .logger .Warn (context .Background (), "failed to dial" , slog .Error (err ))
7676 continue
7777 }
78- a .options . Logger .Info (context .Background (), "connected" )
78+ a .logger .Info (context .Background (), "connected" )
7979 break
8080 }
8181 select {
@@ -90,7 +90,7 @@ func (a *agent) run(ctx context.Context) {
9090 if a .isClosed () {
9191 return
9292 }
93- a .options . Logger .Debug (ctx , "peer listener accept exited; restarting connection" , slog .Error (err ))
93+ a .logger .Debug (ctx , "peer listener accept exited; restarting connection" , slog .Error (err ))
9494 a .run (ctx )
9595 return
9696 }
@@ -105,10 +105,9 @@ func (a *agent) handlePeerConn(ctx context.Context, conn *peer.Conn) {
105105 go func () {
106106 select {
107107 case <- a .closed :
108- _ = conn .Close ()
109108 case <- conn .Closed ():
110109 }
111- <- conn .Closed ()
110+ _ = conn .Close ()
112111 a .connCloseWait .Done ()
113112 }()
114113 for {
@@ -117,15 +116,15 @@ func (a *agent) handlePeerConn(ctx context.Context, conn *peer.Conn) {
117116 if errors .Is (err , peer .ErrClosed ) || a .isClosed () {
118117 return
119118 }
120- a .options . Logger .Debug (ctx , "accept channel from peer connection" , slog .Error (err ))
119+ a .logger .Debug (ctx , "accept channel from peer connection" , slog .Error (err ))
121120 return
122121 }
123122
124123 switch channel .Protocol () {
125124 case "ssh" :
126125 go a .sshServer .HandleConn (channel .NetConn ())
127126 default :
128- a .options . Logger .Warn (ctx , "unhandled protocol from channel" ,
127+ a .logger .Warn (ctx , "unhandled protocol from channel" ,
129128 slog .F ("protocol" , channel .Protocol ()),
130129 slog .F ("label" , channel .Label ()),
131130 )
@@ -145,7 +144,7 @@ func (a *agent) init(ctx context.Context) {
145144 if err != nil {
146145 panic (err )
147146 }
148- sshLogger := a .options . Logger .Named ("ssh-server" )
147+ sshLogger := a .logger .Named ("ssh-server" )
149148 forwardHandler := & ssh.ForwardedTCPHandler {}
150149 a .sshServer = & ssh.Server {
151150 ChannelHandlers : map [string ]ssh.ChannelHandler {
@@ -158,7 +157,7 @@ func (a *agent) init(ctx context.Context) {
158157 Handler : func (session ssh.Session ) {
159158 err := a .handleSSHSession (session )
160159 if err != nil {
161- a .options . Logger .Warn (ctx , "ssh session failed" , slog .Error (err ))
160+ a .logger .Warn (ctx , "ssh session failed" , slog .Error (err ))
162161 _ = session .Exit (1 )
163162 return
164163 }
@@ -194,15 +193,15 @@ func (a *agent) init(ctx context.Context) {
194193 "sftp" : func (session ssh.Session ) {
195194 server , err := sftp .NewServer (session )
196195 if err != nil {
197- a .options . Logger .Debug (session .Context (), "initialize sftp server" , slog .Error (err ))
196+ a .logger .Debug (session .Context (), "initialize sftp server" , slog .Error (err ))
198197 return
199198 }
200199 defer server .Close ()
201200 err = server .Serve ()
202201 if errors .Is (err , io .EOF ) {
203202 return
204203 }
205- a .options . Logger .Debug (session .Context (), "sftp server exited with error" , slog .Error (err ))
204+ a .logger .Debug (session .Context (), "sftp server exited with error" , slog .Error (err ))
206205 },
207206 },
208207 }
@@ -250,7 +249,7 @@ func (a *agent) handleSSHSession(session ssh.Session) error {
250249 for win := range windowSize {
251250 err = ptty .Resize (uint16 (win .Width ), uint16 (win .Height ))
252251 if err != nil {
253- a .options . Logger .Warn (context .Background (), "failed to resize tty" , slog .Error (err ))
252+ a .logger .Warn (context .Background (), "failed to resize tty" , slog .Error (err ))
254253 }
255254 }
256255 }()
0 commit comments