Skip to content

Commit 04b21a9

Browse files
committed
more consistent error handling
1 parent 1393e48 commit 04b21a9

File tree

2 files changed

+16
-9
lines changed

2 files changed

+16
-9
lines changed

cmd/http-relay/main.go

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"errors"
99
"flag"
1010
"fmt"
11+
"io"
1112
"log"
1213
"net/http"
1314
"net/url"
@@ -82,18 +83,23 @@ func specApiHandler(w http.ResponseWriter, r *http.Request) {
8283
x := lnproxy.ProxyParameters{}
8384
err := json.NewDecoder(r.Body).Decode(&x)
8485
if err != nil {
85-
log.Println("error decoding request:", err)
86-
json.NewEncoder(w).Encode(makeJsonError("error decoding request"))
86+
body, err := io.ReadAll(r.Body)
87+
if err != nil {
88+
log.Println("error reading request:", err)
89+
} else {
90+
log.Println("error decoding request:", string(body))
91+
}
92+
json.NewEncoder(w).Encode(makeJsonError("bad request"))
8793
return
8894
}
8995

9096
proxy_invoice, err := lnproxy.Relay(lnd, relayParameters, x)
9197
if errors.Is(err, lnproxy.ClientFacing) {
92-
log.Println("client facing error:", err)
98+
log.Printf("client facing error for %#v:%v\n", x, err)
9399
json.NewEncoder(w).Encode(makeJsonError(strings.TrimSpace(err.Error())))
94100
return
95101
} else if err != nil {
96-
log.Println("internal error:", err)
102+
log.Printf("internal error for %#v:%v\n", x, err)
97103
json.NewEncoder(w).Encode(makeJsonError("internal error"))
98104
return
99105
}

lnproxy.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ func Wrap(ln lnc.LN, r RelayParameters, x ProxyParameters, p lnc.DecodedInvoice)
9696
// 150/151 is electrum's trampoline
9797
default:
9898
log.Printf("unhandled feature flag: %s\n", x.Invoice)
99-
return nil, 0, fmt.Errorf("unknown feature flag: %s", flag)
99+
return nil, 0, errors.Join(ClientFacing, fmt.Errorf("unknown feature flag: %s", flag))
100100
}
101101
}
102102

@@ -109,6 +109,7 @@ func Wrap(ln lnc.LN, r RelayParameters, x ProxyParameters, p lnc.DecodedInvoice)
109109

110110
min_fee_budget_msat, min_cltv_delta, err := ln.EstimateRoutingFee(p, 0)
111111
if err != nil {
112+
log.Println("could not find route:", x.Invoice, err)
112113
return nil, 0, errors.Join(ClientFacing, errors.New("could not find route"))
113114
}
114115

@@ -185,7 +186,7 @@ func Relay(ln lnc.LN, r RelayParameters, x ProxyParameters) (string, error) {
185186
go func() {
186187
_, err := ln.WatchInvoice(q.Hash)
187188
if err != nil {
188-
log.Println("Error while watching wrapped invoice:", x.Invoice, err)
189+
log.Println("error while watching wrapped invoice:", x.Invoice, err)
189190
err := ln.CancelInvoice(q.Hash)
190191
if err != nil {
191192
log.Println("error while canceling invoice:", x.Invoice, err)
@@ -199,7 +200,7 @@ func Relay(ln lnc.LN, r RelayParameters, x ProxyParameters) (string, error) {
199200
CltvLimit: q.CltvExpiry - r.CltvDeltaAlpha,
200201
})
201202
if err != nil {
202-
log.Println("Error paying original invoice:", x.Invoice, err)
203+
log.Println("error paying original invoice:", x.Invoice, err)
203204
err := ln.CancelInvoice(q.Hash)
204205
if err != nil {
205206
log.Println("error while canceling invoice:", x.Invoice, err)
@@ -208,9 +209,9 @@ func Relay(ln lnc.LN, r RelayParameters, x ProxyParameters) (string, error) {
208209
}
209210
err = ln.SettleInvoice(preimage)
210211
if err != nil {
211-
log.Panicln("Error while settling original invoice:", x.Invoice, err)
212+
log.Panicln("error while settling original invoice:", x.Invoice, err)
212213
}
213-
log.Println("Relay circuit successful")
214+
log.Println("relay circuit successful")
214215
}()
215216

216217
return proxy_invoice, nil

0 commit comments

Comments
 (0)