changeset 2289:aa984980a4dc

mod_storage_xmlarchive: Include the missing append_raw() for 0.9 compatibility
author Kim Alvefur <zash@zash.se>
date Tue, 23 Aug 2016 17:54:00 +0200
parents 827f01cbf6ba
children 4786bf0a9334
files mod_storage_xmlarchive/datamanager_append_raw.lib.lua mod_storage_xmlarchive/mod_storage_xmlarchive.lua
diffstat 2 files changed, 38 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mod_storage_xmlarchive/datamanager_append_raw.lib.lua	Tue Aug 23 17:54:00 2016 +0200
@@ -0,0 +1,34 @@
+local io_open = io.open;
+local dm = require "core.storagemanager".olddm;
+
+-- Append a blob of data to a file
+function dm.append(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
+
--- a/mod_storage_xmlarchive/mod_storage_xmlarchive.lua	Tue Aug 23 02:13:34 2016 +0200
+++ b/mod_storage_xmlarchive/mod_storage_xmlarchive.lua	Tue Aug 23 17:54:00 2016 +0200
@@ -12,6 +12,10 @@
 local new_stream = require "util.xmppstream".new;
 local empty = {};
 
+if not dm.append_raw then
+	module:require"datamanager_append_raw";
+end
+
 local archive = {};
 local archive_mt = { __index = archive };