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) }