Skip to content

Commit a2e43a3

Browse files
committed
fix: set webhook context w/ 5s timeout and disable SSL verify
Signed-off-by: Chris Gianelloni <[email protected]>
1 parent dd7dd30 commit a2e43a3

File tree

1 file changed

+19
-3
lines changed

1 file changed

+19
-3
lines changed

output/webhook/webhook.go

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,13 @@ package webhook
1616

1717
import (
1818
"bytes"
19+
"context"
20+
"crypto/tls"
1921
"encoding/json"
2022
"fmt"
2123
"io"
2224
"net/http"
25+
"time"
2326

2427
"github.com/blinklabs-io/snek/event"
2528
"github.com/blinklabs-io/snek/input/chainsync"
@@ -60,7 +63,6 @@ func (w *WebhookOutput) Start() error {
6063
if payload == nil {
6164
panic(fmt.Errorf("ERROR: %v", payload))
6265
}
63-
logger.Infof("debug: type: %s", evt.Type)
6466
switch evt.Type {
6567
case "chainsync.block":
6668
be := payload.(chainsync.BlockEvent)
@@ -93,14 +95,28 @@ func SendWebhook(e *event.Event, url string) error {
9395
return fmt.Errorf("%s", err)
9496
}
9597
// Setup request
96-
req, err := http.NewRequest(http.MethodPost, url, bytes.NewReader(data))
98+
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
99+
defer cancel()
100+
req, err := http.NewRequestWithContext(ctx, http.MethodPost, url, bytes.NewReader(data))
97101
if err != nil {
98102
return fmt.Errorf("%s", err)
99103
}
100104
req.Header.Add("Content-Type", "application/json")
101105
req.Header.Add("User-Agent", fmt.Sprintf("Snek/%s", version.GetVersionString()))
106+
// Setup custom transport to ignore self-signed SSL
107+
defaultTransport := http.DefaultTransport.(*http.Transport)
108+
customTransport := &http.Transport{
109+
Proxy: defaultTransport.Proxy,
110+
DialContext: defaultTransport.DialContext,
111+
MaxIdleConns: defaultTransport.MaxIdleConns,
112+
IdleConnTimeout: defaultTransport.IdleConnTimeout,
113+
ExpectContinueTimeout: defaultTransport.ExpectContinueTimeout,
114+
TLSHandshakeTimeout: defaultTransport.TLSHandshakeTimeout,
115+
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
116+
}
117+
client := &http.Client{Transport: customTransport}
102118
// Send payload
103-
resp, err := http.DefaultClient.Do(req)
119+
resp, err := client.Do(req)
104120
if err != nil {
105121
return fmt.Errorf("%s", err)
106122
}

0 commit comments

Comments
 (0)