aboutsummaryrefslogtreecommitdiff
path: root/examples/go-dashboard
diff options
context:
space:
mode:
authorToni Uhlig <matzeton@googlemail.com>2020-09-02 18:53:39 +0200
committerToni Uhlig <matzeton@googlemail.com>2020-09-02 18:57:58 +0200
commit001f84af3b9bfd8427c99af1a380d40b6577489a (patch)
tree66840c24bd8a23c5b933cba6046c3d2d87a72431 /examples/go-dashboard
parent0a03293d16ca0fc9f493a58748da1c43d35782e4 (diff)
go-dashboard: Added event structs and JSON unmarshal semantic.
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
Diffstat (limited to 'examples/go-dashboard')
-rw-r--r--examples/go-dashboard/main.go75
1 files changed, 73 insertions, 2 deletions
diff --git a/examples/go-dashboard/main.go b/examples/go-dashboard/main.go
index 89ec9adef..c3ae62b37 100644
--- a/examples/go-dashboard/main.go
+++ b/examples/go-dashboard/main.go
@@ -22,6 +22,48 @@ var (
nDPIsrvd_JSON_BYTES uint16 = 4
)
+type packet_event struct {
+ ThreadID uint8 `json:"thread_id"`
+ PacketID uint64 `json:"packet_id"`
+
+ FlowID uint32 `json:"flow_id"`
+ FlowPacketID uint64 `json:"flow_packet_id"`
+ MaxPackets uint8 `json:"max_packets"`
+
+ PacketEventID uint8 `json:"packet_event_id"`
+ PacketEventName string `json:"packet_event_name"`
+ PacketOversize bool `json:"pkt_oversize"`
+ PacketTimestamp uint64 `json:"pkt_ts"`
+ PacketLength uint32 `json:"pkt_len"`
+ Packet string `json:"pkt"`
+ PacketCaptureLength uint32 `json:"pkt_caplen"`
+ PacketType uint32 `json:"pkt_type"`
+ PacketIpOffset uint32 `json:"pkt_ipoffset"`
+}
+
+type flow_event struct {
+ ThreadID uint8 `json:"thread_id"`
+ PacketID uint64 `json:"packet_id"`
+
+ FlowID uint32 `json:"flow_id"`
+ FlowPacketID uint64 `json:"flow_packet_id"`
+ FlowFirstSeen uint64 `json:"flow_first_seen"`
+ FlowLastSeen uint64 `json:"flow_last_seen"`
+ FlowTotalLayer4DataLength uint64 `json:"flow_tot_l4_data_len"`
+ FlowMinLayer4DataLength uint64 `json:"flow_min_l4_data_len"`
+ FlowMaxLayer4DataLength uint64 `json:"flow_max_l4_data_len"`
+ FlowAvgLayer4DataLength uint64 `json:"flow_avg_l4_data_len"`
+ IsMidstreamFlow uint32 `json:"midstream"`
+}
+
+type basic_event struct {
+ ThreadID uint8 `json:"thread_id"`
+ PacketID uint64 `json:"packet_id"`
+
+ BasicEventID uint8 `json:"basic_event_id"`
+ BasicEventName string `json:"basic_event_name"`
+}
+
func main() {
ui.Init()
@@ -29,7 +71,11 @@ func main() {
WarningLogger = log.New(os.Stderr, "WARNING: ", log.Ldate|log.Ltime|log.Lshortfile)
ErrorLogger = log.New(os.Stderr, "ERROR: ", log.Ldate|log.Ltime|log.Lshortfile)
- conn, _ := net.Dial("tcp", "127.0.0.1:7000")
+ conn, err := net.Dial("tcp", "127.0.0.1:7000")
+ if err != nil {
+ ErrorLogger.Printf("Connection failed: %v\n", err)
+ os.Exit(1)
+ }
buf := make([]byte, NETWORK_BUFFER_MAX_SIZE)
var jsonStr string
@@ -94,7 +140,32 @@ func main() {
ErrorLogger.Printf("BUG: JSON error: %v\n", err)
os.Exit(1)
}
- InfoLogger.Printf("JSON map: %v\n-------------------------------------------------------\n", jsonMap)
+ if jsonMap["packet_event_id"] != nil {
+ pe := packet_event{}
+ if err := json.Unmarshal([]byte(jsonStr[nDPIsrvd_JSON_BYTES:nDPIsrvd_JSON_BYTES+jsonLen]), &pe); err != nil {
+ ErrorLogger.Printf("BUG: JSON Unmarshal error: %v\n", err)
+ os.Exit(1)
+ }
+ InfoLogger.Printf("PACKET EVENT %v\n", pe)
+ } else if jsonMap["flow_event_id"] != nil {
+ fe := flow_event{}
+ if err := json.Unmarshal([]byte(jsonStr[nDPIsrvd_JSON_BYTES:nDPIsrvd_JSON_BYTES+jsonLen]), &fe); err != nil {
+ ErrorLogger.Printf("BUG: JSON Unmarshal error: %v\n", err)
+ os.Exit(1)
+ }
+ InfoLogger.Printf("FLOW EVENT %v\n", fe)
+ } else if jsonMap["basic_event_id"] != nil {
+ be := basic_event{}
+ if err := json.Unmarshal([]byte(jsonStr[nDPIsrvd_JSON_BYTES:nDPIsrvd_JSON_BYTES+jsonLen]), &be); err != nil {
+ ErrorLogger.Printf("BUG: JSON Unmarshal error: %v\n", err)
+ os.Exit(1)
+ }
+ InfoLogger.Printf("BASIC EVENT %v\n", be)
+ } else {
+ ErrorLogger.Printf("BUG: Unknown JSON: %v\n", jsonStr[nDPIsrvd_JSON_BYTES:nDPIsrvd_JSON_BYTES+jsonLen])
+ os.Exit(1)
+ }
+ //InfoLogger.Printf("JSON map: %v\n-------------------------------------------------------\n", jsonMap)
jsonStr = jsonStr[jsonLen+nDPIsrvd_JSON_BYTES:]
jsonStrLen -= (jsonLen + nDPIsrvd_JSON_BYTES)