Skip to content

Immediate crash when using Global:HttpRequest #265

Description

@dewmguy

this script used to work perfectly prior to a recent update in acore and/or mod-eluna

currently on AzerothCore rev. 8f6d651471ee 2025-02-24 02:36:22 -0300 (master branch) (Unix, RelWithDebInfo, Static)

function sendDiscordNotification(player, actionType, actionDetail)
    local webhookUrl = "https://discord.com/api/webhooks/redacted"
    local playerName = player:GetName()
    local playerLevel = player:GetLevel()
    local playerClassEmoji = Classes[player:GetClass()] or ":question:"
    local playerFactionEmoji = GetPlayerFaction(player)
    local baseMessage = string.format("%s %s **%s**", playerFactionEmoji, playerClassEmoji, playerName)

    if actionType == "login" then
        message = baseMessage .. " has logged in."
    elseif actionType == "logout" then
        message = baseMessage .. " has logged out."
    elseif actionType == "death" then
        message = baseMessage .. string.format(" has been killed by %s!", actionDetail)
    elseif actionType == "murder" then
        message = baseMessage .. string.format(" has been ganked by %s!", actionDetail)
    elseif actionType == "suicide" then
        message = baseMessage .. string.format(" has %s!", actionDetail)
    elseif actionType == "levelUp" then
        message = baseMessage .. string.format(" has reached level **%d**!", actionDetail)
    elseif actionType == "item" then
        message = baseMessage .. string.format(" has found %s!", actionDetail)
    elseif actionType == "achievement" then
        message = baseMessage .. string.format(" has earned the achievement **[%s]**", actionDetail)
    end

    local payload = "content=" .. urlencode(message)

    HttpRequest("POST", webhookUrl, payload, "application/x-www-form-urlencoded", function(status, body, headers)
        if not status == 204 then
            local output = string.format("Failed to send %s notification for %s. Status: %s", actionType, playerName, status)
            print(output)
        end
    end)
end

tested r-o-b-o-t-o script and came to the same conclusion

-- test.lua
-- GET example (prints a random word)
print("loaded test.lua")

HttpRequest("GET", "https://random-word-api.herokuapp.com/word", function(status, body, headers)
    print("Random word: " .. string.sub(body, 3, body:len() - 2))
end)

-- POST example with JSON request body
HttpRequest("POST", "https://jsonplaceholder.typicode.com/posts", '{"userId": 1,"title": "Foo","body": "Bar!"}', "application/json", function(status, body, headers)
    print(body)
end)

-- Example with request headers
HttpRequest("GET", "https://postman-echo.com/headers", { Accept = "application/json", ["User-Agent"] = "Eluna Lua Engine" }, function(status, body, headers)
    print(body)
end)

console output at startup

Feb 25 08:36:34 warcraftserver worldserver[15278]:
Feb 25 08:36:34 warcraftserver worldserver[15278]: Eluna loaded script: class_deathknight_skipintro.lua
Feb 25 08:36:34 warcraftserver worldserver[15278]: Eluna loaded script: class_reloadammo.lua.lua
Feb 25 08:36:34 warcraftserver worldserver[15278]: loaded joke.lua
Feb 25 08:36:34 warcraftserver worldserver[15278]: Eluna loaded script: player_cdresetondeath.lua
Feb 25 08:36:34 warcraftserver worldserver[15278]: Eluna loaded script: player_enchantbuyback.lua
Feb 25 08:36:34 warcraftserver worldserver[15278]: Eluna loaded script: player_levelpurchase.lua
Feb 25 08:36:34 warcraftserver worldserver[15278]: Eluna loaded script: player_skillpurchase.lua
Feb 25 08:36:34 warcraftserver worldserver[15278]: Eluna loaded script: server_player_autotrainer.lua
Feb 25 08:36:34 warcraftserver worldserver[15278]: Eluna loaded script: server_player_levelrewards.lua
Feb 25 08:36:34 warcraftserver worldserver[15278]: Eluna loaded script: server_player_logout.lua
Feb 25 08:36:34 warcraftserver worldserver[15278]: Eluna loaded script: server_questskipper.lua
Feb 25 08:36:34 warcraftserver worldserver[15278]: loaded test.lua
Feb 25 08:36:34 warcraftserver worldserver[15278]: [Eluna]: HTTP request error: Connection timed out
Feb 25 08:36:34 warcraftserver worldserver[15278]:
Feb 25 08:36:34 warcraftserver systemd[1]: worldserver.service: Main process exited, code=killed, status=11/SEGV
Feb 25 08:36:34 warcraftserver systemd[1]: worldserver.service: Failed with result 'signal'.
Feb 25 08:36:34 warcraftserver systemd[1]: worldserver.service: Consumed 1min 4.864s CPU time.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions