Software /
code /
prosody-modules
File
mod_storage_xmlarchive/datamanager_append_raw.lib.lua @ 5843:742142f9771e
mod_groups_internal: Fix traceback when room doesn't exist
I'm not sure if it should even be included if it doesn't exist, but I'm not
currently sure how this situation occurs, so I'm implementing the lightest
possible fix for now.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Thu, 11 Jan 2024 15:53:18 +0000 |
parent | 2343:f4ab0966ba89 |
line wrap: on
line source
local io_open = io.open; local dm = require "core.storagemanager".olddm; -- Append a blob of data to a file function dm.append_raw(username, host, datastore, ext, data) if type(data) ~= "string" then return; end local filename = dm.getpath(username, host, datastore, ext, true); local ok; local f, msg = io_open(filename, "r+"); if not f then -- File did probably not exist, let's create it f, msg = io_open(filename, "w"); if not f then return nil, msg, "open"; end end local pos = f:seek("end"); ok, msg = f:write(data); if not ok then f:close(); return ok, msg, "write"; end ok, msg = f:close(); if not ok then return ok, msg; end return true, pos; end