@@ -252,29 +252,38 @@ _mongoc_stream_tls_bio_write (BIO *b,
252
252
mongoc_stream_tls_t * tls ;
253
253
mongoc_iovec_t iov ;
254
254
int ret ;
255
+ ENTRY ;
255
256
256
257
BSON_ASSERT (b );
257
258
BSON_ASSERT (buf );
258
259
259
260
tls = (mongoc_stream_tls_t * )b -> ptr ;
260
261
261
262
if (!tls ) {
262
- return -1 ;
263
+ RETURN ( -1 ) ;
263
264
}
264
265
265
266
iov .iov_base = (void * )buf ;
266
267
iov .iov_len = len ;
267
268
268
269
errno = 0 ;
270
+ TRACE ("mongoc_stream_writev is expected to write: %d" , len );
269
271
ret = (int )mongoc_stream_writev (tls -> base_stream , & iov , 1 ,
270
272
tls -> timeout_msec );
271
273
BIO_clear_retry_flags (b );
272
274
273
- if ((ret <= 0 ) && MONGOC_ERRNO_IS_AGAIN (errno )) {
275
+ if (len > ret ) {
276
+ TRACE ("Returned short write: %d of %d" , ret , len );
277
+ } else {
278
+ TRACE ("Completed the %d" , ret );
279
+ }
280
+ if (ret <= 0 && MONGOC_ERRNO_IS_AGAIN (errno )) {
281
+ TRACE ("%s" , "Requesting a retry" );
274
282
BIO_set_retry_write (b );
275
283
}
276
284
277
- return ret ;
285
+
286
+ RETURN (ret );
278
287
}
279
288
280
289
@@ -446,10 +455,13 @@ static int
446
455
_mongoc_stream_tls_close (mongoc_stream_t * stream )
447
456
{
448
457
mongoc_stream_tls_t * tls = (mongoc_stream_tls_t * )stream ;
458
+ int ret = 0 ;
459
+ ENTRY ;
449
460
450
461
BSON_ASSERT (tls );
451
462
452
- return mongoc_stream_close (tls -> base_stream );
463
+ ret = mongoc_stream_close (tls -> base_stream );
464
+ RETURN (ret );
453
465
}
454
466
455
467
@@ -489,6 +501,7 @@ _mongoc_stream_tls_write (mongoc_stream_tls_t *tls,
489
501
490
502
int64_t now ;
491
503
int64_t expire = 0 ;
504
+ ENTRY ;
492
505
493
506
BSON_ASSERT (tls );
494
507
BSON_ASSERT (buf );
@@ -499,7 +512,9 @@ _mongoc_stream_tls_write (mongoc_stream_tls_t *tls,
499
512
}
500
513
501
514
ret = BIO_write (tls -> bio , buf , buf_len );
515
+ TRACE ("BIO_write returned %ld" , ret );
502
516
517
+ TRACE ("I got ret: %ld and retry: %d" , ret , BIO_should_retry (tls -> bio ));
503
518
if (ret <= 0 ) {
504
519
return ret ;
505
520
}
@@ -518,7 +533,13 @@ _mongoc_stream_tls_write (mongoc_stream_tls_t *tls,
518
533
}
519
534
}
520
535
521
- return ret ;
536
+ if (ret <= 0 && BIO_should_retry (tls -> bio )) {
537
+ if (tls -> timeout_msec > 0 ) {
538
+ TRACE ("I do have %dmsec left" , tls -> timeout_msec );
539
+ }
540
+ }
541
+
542
+ RETURN (ret );
522
543
}
523
544
524
545
/*
@@ -697,6 +718,7 @@ _mongoc_stream_tls_readv (mongoc_stream_t *stream,
697
718
size_t iov_pos = 0 ;
698
719
int64_t now ;
699
720
int64_t expire = 0 ;
721
+ ENTRY ;
700
722
701
723
BSON_ASSERT (tls );
702
724
BSON_ASSERT (iov );
@@ -738,7 +760,7 @@ _mongoc_stream_tls_readv (mongoc_stream_t *stream,
738
760
#else
739
761
errno = ETIMEDOUT ;
740
762
#endif
741
- return -1 ;
763
+ RETURN ( -1 ) ;
742
764
}
743
765
744
766
tls -> timeout_msec = 0 ;
@@ -751,7 +773,7 @@ _mongoc_stream_tls_readv (mongoc_stream_t *stream,
751
773
752
774
if ((size_t )ret >= min_bytes ) {
753
775
mongoc_counter_streams_ingress_add (ret );
754
- return ret ;
776
+ RETURN ( ret ) ;
755
777
}
756
778
757
779
iov_pos += read_ret ;
@@ -762,7 +784,7 @@ _mongoc_stream_tls_readv (mongoc_stream_t *stream,
762
784
mongoc_counter_streams_ingress_add (ret );
763
785
}
764
786
765
- return ret ;
787
+ RETURN ( ret ) ;
766
788
}
767
789
768
790
0 commit comments