diff --git a/go.sum b/go.sum index 3ef89fb..55ced9e 100644 --- a/go.sum +++ b/go.sum @@ -17,8 +17,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/fiatjaf/bip340 v1.0.0 h1:mpwbm+0KC9BXB/7/pnac4e4N1TiuppyEVXxtVAXj75k= github.com/fiatjaf/bip340 v1.0.0/go.mod h1:MxAz+5FQUTW4OT2gnCBC6Our486wmqf72ykZIrh7+is= -github.com/fiatjaf/go-nostr v0.1.0 h1:dTV7J6MPdFaFIMG+QWIbWWqtrem1nvVuXe84+6kCJ3E= -github.com/fiatjaf/go-nostr v0.1.0/go.mod h1:Zwa4KwVMy3gLoMbbrH+NOZvqmrDADCIV+C67ew7VEqs= +github.com/fiatjaf/go-nostr v0.1.1 h1:mMUn+Dr0QfhM1JuBHcGvvV0ON/tkinvOfXF8Yh825Xc= +github.com/fiatjaf/go-nostr v0.1.1/go.mod h1:Zwa4KwVMy3gLoMbbrH+NOZvqmrDADCIV+C67ew7VEqs= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs= github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= diff --git a/handlers.go b/handlers.go index e1b8728..d3a8647 100644 --- a/handlers.go +++ b/handlers.go @@ -146,12 +146,11 @@ func handleWebsocket(w http.ResponseWriter, r *http.Request) { for { select { case <-ticker.C: - err := conn.WriteMessage(websocket.TextMessage, []byte("PING")) + err := conn.WriteMessage(websocket.PingMessage, nil) if err != nil { log.Warn().Err(err).Msg("error writing ping, closing websocket") return } - conn.WriteMessage(websocket.PingMessage, nil) } } }() diff --git a/listener.go b/listener.go index fabd431..2469983 100644 --- a/listener.go +++ b/listener.go @@ -46,6 +46,11 @@ func notifyListeners(event *event.Event) { for id, listener := range listeners { match := false for _, filter := range listener.filters { + if filter == nil { + match = false + break + } + if filter.Matches(event) { match = true break diff --git a/query.go b/query.go index eb3d7dd..eb3c03d 100644 --- a/query.go +++ b/query.go @@ -3,6 +3,7 @@ package main import ( "database/sql" "encoding/hex" + "errors" "fmt" "strings" @@ -14,6 +15,11 @@ func queryEvents(filter *filter.EventFilter) (events []event.Event, err error) { var conditions []string var params []interface{} + if filter == nil { + err = errors.New("filter cannot be null") + return + } + if filter.ID != "" { conditions = append(conditions, "id = ?") params = append(params, filter.ID)