From e08105f85b8b1da6ae558d5c14672c34e2338a47 Mon Sep 17 00:00:00 2001
From: Mark Puha
Date: Sun, 9 Feb 2025 09:36:41 +0100
Subject: [PATCH] migrate counter
---
adapter/lua.go | 11 ++++++++---
adapter/lua_test.go | 4 ++--
2 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/adapter/lua.go b/adapter/lua.go
index e44ca70..1a845c4 100644
--- a/adapter/lua.go
+++ b/adapter/lua.go
@@ -3,13 +3,15 @@ package adapter
import (
"encoding/base64"
"fmt"
+ "sync/atomic"
"github.com/aarzilli/golua/lua"
)
// TODO: aSec sync is enough?
type Lua struct {
- state *lua.State
+ state *lua.State
+ packetCounter atomic.Int64
}
type LuaParams struct {
@@ -36,12 +38,15 @@ func (l *Lua) Close() {
l.state.Close()
}
-func (l *Lua) Generate(msgType int64, data []byte, counter int64) ([]byte, error) {
+func (l *Lua) Generate(
+ msgType int64,
+ data []byte,
+) ([]byte, error) {
l.state.GetGlobal("d_gen")
l.state.PushInteger(msgType)
l.state.PushBytes(data)
- l.state.PushInteger(counter)
+ l.state.PushInteger(l.packetCounter.Add(1))
if err := l.state.Call(3, 1); err != nil {
return nil, fmt.Errorf("Error calling Lua function: %v\n", err)
diff --git a/adapter/lua_test.go b/adapter/lua_test.go
index 828b555..c7027d0 100644
--- a/adapter/lua_test.go
+++ b/adapter/lua_test.go
@@ -26,7 +26,7 @@ func TestLua_Generate(t *testing.T) {
t.Run("", func(t *testing.T) {
l := newLua()
defer l.Close()
- got, err := l.Generate(1, []byte("test"), 10)
+ got, err := l.Generate(1, []byte("test"))
if err != nil {
t.Errorf(
"Lua.Generate() error = %v, wantErr %v",
@@ -36,7 +36,7 @@ func TestLua_Generate(t *testing.T) {
return
}
- want := "10headertest"
+ want := "1headertest"
if string(got) != want {
t.Errorf("Lua.Generate() = %v, want %v", string(got), want)
}