Mercurial > prosody-hg
annotate plugins/mod_storage_none.lua @ 12578:10bb58ad5583
executables: Reject Lua 5.1 early
Prevents attempting to load libraries that may no longer be found and
crashing with a traceback.
Platforms like Debian where multiple Lua versions can be installed at
the same time and 'lua' pointing to one of the installed interpreters
via symlinks, there's the possibility that prosody/prosodyctl may be
invoked with Lua 5.1, which will no longer have any of the rest of
Prosody libraries available to be require(), and thus would immediately
fail with an unfriendly traceback.
Checking and aborting early with a friendlier message and reference to
more information is better.
Part of #1600
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sat, 02 Jul 2022 17:27:39 +0200 |
| parents | ef671d337577 |
| children |
| rev | line source |
|---|---|
|
8058
1b35a562528d
mod_storage_none: Ignore unused arguments [luacheck]
Kim Alvefur <zash@zash.se>
parents:
6283
diff
changeset
|
1 -- luacheck: ignore 212 |
|
1b35a562528d
mod_storage_none: Ignore unused arguments [luacheck]
Kim Alvefur <zash@zash.se>
parents:
6283
diff
changeset
|
2 |
|
5425
b00812c6daf8
mod_storage_none: A null-like storage provider that returns all stores as empty, and fails to save anything to them
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
3 local driver = {}; |
|
b00812c6daf8
mod_storage_none: A null-like storage provider that returns all stores as empty, and fails to save anything to them
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
4 local driver_mt = { __index = driver }; |
|
b00812c6daf8
mod_storage_none: A null-like storage provider that returns all stores as empty, and fails to save anything to them
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
5 |
|
6283
7cf6d3a2c855
mod_storage_{none,internal,sql}: Return error for unsupported (everything but keyval) store types
Kim Alvefur <zash@zash.se>
parents:
5425
diff
changeset
|
6 function driver:open(store, typ) |
|
8059
6a725b242804
mod_storage_none: Add allways empty archive storage
Kim Alvefur <zash@zash.se>
parents:
8058
diff
changeset
|
7 if typ and typ ~= "keyval" and typ ~= "archive" then |
|
6283
7cf6d3a2c855
mod_storage_{none,internal,sql}: Return error for unsupported (everything but keyval) store types
Kim Alvefur <zash@zash.se>
parents:
5425
diff
changeset
|
8 return nil, "unsupported-store"; |
|
7cf6d3a2c855
mod_storage_{none,internal,sql}: Return error for unsupported (everything but keyval) store types
Kim Alvefur <zash@zash.se>
parents:
5425
diff
changeset
|
9 end |
|
7cf6d3a2c855
mod_storage_{none,internal,sql}: Return error for unsupported (everything but keyval) store types
Kim Alvefur <zash@zash.se>
parents:
5425
diff
changeset
|
10 return setmetatable({ store = store, type = typ }, driver_mt); |
|
5425
b00812c6daf8
mod_storage_none: A null-like storage provider that returns all stores as empty, and fails to save anything to them
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
11 end |
|
b00812c6daf8
mod_storage_none: A null-like storage provider that returns all stores as empty, and fails to save anything to them
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
12 function driver:get(user) |
|
b00812c6daf8
mod_storage_none: A null-like storage provider that returns all stores as empty, and fails to save anything to them
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
13 return {}; |
|
b00812c6daf8
mod_storage_none: A null-like storage provider that returns all stores as empty, and fails to save anything to them
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
14 end |
|
b00812c6daf8
mod_storage_none: A null-like storage provider that returns all stores as empty, and fails to save anything to them
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
15 |
|
b00812c6daf8
mod_storage_none: A null-like storage provider that returns all stores as empty, and fails to save anything to them
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
16 function driver:set(user, data) |
|
b00812c6daf8
mod_storage_none: A null-like storage provider that returns all stores as empty, and fails to save anything to them
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
17 return nil, "Storage disabled"; |
|
b00812c6daf8
mod_storage_none: A null-like storage provider that returns all stores as empty, and fails to save anything to them
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
18 end |
|
b00812c6daf8
mod_storage_none: A null-like storage provider that returns all stores as empty, and fails to save anything to them
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
19 |
|
b00812c6daf8
mod_storage_none: A null-like storage provider that returns all stores as empty, and fails to save anything to them
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
20 function driver:stores(username) |
|
b00812c6daf8
mod_storage_none: A null-like storage provider that returns all stores as empty, and fails to save anything to them
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
21 return { "roster" }; |
|
b00812c6daf8
mod_storage_none: A null-like storage provider that returns all stores as empty, and fails to save anything to them
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
22 end |
|
b00812c6daf8
mod_storage_none: A null-like storage provider that returns all stores as empty, and fails to save anything to them
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
23 |
|
b00812c6daf8
mod_storage_none: A null-like storage provider that returns all stores as empty, and fails to save anything to them
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
24 function driver:purge(user) |
|
b00812c6daf8
mod_storage_none: A null-like storage provider that returns all stores as empty, and fails to save anything to them
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
25 return true; |
|
b00812c6daf8
mod_storage_none: A null-like storage provider that returns all stores as empty, and fails to save anything to them
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
26 end |
|
b00812c6daf8
mod_storage_none: A null-like storage provider that returns all stores as empty, and fails to save anything to them
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
27 |
|
8059
6a725b242804
mod_storage_none: Add allways empty archive storage
Kim Alvefur <zash@zash.se>
parents:
8058
diff
changeset
|
28 function driver:append() |
|
6a725b242804
mod_storage_none: Add allways empty archive storage
Kim Alvefur <zash@zash.se>
parents:
8058
diff
changeset
|
29 return nil, "Storage disabled"; |
|
6a725b242804
mod_storage_none: Add allways empty archive storage
Kim Alvefur <zash@zash.se>
parents:
8058
diff
changeset
|
30 end |
|
6a725b242804
mod_storage_none: Add allways empty archive storage
Kim Alvefur <zash@zash.se>
parents:
8058
diff
changeset
|
31 |
|
6a725b242804
mod_storage_none: Add allways empty archive storage
Kim Alvefur <zash@zash.se>
parents:
8058
diff
changeset
|
32 function driver:find() |
|
6a725b242804
mod_storage_none: Add allways empty archive storage
Kim Alvefur <zash@zash.se>
parents:
8058
diff
changeset
|
33 return function () end, 0; |
|
6a725b242804
mod_storage_none: Add allways empty archive storage
Kim Alvefur <zash@zash.se>
parents:
8058
diff
changeset
|
34 end |
|
6a725b242804
mod_storage_none: Add allways empty archive storage
Kim Alvefur <zash@zash.se>
parents:
8058
diff
changeset
|
35 |
|
8061
ef671d337577
mod_storage_none: Add a noop archive delete method
Kim Alvefur <zash@zash.se>
parents:
8059
diff
changeset
|
36 function driver:delete() |
|
ef671d337577
mod_storage_none: Add a noop archive delete method
Kim Alvefur <zash@zash.se>
parents:
8059
diff
changeset
|
37 return true; |
|
ef671d337577
mod_storage_none: Add a noop archive delete method
Kim Alvefur <zash@zash.se>
parents:
8059
diff
changeset
|
38 end |
|
ef671d337577
mod_storage_none: Add a noop archive delete method
Kim Alvefur <zash@zash.se>
parents:
8059
diff
changeset
|
39 |
|
5425
b00812c6daf8
mod_storage_none: A null-like storage provider that returns all stores as empty, and fails to save anything to them
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
40 module:provides("storage", driver); |
