Я считаю, что проблема в вашем коде заключается в следующей строке:
luaL_requiref(state, "socket.http", luaopen_package, 1);
Согласно документации она вызывает функцию luaopen_package
и сохраняет результат в таблице package.loaded["socket.http"]
.Это явно не то, что нужно делать, потому что когда ваш код пытается явно загрузить пакет "socket.http" с помощью require "socket.http"
, он этого не сделает: запись таблицы для ключа "socket.http"
уже занята другим пакетом (а именно, package
).
Вам нужно просто удалить эту строку, чтобы она заработала.