annotate util-src/compat.c @ 11781:9c23e7c8a67a

mod_http_file_share: Add optional global quota on total storage usage Before, maximum storage usage (assuming all users upload as much as they could) would depend on the quota, retention period and number of users. Since number of users can vary, this makes it hard to know how much storage will be needed. Adding a limit to the total overall storage use solves this, making it simple to set it to some number based on what storage is actually available. Summary job run less often than the prune job since it touches the entire archive; and started before the prune job since it's needed before the first upload.
author Kim Alvefur <zash@zash.se>
date Sun, 12 Sep 2021 01:38:33 +0200
parents cfc7b2f7251e
children a187600ec7d6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9561
cfc7b2f7251e util.xpcall, util.compat: Add non-hacky multi-argument xpcall() for Lua 5.1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1
cfc7b2f7251e util.xpcall, util.compat: Add non-hacky multi-argument xpcall() for Lua 5.1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2 #include <lua.h>
cfc7b2f7251e util.xpcall, util.compat: Add non-hacky multi-argument xpcall() for Lua 5.1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3 #include <lauxlib.h>
cfc7b2f7251e util.xpcall, util.compat: Add non-hacky multi-argument xpcall() for Lua 5.1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4
cfc7b2f7251e util.xpcall, util.compat: Add non-hacky multi-argument xpcall() for Lua 5.1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5
cfc7b2f7251e util.xpcall, util.compat: Add non-hacky multi-argument xpcall() for Lua 5.1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
6 static int lc_xpcall (lua_State *L) {
cfc7b2f7251e util.xpcall, util.compat: Add non-hacky multi-argument xpcall() for Lua 5.1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
7 int ret;
cfc7b2f7251e util.xpcall, util.compat: Add non-hacky multi-argument xpcall() for Lua 5.1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
8 int n_arg = lua_gettop(L);
cfc7b2f7251e util.xpcall, util.compat: Add non-hacky multi-argument xpcall() for Lua 5.1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
9 /* f, msgh, p1, p2... */
cfc7b2f7251e util.xpcall, util.compat: Add non-hacky multi-argument xpcall() for Lua 5.1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10 luaL_argcheck(L, n_arg >= 2, 2, "value expected");
cfc7b2f7251e util.xpcall, util.compat: Add non-hacky multi-argument xpcall() for Lua 5.1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
11 lua_pushvalue(L, 1); /* f to top */
cfc7b2f7251e util.xpcall, util.compat: Add non-hacky multi-argument xpcall() for Lua 5.1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12 lua_pushvalue(L, 2); /* msgh to top */
cfc7b2f7251e util.xpcall, util.compat: Add non-hacky multi-argument xpcall() for Lua 5.1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
13 lua_replace(L, 1); /* msgh to 1 */
cfc7b2f7251e util.xpcall, util.compat: Add non-hacky multi-argument xpcall() for Lua 5.1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
14 lua_replace(L, 2); /* f to 2 */
cfc7b2f7251e util.xpcall, util.compat: Add non-hacky multi-argument xpcall() for Lua 5.1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
15 /* msgh, f, p1, p2... */
cfc7b2f7251e util.xpcall, util.compat: Add non-hacky multi-argument xpcall() for Lua 5.1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
16 ret = lua_pcall(L, n_arg - 2, LUA_MULTRET, 1);
cfc7b2f7251e util.xpcall, util.compat: Add non-hacky multi-argument xpcall() for Lua 5.1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
17 lua_pushboolean(L, ret == 0);
cfc7b2f7251e util.xpcall, util.compat: Add non-hacky multi-argument xpcall() for Lua 5.1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
18 lua_replace(L, 1);
cfc7b2f7251e util.xpcall, util.compat: Add non-hacky multi-argument xpcall() for Lua 5.1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
19 return lua_gettop(L);
cfc7b2f7251e util.xpcall, util.compat: Add non-hacky multi-argument xpcall() for Lua 5.1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
20 }
cfc7b2f7251e util.xpcall, util.compat: Add non-hacky multi-argument xpcall() for Lua 5.1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
21
cfc7b2f7251e util.xpcall, util.compat: Add non-hacky multi-argument xpcall() for Lua 5.1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
22 int luaopen_util_compat(lua_State *L) {
cfc7b2f7251e util.xpcall, util.compat: Add non-hacky multi-argument xpcall() for Lua 5.1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
23 lua_createtable(L, 0, 2);
cfc7b2f7251e util.xpcall, util.compat: Add non-hacky multi-argument xpcall() for Lua 5.1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
24 {
cfc7b2f7251e util.xpcall, util.compat: Add non-hacky multi-argument xpcall() for Lua 5.1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
25 lua_pushcfunction(L, lc_xpcall);
cfc7b2f7251e util.xpcall, util.compat: Add non-hacky multi-argument xpcall() for Lua 5.1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
26 lua_setfield(L, -2, "xpcall");
cfc7b2f7251e util.xpcall, util.compat: Add non-hacky multi-argument xpcall() for Lua 5.1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
27 }
cfc7b2f7251e util.xpcall, util.compat: Add non-hacky multi-argument xpcall() for Lua 5.1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
28 return 1;
cfc7b2f7251e util.xpcall, util.compat: Add non-hacky multi-argument xpcall() for Lua 5.1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
29 }