srdusr
aboutsummaryrefslogtreecommitdiffstats
path: root/internal/ipc/server.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/ipc/server.go')
-rw-r--r--internal/ipc/server.go25
1 files changed, 24 insertions, 1 deletions
diff --git a/internal/ipc/server.go b/internal/ipc/server.go
index 378c1a9..98c2c22 100644
--- a/internal/ipc/server.go
+++ b/internal/ipc/server.go
@@ -141,7 +141,13 @@ func (s *Server) handleConn(conn net.Conn) {
enc.Encode(Response{Type: "error", Error: err.Error()})
continue
}
- enc.Encode(Response{Type: "get", Detail: detailFromEntry(e)})
+ detail := detailFromEntry(e)
+ if tags, err := s.db.ListEntryTags(req.ID); err != nil {
+ log.Printf("list entry tags for #%d: %v", req.ID, err)
+ } else {
+ detail.Tags = tags
+ }
+ enc.Encode(Response{Type: "get", Detail: detail})
case "ws_messages":
msgs, err := s.db.ListWSMessages(req.ID)
@@ -220,6 +226,23 @@ func (s *Server) handleConn(conn net.Conn) {
}
enc.Encode(Response{Type: "intrude_done"})
+ case "tag_entry":
+ if req.Tag == "" {
+ enc.Encode(Response{Type: "error", Error: "tag_entry: missing tag"})
+ continue
+ }
+ id, err := s.db.AddEntryTag(store.EntryTag{
+ EntryID: req.ID,
+ Plugin: req.TagPlugin,
+ Tag: req.Tag,
+ Data: req.TagData,
+ })
+ if err != nil {
+ enc.Encode(Response{Type: "error", Error: err.Error()})
+ continue
+ }
+ enc.Encode(Response{Type: "tag_entry", TagID: id})
+
case "set_flagged":
if err := s.db.SetFlagged(req.ID, req.Flagged); err != nil {
enc.Encode(Response{Type: "error", Error: err.Error()})