Skip to content

Commit

Permalink
Fix manual sending usage, clientside caching and rate limiting
Browse files Browse the repository at this point in the history
  • Loading branch information
brandonsturgeon committed Jan 20, 2024
1 parent 57b7465 commit 814e796
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 2 deletions.
17 changes: 17 additions & 0 deletions moon/autorun/client/cfc_err_fwd.moon
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,19 @@ hook.Add "Think", "CFC_ErrForwarder_BranchInit", ->
net.WriteString BRANCH
net.SendToServer!

bucket = 4
sendCache = {}
hook.Add "OnLuaError", "CFC_ErrForwarder_OnLuaError", (errorString, _, stack) ->
-- TODO: Queue errors that happen before the setting has been received?
return unless GetGlobal2Bool "CFC_ErrorForwarder_ManualSend", false

return if bucket <= 0

now = CurTime!
expires = sendCache[errorString] or now
return if expires > now
sendCache[errorString] = now + 5

net.Start "cfc_err_forwarder_clerror"
net.WriteString errorString

Expand All @@ -18,3 +30,8 @@ hook.Add "OnLuaError", "CFC_ErrForwarder_OnLuaError", (errorString, _, stack) ->
net.WriteString level.Line

net.SendToServer!

bucket -= 1

timer.Create "CFC_ErrForwarder_BucketReset", 1, 0, ->
bucket += 1 if bucket < 4
3 changes: 2 additions & 1 deletion moon/autorun/server/cfc_err_fwd.moon
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
require "reqwest"

useErrorModule = false
if util.IsBinaryModuleInstalled "luaerror"
if false and util.IsBinaryModuleInstalled "luaerror"
require "luaerror"
luaerror.EnableCompiletimeDetour true
luaerror.EnableClientDetour true
luaerror.EnableRuntimeDetour true
useErrorModule = true
SetGlobal2Bool "CFC_ErrorForwarder_ManualSend", not useErrorModule

util.AddNetworkString "cfc_err_forwarder_clbranch"
util.AddNetworkString "cfc_err_forwarder_clerror"
Expand Down
2 changes: 1 addition & 1 deletion moon/cfc_err_forwarder/error_forwarder.moon
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ return class ErrorForwarder
@queueError isRuntime, fullError, sourceFile, sourceLine, errorString, stack, ply

logErrorInfo: (isRuntime, fullError, sourceFile, sourceLine, errorString, stack) =>
debug = @logger\info
debug = @logger\debug

debug "Is Runtime: #{isRuntime}"
debug "Full Error: #{fullError}"
Expand Down

0 comments on commit 814e796

Please sign in to comment.