diff --git a/go.mod b/go.mod index 510970f..11950a1 100644 --- a/go.mod +++ b/go.mod @@ -18,6 +18,7 @@ require ( require ( github.com/aymerick/douceur v0.2.0 // indirect github.com/cention-sany/utf7 v0.0.0-20170124080048-26cad61bd60a // indirect + github.com/cjoudrey/gluahttp v0.0.0-20201111170219-25003d9adfa9 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/go-test/deep v1.1.0 // indirect github.com/gogs/chardet v0.0.0-20211120154057-b7413eaefb8f // indirect diff --git a/go.sum b/go.sum index 9da5e42..372756f 100644 --- a/go.sum +++ b/go.sum @@ -2,6 +2,8 @@ github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuP github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4= github.com/cention-sany/utf7 v0.0.0-20170124080048-26cad61bd60a h1:MISbI8sU/PSK/ztvmWKFcI7UGb5/HQT7B+i3a2myKgI= github.com/cention-sany/utf7 v0.0.0-20170124080048-26cad61bd60a/go.mod h1:2GxOXOlEPAMFPfp014mK1SWq8G8BN8o7/dfYqJrVGn8= +github.com/cjoudrey/gluahttp v0.0.0-20201111170219-25003d9adfa9 h1:rdWOzitWlNYeUsXmz+IQfa9NkGEq3gA/qQ3mOEqBU6o= +github.com/cjoudrey/gluahttp v0.0.0-20201111170219-25003d9adfa9/go.mod h1:X97UjDTXp+7bayQSFZk2hPvCTmTZIicUjZQRtkwgAKY= github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= diff --git a/pkg/extension/luahost/pool.go b/pkg/extension/luahost/pool.go index 4b3dc92..60c7d46 100644 --- a/pkg/extension/luahost/pool.go +++ b/pkg/extension/luahost/pool.go @@ -1,8 +1,10 @@ package luahost import ( + "net/http" "sync" + "github.com/cjoudrey/gluahttp" lua "github.com/yuin/gopher-lua" ) @@ -24,6 +26,9 @@ func newStatePool(funcProto *lua.FunctionProto) *statePool { func (lp *statePool) newState() (*lua.LState, error) { ls := lua.NewState() + // Load supplemental native modules. + ls.PreloadModule("http", gluahttp.NewHttpModule(&http.Client{}).Loader) + // Setup channels. for name, ch := range lp.channels { ls.SetGlobal(name, lua.LChannel(ch))