From 8df2de18988c7922bba8a6588e7d9d9a9f2eeeb2 Mon Sep 17 00:00:00 2001
From: shadowy-pycoder <shadowy-pycoder@example.com>
Date: Wed, 18 Sep 2024 09:18:16 +0300
Subject: [PATCH] Updated `README.md` with roadmap

---
 README.md        |  6 ++++++
 layers/layers.go | 21 ---------------------
 layers/tcp.go    | 21 +++++++++++++++++++++
 3 files changed, 27 insertions(+), 21 deletions(-)

diff --git a/README.md b/README.md
index 8061c60..e959012 100644
--- a/README.md
+++ b/README.md
@@ -96,3 +96,9 @@ With `-v` flag enabled, you will see more detailed information:
 - [TLS](https://en.wikipedia.org/wiki/Transport_Layer_Security)
 
 
+## Roadmap
+
+- [x] Online packet capture to `stdout`, `txt`, `pcap` and `pcapng` files
+- [ ] Offline packet capture from `pcap` and `pcapng` files
+- [ ] Add proper parsing for `SNMP` messages
+- [ ] Add packet generation and packet injection functionality
diff --git a/layers/layers.go b/layers/layers.go
index b1aa117..1cc1c53 100644
--- a/layers/layers.go
+++ b/layers/layers.go
@@ -43,27 +43,6 @@ type Layer interface {
 	Summary() string
 }
 
-func nextAppLayer(src, dst uint16) string {
-	var layer string
-	switch {
-	case src == 20 || dst == 20 || src == 21 || dst == 21:
-		layer = "FTP"
-	case src == 22 || dst == 22:
-		layer = "SSH"
-	case src == 53 || dst == 53:
-		layer = "DNS"
-	case src == 80 || dst == 80:
-		layer = "HTTP"
-	case src == 161 || dst == 161 || src == 162 || dst == 162:
-		layer = "SNMP"
-	case src == 443 || dst == 443:
-		layer = "TLS"
-	default:
-		layer = ""
-	}
-	return layer
-}
-
 func bytesToStr(b []byte) string {
 	return unsafe.String(unsafe.SliceData(b), len(b))
 }
diff --git a/layers/tcp.go b/layers/tcp.go
index a3d7387..790c814 100644
--- a/layers/tcp.go
+++ b/layers/tcp.go
@@ -130,3 +130,24 @@ func (t *TCPSegment) Parse(data []byte) error {
 func (t *TCPSegment) NextLayer() (string, []byte) {
 	return nextAppLayer(t.SrcPort, t.DstPort), t.payload
 }
+
+func nextAppLayer(src, dst uint16) string {
+	var layer string
+	switch {
+	case src == 20 || dst == 20 || src == 21 || dst == 21:
+		layer = "FTP"
+	case src == 22 || dst == 22:
+		layer = "SSH"
+	case src == 53 || dst == 53:
+		layer = "DNS"
+	case src == 80 || dst == 80:
+		layer = "HTTP"
+	case src == 161 || dst == 161 || src == 162 || dst == 162:
+		layer = "SNMP"
+	case src == 443 || dst == 443:
+		layer = "TLS"
+	default:
+		layer = ""
+	}
+	return layer
+}