aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2009-11-21 02:39:08 +0000
committerMatthew Wild <mwild1@gmail.com>2009-11-21 02:39:08 +0000
commit2a8668dd30b4e52cd7e7f916527ae31694f01701 (patch)
treef1ae30af150e1613259a6ad094e57d60dfe3c4c9 /net
parent7f86cfbcc015218d36347be850be0849f55413fc (diff)
downloadprosody-2a8668dd30b4e52cd7e7f916527ae31694f01701.tar.gz
prosody-2a8668dd30b4e52cd7e7f916527ae31694f01701.zip
net.server: New net.server to choose the appropriate library from server_select/server_event based on the availability of luaevent and the use_libevent config option
Diffstat (limited to 'net')
-rw-r--r--net/server.lua21
1 files changed, 21 insertions, 0 deletions
diff --git a/net/server.lua b/net/server.lua
new file mode 100644
index 00000000..507bd81e
--- /dev/null
+++ b/net/server.lua
@@ -0,0 +1,21 @@
+local have_luaevent = pcall(require, "luaevent.core");
+local use_luaevent = require "core.configmanager".get("*", "core", "use_libevent");
+
+local server;
+
+if have_luaevent and use_luaevent == true then
+ server = require "net.server_event";
+ package.loaded["net.server"] = server;
+
+ -- Backwards compatibility for timers, addtimer
+ -- called a function roughly every second
+ local add_task = require "util.timer";
+ function server.addtimer(f)
+ return add_task(1, function (...) f(...); return 1; end);
+ end
+else
+ server = require "net.server_select";
+ package.loaded["net.server"] = server;
+end
+
+return server;