@@ -260,6 +260,7 @@ func (c *crypt) executeStateMachine(ctx context.Context, cryptCtx *mongocrypt.Co
260260 var err error
261261 for {
262262 state := cryptCtx .State ()
263+ fmt .Println ("state" , state )
263264 switch state {
264265 case mongocrypt .NeedMongoCollInfo :
265266 err = c .collectionInfo (ctx , cryptCtx , db )
@@ -341,6 +342,7 @@ func (c *crypt) retrieveKeys(ctx context.Context, cryptCtx *mongocrypt.Context)
341342}
342343
343344func (c * crypt ) decryptKeys (cryptCtx * mongocrypt.Context ) error {
345+ c .mongoCrypt .EnableRetry ()
344346 for {
345347 kmsCtx := cryptCtx .NextKmsContext ()
346348 if kmsCtx == nil {
@@ -376,8 +378,10 @@ func (c *crypt) decryptKey(kmsCtx *mongocrypt.KmsContext) error {
376378 if tlsCfg == nil {
377379 tlsCfg = & tls.Config {MinVersion : tls .VersionTLS12 }
378380 }
381+ fmt .Println ("dial" , addr )
379382 conn , err := tls .Dial ("tcp" , addr , tlsCfg )
380383 if err != nil {
384+ fmt .Println ("dial error" , err )
381385 return err
382386 }
383387 defer func () {
@@ -388,18 +392,25 @@ func (c *crypt) decryptKey(kmsCtx *mongocrypt.KmsContext) error {
388392 return err
389393 }
390394 if _ , err = conn .Write (msg ); err != nil {
395+ fmt .Println ("conn write" , err )
391396 return err
392397 }
393398
394399 for {
395400 bytesNeeded := kmsCtx .BytesNeeded ()
401+ fmt .Println ("bytesNeeded" , bytesNeeded )
396402 if bytesNeeded == 0 {
397403 return nil
398404 }
399405
400406 res := make ([]byte , bytesNeeded )
401407 bytesRead , err := conn .Read (res )
402408 if err != nil && ! errors .Is (err , io .EOF ) {
409+ fail := kmsCtx .Fail ()
410+ fmt .Println ("conn read" , err , fail )
411+ if fail {
412+ continue
413+ }
403414 return err
404415 }
405416
0 commit comments