158 local random_dir; |
158 local random_dir; |
159 repeat random_dir = uuid(); |
159 repeat random_dir = uuid(); |
160 until lfs.mkdir(join_path(storage_path, random_dir)) |
160 until lfs.mkdir(join_path(storage_path, random_dir)) |
161 or not lfs.attributes(join_path(storage_path, random_dir, filename)) |
161 or not lfs.attributes(join_path(storage_path, random_dir, filename)) |
162 |
162 |
163 datamanager.list_append(username, host, module.name, { |
163 local ok = datamanager.list_append(username, host, module.name, { |
164 filename = join_path(storage_path, random_dir, filename), size = filesize, time = os.time() }); |
164 filename = join_path(storage_path, random_dir, filename), size = filesize, time = os.time() }); |
|
165 if not ok then |
|
166 origin.send(st.error_reply(stanza, "wait", "internal-server-failure")); |
|
167 return true; |
|
168 end |
|
169 |
165 local slot = random_dir.."/"..filename; |
170 local slot = random_dir.."/"..filename; |
166 pending_slots[slot] = origin.full_jid; |
171 pending_slots[slot] = origin.full_jid; |
167 |
172 |
168 module:add_timer(900, function() |
173 module:add_timer(900, function() |
169 pending_slots[slot] = nil; |
174 pending_slots[slot] = nil; |