1
0
Fork 0
Commit graph

7 commits

Author SHA1 Message Date
Jaseem Abid
631eeb0816 Validate ntfy.sh URL before use
I had a couple of panics due to invalid URL, which could have been an
error message during startup.

Example:

    Apr 01 17:33:49 nyx.jabid.in alertmanager-ntfy[878013]: 2024/04/01 17:33:49 Received valid hook from 127.0.0.1:43130
    Apr 01 17:33:49 nyx.jabid.in alertmanager-ntfy[878013]: 2024/04/01 17:33:49 Processing alert: {firing map[alertname:Target Down instance:devkit.local:80 job:esphome severity:high] map[description:The target is not reachable summary:Target is down] 2024->
    Apr 01 17:33:49 nyx.jabid.in alertmanager-ntfy[878013]: 2024/04/01 17:33:49 http: panic serving 127.0.0.1:43130: runtime error: invalid memory address or nil pointer dereference
    Apr 01 17:33:49 nyx.jabid.in alertmanager-ntfy[878013]: goroutine 1013 [running]:
    Apr 01 17:33:49 nyx.jabid.in alertmanager-ntfy[878013]: net/http.(*conn).serve.func1()
    Apr 01 17:33:49 nyx.jabid.in alertmanager-ntfy[878013]:         /usr/lib/go/src/net/http/server.go:1868 +0xb9
    Apr 01 17:33:49 nyx.jabid.in alertmanager-ntfy[878013]: panic({0x840200?, 0xd01360?})
    Apr 01 17:33:49 nyx.jabid.in alertmanager-ntfy[878013]:         /usr/lib/go/src/runtime/panic.go:920 +0x270
    Apr 01 17:33:49 nyx.jabid.in alertmanager-ntfy[878013]: main.WebhookHandler({0xa1d5f0, 0xc00038e000}, 0xc0001b0000)
    Apr 01 17:33:49 nyx.jabid.in alertmanager-ntfy[878013]:         /home/j/src/alertmanager-ntfy/main.go:45 +0xbf2
    Apr 01 17:33:49 nyx.jabid.in alertmanager-ntfy[878013]: net/http.HandlerFunc.ServeHTTP(0x10?, {0xa1d5f0?, 0xc00038e000?}, 0xc0004020ac?)
    Apr 01 17:33:49 nyx.jabid.in alertmanager-ntfy[878013]:         /usr/lib/go/src/net/http/server.go:2136 +0x29
    Apr 01 17:33:49 nyx.jabid.in alertmanager-ntfy[878013]: net/http.(*ServeMux).ServeHTTP(0x411f45?, {0xa1d5f0, 0xc00038e000}, 0xc0001b0000)
    Apr 01 17:33:49 nyx.jabid.in alertmanager-ntfy[878013]:         /usr/lib/go/src/net/http/server.go:2514 +0x142
    Apr 01 17:33:49 nyx.jabid.in alertmanager-ntfy[878013]: net/http.serverHandler.ServeHTTP({0xa1c0c0?}, {0xa1d5f0?, 0xc00038e000?}, 0x6?)
    Apr 01 17:33:49 nyx.jabid.in alertmanager-ntfy[878013]:         /usr/lib/go/src/net/http/server.go:2938 +0x8e
    Apr 01 17:33:49 nyx.jabid.in alertmanager-ntfy[878013]: net/http.(*conn).serve(0xc0000d21b0, {0xa1e1f0, 0xc00027a600})
    Apr 01 17:33:49 nyx.jabid.in alertmanager-ntfy[878013]:         /usr/lib/go/src/net/http/server.go:2009 +0x5f4
    Apr 01 17:33:49 nyx.jabid.in alertmanager-ntfy[878013]: created by net/http.(*Server).Serve in goroutine 1
    Apr 01 17:33:49 nyx.jabid.in alertmanager-ntfy[878013]:         /usr/lib/go/src/net/http/server.go:3086 +0x5cb
2024-04-01 19:21:37 +01:00
Daniel Lambert
2ce561304a allow empty username in case of access tokens in Basic Auth 2024-03-23 21:15:31 -05:00
Jaseem Abid
cc35ddbe0f Enable basic auth only if username/password is set
Empty password leads to an authorization error, which isn't ideal.

Also log the response in case its an error, I think this would be handy
in case the upstream starts misbehaving. By default won't add to log
noise.

Example:

```
curl -s -u ':' -d "test" ntfy.sh/test  | jq .
{
  "code": 40101,
  "http": 401,
  "error": "unauthorized",
  "link": "https://ntfy.sh/docs/publish/#authentication"
}
```
2023-02-10 19:35:21 +00:00
Pablo Ovelleiro Corral
c658a0fd33
Add more logging 2022-11-04 08:32:26 +01:00
Pablo Ovelleiro Corral
acd656c6ea
Skip resolved messsages 2022-11-04 07:45:37 +01:00
Pablo Ovelleiro Corral
911bf2fa92
Add priority 2022-11-03 11:14:36 +01:00
Pablo Ovelleiro Corral
4c0c0bf056
initial commit 2022-11-02 14:46:55 +01:00