Annotate

plugins/mod_time.lua @ 10228:e77bf4222fae

net.server_epoll: Add support for opportunistic writes This tries to flush data to the underlying sockets when receiving writes. This should lead to fewer timer objects being around. On the other hand, this leads to more and smaller writes which may translate to more TCP/IP packets being sent, depending on how the kernel handles this. This trades throughput for lower latency.
author Kim Alvefur <zash@zash.se>
date Wed, 28 Aug 2019 01:41:00 +0200
parent 9225:0ba963e82ac7
child 12632:70ae68bb0aa5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
b1885732e979 GPL->MIT!
Matthew Wild <mwild1@gmail.com>
parents: 615
diff changeset
5 -- This project is MIT/X11 licensed. Please see the
b1885732e979 GPL->MIT!
Matthew Wild <mwild1@gmail.com>
parents: 615
diff changeset
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);