8
8
"sync"
9
9
"time"
10
10
11
+ "github.com/btcsuite/btclog"
11
12
"github.com/grpc-ecosystem/grpc-gateway/v2/runtime"
12
13
"github.com/lightninglabs/lightning-node-connect/gbn"
13
14
"github.com/lightninglabs/lightning-node-connect/hashmailrpc"
@@ -124,13 +125,15 @@ type ClientConn struct {
124
125
quit chan struct {}
125
126
cancel func ()
126
127
closeOnce sync.Once
128
+
129
+ log btclog.Logger
127
130
}
128
131
129
132
// NewClientConn creates a new client connection with the given receive and send
130
133
// session identifiers. The context given as the first parameter will be used
131
134
// throughout the connection lifetime.
132
135
func NewClientConn (ctx context.Context , sid [64 ]byte , serverHost string ,
133
- client hashmailrpc.HashMailClient ,
136
+ client hashmailrpc.HashMailClient , logger btclog. Logger ,
134
137
onNewStatus func (status ClientStatus )) (* ClientConn , error ) {
135
138
136
139
receiveSID := GetSID (sid , true )
@@ -141,7 +144,7 @@ func NewClientConn(ctx context.Context, sid [64]byte, serverHost string,
141
144
sendSID : sendSID [:],
142
145
}
143
146
144
- log .Debugf ("New client conn, read_stream=%x, write_stream=%x" ,
147
+ logger .Debugf ("New client conn, read_stream=%x, write_stream=%x" ,
145
148
receiveSID [:], sendSID [:])
146
149
147
150
ctxc , cancel := context .WithCancel (ctx )
@@ -166,6 +169,7 @@ func NewClientConn(ctx context.Context, sid [64]byte, serverHost string,
166
169
onNewStatus : onNewStatus ,
167
170
quit : make (chan struct {}),
168
171
cancel : cancel ,
172
+ log : logger ,
169
173
}
170
174
c .connKit = & connKit {
171
175
ctx : ctxc ,
@@ -201,10 +205,11 @@ func RefreshClientConn(ctx context.Context, c *ClientConn) (*ClientConn,
201
205
c .statusMu .Lock ()
202
206
defer c .statusMu .Unlock ()
203
207
204
- log .Debugf ("Refreshing client conn, read_stream=%x, write_stream=%x" ,
208
+ c . log .Debugf ("Refreshing client conn, read_stream=%x, write_stream=%x" ,
205
209
c .receiveSID [:], c .sendSID [:])
206
210
207
211
cc := & ClientConn {
212
+ log : c .log ,
208
213
transport : c .transport .Refresh (),
209
214
status : ClientStatusNotConnected ,
210
215
onNewStatus : c .onNewStatus ,
@@ -299,7 +304,7 @@ func (c *ClientConn) recv(ctx context.Context) ([]byte, error) {
299
304
return nil , err
300
305
}
301
306
302
- log .Debugf ("Client: got failure on receive " +
307
+ c . log .Debugf ("Client: got failure on receive " +
303
308
"socket/stream, re-trying: %v" , err )
304
309
305
310
c .setStatus (errStatus )
@@ -343,8 +348,8 @@ func (c *ClientConn) send(ctx context.Context, payload []byte) error {
343
348
return err
344
349
}
345
350
346
- log .Debugf ("Client: got failure on send " +
347
- "socket/stream, re-trying: %v" , err )
351
+ c . log .Debugf ("Got failure on send socket/stream, " +
352
+ "re-trying: %v" , err )
348
353
349
354
c .setStatus (errStatus )
350
355
c .createSendMailBox (ctx , retryWait )
@@ -377,13 +382,14 @@ func (c *ClientConn) createReceiveMailBox(ctx context.Context,
377
382
waiter .Wait ()
378
383
379
384
if err := c .transport .ConnectReceive (ctx ); err != nil {
380
- log .Errorf ("Client: error connecting to receive " +
385
+ c . log .Errorf ("Error connecting to receive " +
381
386
"socket/stream: %v" , err )
382
387
383
388
continue
384
389
}
385
390
386
- log .Debugf ("Client: receive mailbox initialized" )
391
+ c .log .Debugf ("Receive mailbox initialized" )
392
+
387
393
return
388
394
}
389
395
}
@@ -406,14 +412,17 @@ func (c *ClientConn) createSendMailBox(ctx context.Context,
406
412
407
413
waiter .Wait ()
408
414
409
- log .Debugf ("Client: Attempting to create send socket/stream" )
415
+ c .log .Debugf ("Attempting to create send socket/stream" )
416
+
410
417
if err := c .transport .ConnectSend (ctx ); err != nil {
411
- log .Debugf ("Client: error connecting to send " +
418
+ c . log .Debugf ("Error connecting to send " +
412
419
"stream/socket %v" , err )
420
+
413
421
continue
414
422
}
415
423
416
- log .Debugf ("Client: Connected to send socket/stream" )
424
+ c .log .Debugf ("Connected to send socket/stream" )
425
+
417
426
return
418
427
}
419
428
}
@@ -460,29 +469,33 @@ func (c *ClientConn) SetSendTimeout(timeout time.Duration) {
460
469
func (c * ClientConn ) Close () error {
461
470
var returnErr error
462
471
c .closeOnce .Do (func () {
463
- log .Debugf ("Closing client connection" )
472
+ c . log .Debugf ("Closing connection" )
464
473
465
474
if c .gbnConn != nil {
466
475
if err := c .gbnConn .Close (); err != nil {
467
- log .Debugf ("Error closing gbn connection: %v" ,
476
+ c . log .Debugf ("Error closing gbn connection: %v" ,
468
477
err )
469
478
470
479
returnErr = err
471
480
}
472
481
}
473
482
474
483
c .receiveMu .Lock ()
475
- log .Debugf ("closing receive stream/socket" )
484
+ c . log .Debugf ("Closing receive stream/socket" )
476
485
if err := c .transport .CloseReceive (); err != nil {
477
- log .Errorf ("Error closing receive stream/socket: %v" , err )
486
+ c .log .Errorf ("Error closing receive stream/socket: %v" ,
487
+ err )
488
+
478
489
returnErr = err
479
490
}
480
491
c .receiveMu .Unlock ()
481
492
482
493
c .sendMu .Lock ()
483
- log .Debugf ("closing send stream/socket" )
494
+ c . log .Debugf ("Closing send stream/socket" )
484
495
if err := c .transport .CloseSend (); err != nil {
485
- log .Errorf ("Error closing send stream/socket: %v" , err )
496
+ c .log .Errorf ("Error closing send stream/socket: %v" ,
497
+ err )
498
+
486
499
returnErr = err
487
500
}
488
501
c .sendMu .Unlock ()
0 commit comments