From bd5569955cd36f58cd8c85c5606d343b39c5e22f Mon Sep 17 00:00:00 2001 From: Anthony Accioly <1591739+aaccioly@users.noreply.github.com> Date: Fri, 20 Jun 2025 23:11:12 +0100 Subject: [PATCH] fix(helpers): add timeout and verbose logging for bunker connection - Add a 10-second timeout to the bunker connection process using context - Include detailed verbose logging for debugging. --- helpers_key.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/helpers_key.go b/helpers_key.go index c4fff11..782724a 100644 --- a/helpers_key.go +++ b/helpers_key.go @@ -2,9 +2,11 @@ package main import ( "context" + "errors" "fmt" "os" "strings" + "time" "fiatjaf.com/nostr" "fiatjaf.com/nostr/keyer" @@ -75,10 +77,21 @@ func gatherSecretKeyOrBunkerFromArguments(ctx context.Context, c *cli.Command) ( clientKey = nostr.Generate() } + logverbose("[nip46]: connecting to bunker %s with client key %s", bunkerURL, clientKey.Hex()) + + ctx, cancel := context.WithTimeout(ctx, 10*time.Second) + defer cancel() bunker, err := nip46.ConnectBunker(ctx, clientKey, bunkerURL, nil, func(s string) { log(color.CyanString("[nip46]: open the following URL: %s"), s) }) + if err != nil { + if errors.Is(ctx.Err(), context.DeadlineExceeded) { + err = fmt.Errorf("timeout waiting for bunker to respond: %w", err) + } + return nostr.SecretKey{}, nil, fmt.Errorf("failed to connect to bunker %s: %w", bunkerURL, err) + } + return nostr.SecretKey{}, bunker, err }