Skip to content

Commit

Permalink
support multiple events in one PUT separated by newlines
Browse files Browse the repository at this point in the history
  • Loading branch information
Novgorodov Igor, PMK-TV-OP authored and Novgorodov Igor, PMK-TV-OP committed Jul 1, 2019
1 parent 95f3f4b commit d923a7a
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 3 deletions.
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.4.4
1.4.5
19 changes: 19 additions & 0 deletions event.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package main

import (
"bytes"
"encoding/json"
"time"

Expand Down Expand Up @@ -55,3 +56,21 @@ func eventFromJSON(msg []byte) (ev *Event, err error) {

return
}

func eventsFromMultipleJSONs(msg []byte) (evs []*Event, err error) {
for _, p := range bytes.Split(msg, []byte("\n")) {
p = bytes.TrimSpace(p)
if len(p) == 0 {
continue
}

ev, err := eventFromJSON(p)
if err != nil {
return nil, err
}

evs = append(evs, ev)
}

return
}
4 changes: 2 additions & 2 deletions input.go
Original file line number Diff line number Diff line change
Expand Up @@ -324,13 +324,13 @@ func (i *input) handleHTTPEvent(w http.ResponseWriter, r *http.Request) {
return
}

ev, err := eventFromJSON(buf)
evs, err := eventsFromMultipleJSONs(buf)
if err != nil {
i.Errorf("%s: Unable to parse event JSON: %s", r.RemoteAddr, err)
return
}

i.sendEvents([]*Event{ev})
i.sendEvents(evs)
}

func (i *input) readTCPMessage(c net.Conn) (err error) {
Expand Down

0 comments on commit d923a7a

Please sign in to comment.