aboutsummaryrefslogtreecommitdiff
path: root/haminer.go
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2022-08-16 23:21:43 +0700
committerShulhan <ms@kilabit.info>2022-08-16 23:21:43 +0700
commitd769cfe466e2a5f96d396f91f6000c4fc604d836 (patch)
treedcea4cfcdb198cc46c97830f2eb17b4fde4f4d98 /haminer.go
parent1ade2eebf51bd64c60b797c077b436b3221202bf (diff)
downloadhaminer-d769cfe466e2a5f96d396f91f6000c4fc604d836.tar.xz
all: use fixed []byte for consuming UDP packet
Instead of using struct UDPPacket to read UDP packet from HAproxy log, simplify it by using fixed, reusable size of []byte directly.
Diffstat (limited to 'haminer.go')
-rw-r--r--haminer.go28
1 files changed, 13 insertions, 15 deletions
diff --git a/haminer.go b/haminer.go
index 7a54e84..95dfe62 100644
--- a/haminer.go
+++ b/haminer.go
@@ -106,20 +106,23 @@ func (h *Haminer) filter(halog *Halog) bool {
func (h *Haminer) consume() {
var (
- err error
- ok bool
- p = NewUDPPacket(0)
+ packet = make([]byte, 4096)
+
+ halog *Halog
+ err error
+ n int
+ ok bool
)
for h.isRunning {
- _, err = h.udpConn.Read(p.Bytes)
+ n, err = h.udpConn.Read(packet)
if err != nil {
continue
}
- halog := &Halog{}
+ halog = &Halog{}
- ok = halog.ParseUDPPacket(p, h.cfg.RequestHeaders)
+ ok = halog.ParseUDPPacket(packet[:n], h.cfg.RequestHeaders)
if !ok {
continue
}
@@ -130,14 +133,6 @@ func (h *Haminer) consume() {
}
h.chHalog <- halog
-
- p.Reset()
- }
-}
-
-func (h *Haminer) forwards(halogs []*Halog) {
- for _, fwder := range h.ff {
- fwder.Forwards(halogs)
}
}
@@ -163,7 +158,10 @@ func (h *Haminer) produce() {
continue
}
- h.forwards(halogs)
+ for _, fwder := range h.ff {
+ fwder.Forwards(halogs)
+ }
+
halogs = halogs[:0]
}
}