Software /
code /
prosody
Annotate
plugins/mod_time.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 |
parent | 9225:0ba963e82ac7 |
child | 12632:70ae68bb0aa5 |
rev | line source |
---|---|
1523
841d61be198f
Remove version number from copyright headers
Matthew Wild <mwild1@gmail.com>
parents:
1513
diff
changeset
|
1 -- Prosody IM |
2923
b7049746bd29
Update copyright headers for 2010
Matthew Wild <mwild1@gmail.com>
parents:
2012
diff
changeset
|
2 -- Copyright (C) 2008-2010 Matthew Wild |
b7049746bd29
Update copyright headers for 2010
Matthew Wild <mwild1@gmail.com>
parents:
2012
diff
changeset
|
3 -- Copyright (C) 2008-2010 Waqas Hussain |
5776
bd0ff8ae98a8
Remove all trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
2923
diff
changeset
|
4 -- |
758 | 5 -- This project is MIT/X11 licensed. Please see the |
6 -- COPYING file in the source package for more information. | |
519
cccd610a0ef9
Insert copyright/license headers
Matthew Wild <mwild1@gmail.com>
parents:
438
diff
changeset
|
7 -- |
cccd610a0ef9
Insert copyright/license headers
Matthew Wild <mwild1@gmail.com>
parents:
438
diff
changeset
|
8 |
1513
5c62216dd516
mod_time Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents:
896
diff
changeset
|
9 local st = require "util.stanza"; |
5c62216dd516
mod_time Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents:
896
diff
changeset
|
10 local datetime = require "util.datetime".datetime; |
5c62216dd516
mod_time Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents:
896
diff
changeset
|
11 local legacy = require "util.datetime".legacy; |
5c62216dd516
mod_time Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents:
896
diff
changeset
|
12 |
5c62216dd516
mod_time Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents:
896
diff
changeset
|
13 -- XEP-0202: Entity Time |
5c62216dd516
mod_time Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents:
896
diff
changeset
|
14 |
5c62216dd516
mod_time Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents:
896
diff
changeset
|
15 module:add_feature("urn:xmpp:time"); |
5c62216dd516
mod_time Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents:
896
diff
changeset
|
16 |
2012
12131e7d3c25
mod_time: Updated to use events (which also fixes a few minor issues).
Waqas Hussain <waqas20@gmail.com>
parents:
1523
diff
changeset
|
17 local function time_handler(event) |
12131e7d3c25
mod_time: Updated to use events (which also fixes a few minor issues).
Waqas Hussain <waqas20@gmail.com>
parents:
1523
diff
changeset
|
18 local origin, stanza = event.origin, event.stanza; |
9225
0ba963e82ac7
mod_time: Simplify iq handling by hooking on iq-get/ instead of iq/.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
5776
diff
changeset
|
19 origin.send(st.reply(stanza):tag("time", {xmlns="urn:xmpp:time"}) |
0ba963e82ac7
mod_time: Simplify iq handling by hooking on iq-get/ instead of iq/.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
5776
diff
changeset
|
20 :tag("tzo"):text("+00:00"):up() -- TODO get the timezone in a platform independent fashion |
0ba963e82ac7
mod_time: Simplify iq handling by hooking on iq-get/ instead of iq/.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
5776
diff
changeset
|
21 :tag("utc"):text(datetime())); |
0ba963e82ac7
mod_time: Simplify iq handling by hooking on iq-get/ instead of iq/.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
5776
diff
changeset
|
22 return true; |
2012
12131e7d3c25
mod_time: Updated to use events (which also fixes a few minor issues).
Waqas Hussain <waqas20@gmail.com>
parents:
1523
diff
changeset
|
23 end |
12131e7d3c25
mod_time: Updated to use events (which also fixes a few minor issues).
Waqas Hussain <waqas20@gmail.com>
parents:
1523
diff
changeset
|
24 |
9225
0ba963e82ac7
mod_time: Simplify iq handling by hooking on iq-get/ instead of iq/.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
5776
diff
changeset
|
25 module:hook("iq-get/bare/urn:xmpp:time:time", time_handler); |
0ba963e82ac7
mod_time: Simplify iq handling by hooking on iq-get/ instead of iq/.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
5776
diff
changeset
|
26 module:hook("iq-get/host/urn:xmpp:time:time", time_handler); |
1513
5c62216dd516
mod_time Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents:
896
diff
changeset
|
27 |
5c62216dd516
mod_time Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents:
896
diff
changeset
|
28 -- XEP-0090: Entity Time (deprecated) |
5c62216dd516
mod_time Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents:
896
diff
changeset
|
29 |
5c62216dd516
mod_time Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents:
896
diff
changeset
|
30 module:add_feature("jabber:iq:time"); |
5c62216dd516
mod_time Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents:
896
diff
changeset
|
31 |
2012
12131e7d3c25
mod_time: Updated to use events (which also fixes a few minor issues).
Waqas Hussain <waqas20@gmail.com>
parents:
1523
diff
changeset
|
32 local function legacy_time_handler(event) |
12131e7d3c25
mod_time: Updated to use events (which also fixes a few minor issues).
Waqas Hussain <waqas20@gmail.com>
parents:
1523
diff
changeset
|
33 local origin, stanza = event.origin, event.stanza; |
9225
0ba963e82ac7
mod_time: Simplify iq handling by hooking on iq-get/ instead of iq/.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
5776
diff
changeset
|
34 origin.send(st.reply(stanza):tag("query", {xmlns="jabber:iq:time"}) |
0ba963e82ac7
mod_time: Simplify iq handling by hooking on iq-get/ instead of iq/.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
5776
diff
changeset
|
35 :tag("utc"):text(legacy())); |
0ba963e82ac7
mod_time: Simplify iq handling by hooking on iq-get/ instead of iq/.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
5776
diff
changeset
|
36 return true; |
2012
12131e7d3c25
mod_time: Updated to use events (which also fixes a few minor issues).
Waqas Hussain <waqas20@gmail.com>
parents:
1523
diff
changeset
|
37 end |
12131e7d3c25
mod_time: Updated to use events (which also fixes a few minor issues).
Waqas Hussain <waqas20@gmail.com>
parents:
1523
diff
changeset
|
38 |
9225
0ba963e82ac7
mod_time: Simplify iq handling by hooking on iq-get/ instead of iq/.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
5776
diff
changeset
|
39 module:hook("iq-get/bare/jabber:iq:time:query", legacy_time_handler); |
0ba963e82ac7
mod_time: Simplify iq handling by hooking on iq-get/ instead of iq/.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
5776
diff
changeset
|
40 module:hook("iq-get/host/jabber:iq:time:query", legacy_time_handler); |