try to preserve http_request
This commit is contained in:
parent
b336ce5efa
commit
08a532f11a
|
@ -521,10 +521,7 @@ end
|
||||||
// HTTPModuleInitFunc returns an initializer function for the HTTP module
|
// HTTPModuleInitFunc returns an initializer function for the HTTP module
|
||||||
func HTTPModuleInitFunc() StateInitFunc {
|
func HTTPModuleInitFunc() StateInitFunc {
|
||||||
return func(state *luajit.State) error {
|
return func(state *luajit.State) error {
|
||||||
// First, unregister any existing function to prevent registry leaks
|
// The important fix: register the Go function directly to the global environment
|
||||||
state.UnregisterGoFunction(httpRequestFuncName)
|
|
||||||
|
|
||||||
// Register the native __http_request function
|
|
||||||
if err := state.RegisterGoFunction(httpRequestFuncName, httpRequest); err != nil {
|
if err := state.RegisterGoFunction(httpRequestFuncName, httpRequest); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -567,7 +564,14 @@ func HTTPModuleInitFunc() StateInitFunc {
|
||||||
|
|
||||||
state.SetGlobal("__http_client_config")
|
state.SetGlobal("__http_client_config")
|
||||||
|
|
||||||
return nil
|
// Ensure the Go function is registered with the base environment
|
||||||
|
// This is critical to make it persist across reloads
|
||||||
|
return state.DoString(`
|
||||||
|
-- Make the __http_request function available in the base environment
|
||||||
|
if __env_system and __env_system.base_env then
|
||||||
|
__env_system.base_env.__http_request = __http_request
|
||||||
|
end
|
||||||
|
`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user