comparison mod_http_upload/mod_http_upload.lua @ 2688:ef80c9d0ebff

mod_http_upload: Remove unused upload slots
author Kim Alvefur <zash@zash.se>
date Sat, 15 Apr 2017 15:51:29 +0200
parents 5f0b755b42a3
children 0fc706855af9
comparison
equal deleted inserted replaced
2687:5f0b755b42a3 2688:ef80c9d0ebff
77 if not max_age then return true; end 77 if not max_age then return true; end
78 local uploads, err = datamanager.list_load(username, host, module.name); 78 local uploads, err = datamanager.list_load(username, host, module.name);
79 if not uploads then return true; end 79 if not uploads then return true; end
80 uploads = array(uploads); 80 uploads = array(uploads);
81 local expiry = os.time() - max_age; 81 local expiry = os.time() - max_age;
82 local upload_window = os.time() - 900;
82 uploads:filter(function (item) 83 uploads:filter(function (item)
83 if item.time < expiry then 84 if item.time < expiry then
84 local deleted, whynot = os.remove(item.filename); 85 local deleted, whynot = os.remove(item.filename);
85 if not deleted then 86 if not deleted then
86 module:log("warn", "Could not delete expired upload %s: %s", item.filename, whynot or "delete failed"); 87 module:log("warn", "Could not delete expired upload %s: %s", item.filename, whynot or "delete failed");
87 end 88 end
88 return false; 89 return false;
90 elseif item.time < upload_window and not lfs.attributes(item.filename) then
91 return false; -- File was not uploaded or has been deleted since
89 end 92 end
90 return true; 93 return true;
91 end); 94 end);
92 return datamanager.list_store(username, host, module.name, uploads); 95 return datamanager.list_store(username, host, module.name, uploads);
93 end 96 end