diff --git a/pkg/app/relay/server.go b/pkg/app/relay/server.go index fc7b681..6d66644 100644 --- a/pkg/app/relay/server.go +++ b/pkg/app/relay/server.go @@ -191,7 +191,7 @@ func (s *Server) Start( } } // start up a spider run to trigger every 30 minutes - ticker := time.NewTicker(30 * time.Minute) + ticker := time.NewTicker(time.Hour) go func() { for { select { diff --git a/pkg/encoders/envelopes/eventenvelope/eventenvelope.go b/pkg/encoders/envelopes/eventenvelope/eventenvelope.go index 2d38c64..c27ffd4 100644 --- a/pkg/encoders/envelopes/eventenvelope/eventenvelope.go +++ b/pkg/encoders/envelopes/eventenvelope/eventenvelope.go @@ -158,7 +158,7 @@ func (en *Result) Unmarshal(b []byte) (r []byte, err error) { // envelope into it. func ParseResult(b []byte) (t *Result, rem []byte, err error) { t = NewResult() - if rem, err = t.Unmarshal(b); chk.E(err) { + if rem, err = t.Unmarshal(b); chk.T(err) { return } return diff --git a/pkg/encoders/kind/kind.go b/pkg/encoders/kind/kind.go index 6c683bf..888a29a 100644 --- a/pkg/encoders/kind/kind.go +++ b/pkg/encoders/kind/kind.go @@ -378,6 +378,7 @@ var Map = map[uint16]string{ SearchRelaysList.K: "SearchRelaysList", InterestsList.K: "InterestsList", UserEmojiList.K: "UserEmojiList", + DMRelaysList.K: "DMRelaysList", FileStorageServerList.K: "FileStorageServerList", NWCWalletInfo.K: "NWCWalletInfo", LightningPubRPC.K: "LightningPubRPC", diff --git a/pkg/protocol/ws/connection.go b/pkg/protocol/ws/connection.go index 0d0f25f..568fcba 100644 --- a/pkg/protocol/ws/connection.go +++ b/pkg/protocol/ws/connection.go @@ -4,7 +4,6 @@ import ( "bytes" "compress/flate" "crypto/tls" - "errors" "github.com/gobwas/httphead" "github.com/gobwas/ws" "github.com/gobwas/ws/wsflate" @@ -113,7 +112,10 @@ func NewConnection( func (cn *Connection) WriteMessage(c context.T, data []byte) (err error) { select { case <-c.Done(): - return errors.New("context canceled") + return errorf.E( + "%s context canceled", + cn.conn.RemoteAddr(), + ) default: } if cn.msgStateW.IsCompressed() && cn.enableCompression { @@ -121,19 +123,35 @@ func (cn *Connection) WriteMessage(c context.T, data []byte) (err error) { if _, err := io.Copy( cn.flateWriter, bytes.NewReader(data), ); chk.T(err) { - return errorf.E("failed to write message: %w", err) + return errorf.E( + "%s failed to write message: %w", + cn.conn.RemoteAddr(), + err, + ) } if err := cn.flateWriter.Close(); chk.T(err) { - return errorf.E("failed to close flate writer: %w", err) + return errorf.E( + "%s failed to close flate writer: %w", + cn.conn.RemoteAddr(), + err, + ) } } else { if _, err := io.Copy(cn.writer, bytes.NewReader(data)); chk.T(err) { - return errorf.E("failed to write message: %w", err) + return errorf.E( + "%s failed to write message: %w", + cn.conn.RemoteAddr(), + err, + ) } } if err := cn.writer.Flush(); chk.T(err) { - return errorf.E("failed to flush writer: %w", err) + return errorf.E( + "%s failed to flush writer: %w", + cn.conn.RemoteAddr(), + err, + ) } return nil } @@ -143,34 +161,57 @@ func (cn *Connection) ReadMessage(c context.T, buf io.Writer) (err error) { for { select { case <-c.Done(): - return errors.New("context canceled") + return errorf.D( + "%s context canceled", + cn.conn.RemoteAddr(), + ) default: } h, err := cn.reader.NextFrame() if err != nil { cn.conn.Close() - return errorf.E("failed to advance frame: %w", err) + return errorf.E( + "%s failed to advance frame: %s", + cn.conn.RemoteAddr(), + err.Error(), + ) } if h.OpCode.IsControl() { if err := cn.controlHandler(h, cn.reader); chk.T(err) { - return errorf.E("failed to handle control frame: %w", err) + return errorf.E( + "%s failed to handle control frame: %w", + cn.conn.RemoteAddr(), + err, + ) } } else if h.OpCode == ws.OpBinary || h.OpCode == ws.OpText { break } if err := cn.reader.Discard(); chk.T(err) { - return errorf.E("failed to discard: %w", err) + return errorf.E( + "%s failed to discard: %w", + cn.conn.RemoteAddr(), + err, + ) } } if cn.msgStateR.IsCompressed() && cn.enableCompression { cn.flateReader.Reset(cn.reader) if _, err := io.Copy(buf, cn.flateReader); chk.T(err) { - return errorf.E("failed to read message: %w", err) + return errorf.E( + "%s failed to read message: %w", + cn.conn.RemoteAddr(), + err, + ) } } else { if _, err := io.Copy(buf, cn.reader); chk.T(err) { - return errorf.E("failed to read message: %w", err) + return errorf.E( + "%s failed to read message: %w", + cn.conn.RemoteAddr(), + err, + ) } } return nil