Mercurial > prosody-hg
annotate prosody @ 478:3abf90751a8f
Add COPYING, remove LICENSE
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Sat, 29 Nov 2008 16:25:14 +0000 |
| parents | 66f145f5c932 |
| children | 0862416befe3 |
| rev | line source |
|---|---|
| 455 | 1 #!/usr/bin/env lua |
| 2 | |
| 3 -- Config here -- | |
| 4 | |
|
467
66f145f5c932
Update Makefile to now pass config paths to prosody. Update prosody, modulemanager and connectionlisteners to obey these paths.
Matthew Wild <mwild1@gmail.com>
parents:
455
diff
changeset
|
5 CFG_SOURCEDIR=nil; |
|
66f145f5c932
Update Makefile to now pass config paths to prosody. Update prosody, modulemanager and connectionlisteners to obey these paths.
Matthew Wild <mwild1@gmail.com>
parents:
455
diff
changeset
|
6 CFG_CONFIGDIR=nil; |
|
66f145f5c932
Update Makefile to now pass config paths to prosody. Update prosody, modulemanager and connectionlisteners to obey these paths.
Matthew Wild <mwild1@gmail.com>
parents:
455
diff
changeset
|
7 CFG_PLUGINDIR=nil; |
| 455 | 8 |
| 9 -- -- -- -- -- -- | |
| 10 | |
| 11 if CFG_SOURCEDIR then | |
|
467
66f145f5c932
Update Makefile to now pass config paths to prosody. Update prosody, modulemanager and connectionlisteners to obey these paths.
Matthew Wild <mwild1@gmail.com>
parents:
455
diff
changeset
|
12 if os.getenv("HOME") then |
|
66f145f5c932
Update Makefile to now pass config paths to prosody. Update prosody, modulemanager and connectionlisteners to obey these paths.
Matthew Wild <mwild1@gmail.com>
parents:
455
diff
changeset
|
13 CFG_SOURCEDIR = CFG_SOURCEDIR:gsub("^~", os.getenv("HOME")); |
|
66f145f5c932
Update Makefile to now pass config paths to prosody. Update prosody, modulemanager and connectionlisteners to obey these paths.
Matthew Wild <mwild1@gmail.com>
parents:
455
diff
changeset
|
14 end |
| 455 | 15 package.path = CFG_SOURCEDIR.."/?.lua;"..package.path |
|
467
66f145f5c932
Update Makefile to now pass config paths to prosody. Update prosody, modulemanager and connectionlisteners to obey these paths.
Matthew Wild <mwild1@gmail.com>
parents:
455
diff
changeset
|
16 package.cpath = CFG_SOURCEDIR.."/?.so;"..package.cpath |
| 455 | 17 end |
| 18 | |
|
467
66f145f5c932
Update Makefile to now pass config paths to prosody. Update prosody, modulemanager and connectionlisteners to obey these paths.
Matthew Wild <mwild1@gmail.com>
parents:
455
diff
changeset
|
19 if CFG_CONFIGDIR then |
|
66f145f5c932
Update Makefile to now pass config paths to prosody. Update prosody, modulemanager and connectionlisteners to obey these paths.
Matthew Wild <mwild1@gmail.com>
parents:
455
diff
changeset
|
20 if os.getenv("HOME") then |
|
66f145f5c932
Update Makefile to now pass config paths to prosody. Update prosody, modulemanager and connectionlisteners to obey these paths.
Matthew Wild <mwild1@gmail.com>
parents:
455
diff
changeset
|
21 CFG_CONFIGDIR = CFG_CONFIGDIR:gsub("^~", os.getenv("HOME")); |
|
66f145f5c932
Update Makefile to now pass config paths to prosody. Update prosody, modulemanager and connectionlisteners to obey these paths.
Matthew Wild <mwild1@gmail.com>
parents:
455
diff
changeset
|
22 end |
|
66f145f5c932
Update Makefile to now pass config paths to prosody. Update prosody, modulemanager and connectionlisteners to obey these paths.
Matthew Wild <mwild1@gmail.com>
parents:
455
diff
changeset
|
23 end |
|
66f145f5c932
Update Makefile to now pass config paths to prosody. Update prosody, modulemanager and connectionlisteners to obey these paths.
Matthew Wild <mwild1@gmail.com>
parents:
455
diff
changeset
|
24 |
|
66f145f5c932
Update Makefile to now pass config paths to prosody. Update prosody, modulemanager and connectionlisteners to obey these paths.
Matthew Wild <mwild1@gmail.com>
parents:
455
diff
changeset
|
25 if CFG_PLUGINDIR then |
|
66f145f5c932
Update Makefile to now pass config paths to prosody. Update prosody, modulemanager and connectionlisteners to obey these paths.
Matthew Wild <mwild1@gmail.com>
parents:
455
diff
changeset
|
26 if os.getenv("HOME") then |
|
66f145f5c932
Update Makefile to now pass config paths to prosody. Update prosody, modulemanager and connectionlisteners to obey these paths.
Matthew Wild <mwild1@gmail.com>
parents:
455
diff
changeset
|
27 CFG_PLUGINDIR = CFG_PLUGINDIR:gsub("^~", os.getenv("HOME")); |
|
66f145f5c932
Update Makefile to now pass config paths to prosody. Update prosody, modulemanager and connectionlisteners to obey these paths.
Matthew Wild <mwild1@gmail.com>
parents:
455
diff
changeset
|
28 end |
|
66f145f5c932
Update Makefile to now pass config paths to prosody. Update prosody, modulemanager and connectionlisteners to obey these paths.
Matthew Wild <mwild1@gmail.com>
parents:
455
diff
changeset
|
29 end |
|
66f145f5c932
Update Makefile to now pass config paths to prosody. Update prosody, modulemanager and connectionlisteners to obey these paths.
Matthew Wild <mwild1@gmail.com>
parents:
455
diff
changeset
|
30 |
| 455 | 31 -- Required to be able to find packages installed with luarocks |
|
133
b92493ea6fd7
Fixed: Works when LuaRocks is not present
Waqas Hussain <waqas20@gmail.com>
parents:
99
diff
changeset
|
32 pcall(require, "luarocks.require") |
| 0 | 33 |
| 455 | 34 |
|
433
afbf29498123
Fix to make a global configmanager instance
Matthew Wild <mwild1@gmail.com>
parents:
412
diff
changeset
|
35 config = require "core.configmanager" |
|
376
6d87944df37c
New configmanager. Old-style config files still work, but will print a warning
Matthew Wild <mwild1@gmail.com>
parents:
359
diff
changeset
|
36 log = require "util.logger".init("general"); |
|
6d87944df37c
New configmanager. Old-style config files still work, but will print a warning
Matthew Wild <mwild1@gmail.com>
parents:
359
diff
changeset
|
37 |
|
6d87944df37c
New configmanager. Old-style config files still work, but will print a warning
Matthew Wild <mwild1@gmail.com>
parents:
359
diff
changeset
|
38 do |
|
6d87944df37c
New configmanager. Old-style config files still work, but will print a warning
Matthew Wild <mwild1@gmail.com>
parents:
359
diff
changeset
|
39 -- TODO: Check for other formats when we add support for them |
|
6d87944df37c
New configmanager. Old-style config files still work, but will print a warning
Matthew Wild <mwild1@gmail.com>
parents:
359
diff
changeset
|
40 -- Use lfs? Make a new conf/ dir? |
|
467
66f145f5c932
Update Makefile to now pass config paths to prosody. Update prosody, modulemanager and connectionlisteners to obey these paths.
Matthew Wild <mwild1@gmail.com>
parents:
455
diff
changeset
|
41 local ok, err = config.load((CFG_CONFIGDIR or ".").."/prosody.cfg.lua"); |
|
376
6d87944df37c
New configmanager. Old-style config files still work, but will print a warning
Matthew Wild <mwild1@gmail.com>
parents:
359
diff
changeset
|
42 if not ok then |
|
6d87944df37c
New configmanager. Old-style config files still work, but will print a warning
Matthew Wild <mwild1@gmail.com>
parents:
359
diff
changeset
|
43 log("error", "Couldn't load config file: %s", err); |
|
6d87944df37c
New configmanager. Old-style config files still work, but will print a warning
Matthew Wild <mwild1@gmail.com>
parents:
359
diff
changeset
|
44 log("info", "Falling back to old config file format...") |
|
6d87944df37c
New configmanager. Old-style config files still work, but will print a warning
Matthew Wild <mwild1@gmail.com>
parents:
359
diff
changeset
|
45 ok, err = pcall(dofile, "lxmppd.cfg"); |
|
6d87944df37c
New configmanager. Old-style config files still work, but will print a warning
Matthew Wild <mwild1@gmail.com>
parents:
359
diff
changeset
|
46 if not ok then |
|
6d87944df37c
New configmanager. Old-style config files still work, but will print a warning
Matthew Wild <mwild1@gmail.com>
parents:
359
diff
changeset
|
47 log("error", "Old config format loading failed too: %s", err); |
|
6d87944df37c
New configmanager. Old-style config files still work, but will print a warning
Matthew Wild <mwild1@gmail.com>
parents:
359
diff
changeset
|
48 else |
|
6d87944df37c
New configmanager. Old-style config files still work, but will print a warning
Matthew Wild <mwild1@gmail.com>
parents:
359
diff
changeset
|
49 for _, host in ipairs(_G.config.hosts) do |
|
6d87944df37c
New configmanager. Old-style config files still work, but will print a warning
Matthew Wild <mwild1@gmail.com>
parents:
359
diff
changeset
|
50 config.set(host, "core", "defined", true); |
|
6d87944df37c
New configmanager. Old-style config files still work, but will print a warning
Matthew Wild <mwild1@gmail.com>
parents:
359
diff
changeset
|
51 end |
|
6d87944df37c
New configmanager. Old-style config files still work, but will print a warning
Matthew Wild <mwild1@gmail.com>
parents:
359
diff
changeset
|
52 |
|
6d87944df37c
New configmanager. Old-style config files still work, but will print a warning
Matthew Wild <mwild1@gmail.com>
parents:
359
diff
changeset
|
53 config.set("*", "core", "modules_enabled", _G.config.modules); |
|
6d87944df37c
New configmanager. Old-style config files still work, but will print a warning
Matthew Wild <mwild1@gmail.com>
parents:
359
diff
changeset
|
54 config.set("*", "core", "ssl", _G.config.ssl_ctx); |
|
6d87944df37c
New configmanager. Old-style config files still work, but will print a warning
Matthew Wild <mwild1@gmail.com>
parents:
359
diff
changeset
|
55 end |
|
6d87944df37c
New configmanager. Old-style config files still work, but will print a warning
Matthew Wild <mwild1@gmail.com>
parents:
359
diff
changeset
|
56 end |
| 0 | 57 end |
|
36
62998e5319e3
Moved hosts to a config file, still need better config though
Matthew Wild <mwild1@gmail.com>
parents:
34
diff
changeset
|
58 |
|
452
613c5c6bdce4
Added option core.data_path
Waqas Hussain <waqas20@gmail.com>
parents:
438
diff
changeset
|
59 require "util.datamanager".set_data_path(config.get("*", "core", "data_path") or "data"); |
|
613c5c6bdce4
Added option core.data_path
Waqas Hussain <waqas20@gmail.com>
parents:
438
diff
changeset
|
60 |
|
412
b5b4ec28feec
Change loading order of modules, config before dependency checking
Matthew Wild <mwild1@gmail.com>
parents:
408
diff
changeset
|
61 local server = require "net.server" |
|
b5b4ec28feec
Change loading order of modules, config before dependency checking
Matthew Wild <mwild1@gmail.com>
parents:
408
diff
changeset
|
62 |
|
b5b4ec28feec
Change loading order of modules, config before dependency checking
Matthew Wild <mwild1@gmail.com>
parents:
408
diff
changeset
|
63 require "util.dependencies" |
|
b5b4ec28feec
Change loading order of modules, config before dependency checking
Matthew Wild <mwild1@gmail.com>
parents:
408
diff
changeset
|
64 |
|
99
ba08b8a4eeef
Abstract connections with "connection listeners"
Matthew Wild <mwild1@gmail.com>
parents:
97
diff
changeset
|
65 -- Maps connections to sessions -- |
|
36
62998e5319e3
Moved hosts to a config file, still need better config though
Matthew Wild <mwild1@gmail.com>
parents:
34
diff
changeset
|
66 sessions = {}; |
|
218
1263896ab2f1
Reworked the way lxmppd.cfg is used
Waqas Hussain <waqas20@gmail.com>
parents:
207
diff
changeset
|
67 hosts = {}; |
|
1263896ab2f1
Reworked the way lxmppd.cfg is used
Waqas Hussain <waqas20@gmail.com>
parents:
207
diff
changeset
|
68 |
|
376
6d87944df37c
New configmanager. Old-style config files still work, but will print a warning
Matthew Wild <mwild1@gmail.com>
parents:
359
diff
changeset
|
69 local defined_hosts = config.getconfig(); |
|
6d87944df37c
New configmanager. Old-style config files still work, but will print a warning
Matthew Wild <mwild1@gmail.com>
parents:
359
diff
changeset
|
70 |
|
6d87944df37c
New configmanager. Old-style config files still work, but will print a warning
Matthew Wild <mwild1@gmail.com>
parents:
359
diff
changeset
|
71 for host, host_config in pairs(defined_hosts) do |
|
6d87944df37c
New configmanager. Old-style config files still work, but will print a warning
Matthew Wild <mwild1@gmail.com>
parents:
359
diff
changeset
|
72 if host ~= "*" and (host_config.core.enabled == nil or host_config.core.enabled) then |
|
260
182f0c895676
Now outgoing s2s sessions are associated with their from_host, fixes #15
Matthew Wild <mwild1@gmail.com>
parents:
245
diff
changeset
|
73 hosts[host] = {type = "local", connected = true, sessions = {}, host = host, s2sout = {} }; |
|
218
1263896ab2f1
Reworked the way lxmppd.cfg is used
Waqas Hussain <waqas20@gmail.com>
parents:
207
diff
changeset
|
74 end |
|
376
6d87944df37c
New configmanager. Old-style config files still work, but will print a warning
Matthew Wild <mwild1@gmail.com>
parents:
359
diff
changeset
|
75 end |
| 207 | 76 |
|
99
ba08b8a4eeef
Abstract connections with "connection listeners"
Matthew Wild <mwild1@gmail.com>
parents:
97
diff
changeset
|
77 -- Load and initialise core modules -- |
| 207 | 78 |
|
49
1cd2a8db392d
New "import" module to help tidy up all the local declarations at the top of modules
Matthew Wild <mwild1@gmail.com>
parents:
38
diff
changeset
|
79 require "util.import" |
|
20
6885fd2cf51f
Remove some debugging messages
Matthew Wild <mwild1@gmail.com>
parents:
18
diff
changeset
|
80 require "core.xmlhandlers" |
| 0 | 81 require "core.rostermanager" |
| 82 require "core.offlinemessage" | |
| 30 | 83 require "core.modulemanager" |
|
1
b8787e859fd2
Switched to new connection framework, courtesy of the luadch project
matthew
parents:
0
diff
changeset
|
84 require "core.usermanager" |
| 30 | 85 require "core.sessionmanager" |
| 86 require "core.stanza_router" | |
|
99
ba08b8a4eeef
Abstract connections with "connection listeners"
Matthew Wild <mwild1@gmail.com>
parents:
97
diff
changeset
|
87 |
|
381
e967f162501e
Comment out remote debug, will later be enabled via config
Matthew Wild <mwild1@gmail.com>
parents:
376
diff
changeset
|
88 --[[ |
|
245
5dc6ae7b5ce8
Add support for remote debugger
Matthew Wild <mwild1@gmail.com>
parents:
230
diff
changeset
|
89 pcall(require, "remdebug.engine"); |
|
5dc6ae7b5ce8
Add support for remote debugger
Matthew Wild <mwild1@gmail.com>
parents:
230
diff
changeset
|
90 if remdebug then remdebug.engine.start() end |
|
381
e967f162501e
Comment out remote debug, will later be enabled via config
Matthew Wild <mwild1@gmail.com>
parents:
376
diff
changeset
|
91 ]] |
|
245
5dc6ae7b5ce8
Add support for remote debugger
Matthew Wild <mwild1@gmail.com>
parents:
230
diff
changeset
|
92 |
|
99
ba08b8a4eeef
Abstract connections with "connection listeners"
Matthew Wild <mwild1@gmail.com>
parents:
97
diff
changeset
|
93 local start = require "net.connlisteners".start; |
| 0 | 94 require "util.stanza" |
| 95 require "util.jid" | |
|
49
1cd2a8db392d
New "import" module to help tidy up all the local declarations at the top of modules
Matthew Wild <mwild1@gmail.com>
parents:
38
diff
changeset
|
96 |
|
99
ba08b8a4eeef
Abstract connections with "connection listeners"
Matthew Wild <mwild1@gmail.com>
parents:
97
diff
changeset
|
97 ------------------------------------------------------------------------ |
|
133
b92493ea6fd7
Fixed: Works when LuaRocks is not present
Waqas Hussain <waqas20@gmail.com>
parents:
99
diff
changeset
|
98 |
|
218
1263896ab2f1
Reworked the way lxmppd.cfg is used
Waqas Hussain <waqas20@gmail.com>
parents:
207
diff
changeset
|
99 -- Initialise modules |
|
438
193f9dd64f17
Bumper commit for the new modulemanager API \o/ Updates all the modules, though some more changes may be in store.
Matthew Wild <mwild1@gmail.com>
parents:
433
diff
changeset
|
100 |
|
193f9dd64f17
Bumper commit for the new modulemanager API \o/ Updates all the modules, though some more changes may be in store.
Matthew Wild <mwild1@gmail.com>
parents:
433
diff
changeset
|
101 for host in pairs(hosts) do |
|
193f9dd64f17
Bumper commit for the new modulemanager API \o/ Updates all the modules, though some more changes may be in store.
Matthew Wild <mwild1@gmail.com>
parents:
433
diff
changeset
|
102 if host ~= "*" then |
|
193f9dd64f17
Bumper commit for the new modulemanager API \o/ Updates all the modules, though some more changes may be in store.
Matthew Wild <mwild1@gmail.com>
parents:
433
diff
changeset
|
103 local modules_enabled = config.get(host, "core", "modules_enabled"); |
|
193f9dd64f17
Bumper commit for the new modulemanager API \o/ Updates all the modules, though some more changes may be in store.
Matthew Wild <mwild1@gmail.com>
parents:
433
diff
changeset
|
104 if modules_enabled then |
|
193f9dd64f17
Bumper commit for the new modulemanager API \o/ Updates all the modules, though some more changes may be in store.
Matthew Wild <mwild1@gmail.com>
parents:
433
diff
changeset
|
105 for _, module in pairs(modules_enabled) do |
|
193f9dd64f17
Bumper commit for the new modulemanager API \o/ Updates all the modules, though some more changes may be in store.
Matthew Wild <mwild1@gmail.com>
parents:
433
diff
changeset
|
106 modulemanager.load(host, module); |
|
193f9dd64f17
Bumper commit for the new modulemanager API \o/ Updates all the modules, though some more changes may be in store.
Matthew Wild <mwild1@gmail.com>
parents:
433
diff
changeset
|
107 end |
|
193f9dd64f17
Bumper commit for the new modulemanager API \o/ Updates all the modules, though some more changes may be in store.
Matthew Wild <mwild1@gmail.com>
parents:
433
diff
changeset
|
108 end |
|
218
1263896ab2f1
Reworked the way lxmppd.cfg is used
Waqas Hussain <waqas20@gmail.com>
parents:
207
diff
changeset
|
109 end |
|
376
6d87944df37c
New configmanager. Old-style config files still work, but will print a warning
Matthew Wild <mwild1@gmail.com>
parents:
359
diff
changeset
|
110 end |
| 0 | 111 |
|
218
1263896ab2f1
Reworked the way lxmppd.cfg is used
Waqas Hussain <waqas20@gmail.com>
parents:
207
diff
changeset
|
112 -- setup error handling |
|
1
b8787e859fd2
Switched to new connection framework, courtesy of the luadch project
matthew
parents:
0
diff
changeset
|
113 setmetatable(_G, { __index = function (t, k) print("WARNING: ATTEMPT TO READ A NIL GLOBAL!!!", k); error("Attempt to read a non-existent global. Naughty boy.", 2); end, __newindex = function (t, k, v) print("ATTEMPT TO SET A GLOBAL!!!!", tostring(k).." = "..tostring(v)); error("Attempt to set a global. Naughty boy.", 2); end }) --]][][[]][]; |
|
b8787e859fd2
Switched to new connection framework, courtesy of the luadch project
matthew
parents:
0
diff
changeset
|
114 |
|
20
6885fd2cf51f
Remove some debugging messages
Matthew Wild <mwild1@gmail.com>
parents:
18
diff
changeset
|
115 local protected_handler = function (conn, data, err) local success, ret = pcall(handler, conn, data, err); if not success then print("ERROR on "..tostring(conn)..": "..ret); conn:close(); end end; |
|
6885fd2cf51f
Remove some debugging messages
Matthew Wild <mwild1@gmail.com>
parents:
18
diff
changeset
|
116 local protected_disconnect = function (conn, err) local success, ret = pcall(disconnect, conn, err); if not success then print("ERROR on "..tostring(conn).." disconnect: "..ret); conn:close(); end end; |
|
1
b8787e859fd2
Switched to new connection framework, courtesy of the luadch project
matthew
parents:
0
diff
changeset
|
117 |
|
376
6d87944df37c
New configmanager. Old-style config files still work, but will print a warning
Matthew Wild <mwild1@gmail.com>
parents:
359
diff
changeset
|
118 |
|
6d87944df37c
New configmanager. Old-style config files still work, but will print a warning
Matthew Wild <mwild1@gmail.com>
parents:
359
diff
changeset
|
119 local global_ssl_ctx = config.get("*", "core", "ssl"); |
|
6d87944df37c
New configmanager. Old-style config files still work, but will print a warning
Matthew Wild <mwild1@gmail.com>
parents:
359
diff
changeset
|
120 if global_ssl_ctx then |
|
6d87944df37c
New configmanager. Old-style config files still work, but will print a warning
Matthew Wild <mwild1@gmail.com>
parents:
359
diff
changeset
|
121 local default_ssl_ctx = { mode = "server", protocol = "sslv23", capath = "/etc/ssl/certs", verify = "none"; }; |
|
6d87944df37c
New configmanager. Old-style config files still work, but will print a warning
Matthew Wild <mwild1@gmail.com>
parents:
359
diff
changeset
|
122 setmetatable(global_ssl_ctx, { __index = default_ssl_ctx }); |
|
6d87944df37c
New configmanager. Old-style config files still work, but will print a warning
Matthew Wild <mwild1@gmail.com>
parents:
359
diff
changeset
|
123 end |
|
6d87944df37c
New configmanager. Old-style config files still work, but will print a warning
Matthew Wild <mwild1@gmail.com>
parents:
359
diff
changeset
|
124 |
|
218
1263896ab2f1
Reworked the way lxmppd.cfg is used
Waqas Hussain <waqas20@gmail.com>
parents:
207
diff
changeset
|
125 -- start listening on sockets |
|
376
6d87944df37c
New configmanager. Old-style config files still work, but will print a warning
Matthew Wild <mwild1@gmail.com>
parents:
359
diff
changeset
|
126 start("xmppclient", { ssl = global_ssl_ctx }) |
|
6d87944df37c
New configmanager. Old-style config files still work, but will print a warning
Matthew Wild <mwild1@gmail.com>
parents:
359
diff
changeset
|
127 start("xmppserver", { ssl = global_ssl_ctx }) |
|
1
b8787e859fd2
Switched to new connection framework, courtesy of the luadch project
matthew
parents:
0
diff
changeset
|
128 |
|
383
32b586d9e915
Only start console if it is enabled in the config. Note that the exact option is going to change tomorrow.
Matthew Wild <mwild1@gmail.com>
parents:
382
diff
changeset
|
129 if config.get("*", "core", "console_enabled") then |
|
32b586d9e915
Only start console if it is enabled in the config. Note that the exact option is going to change tomorrow.
Matthew Wild <mwild1@gmail.com>
parents:
382
diff
changeset
|
130 start("console") |
|
32b586d9e915
Only start console if it is enabled in the config. Note that the exact option is going to change tomorrow.
Matthew Wild <mwild1@gmail.com>
parents:
382
diff
changeset
|
131 end |
| 382 | 132 |
|
359
8fbfa8f885a6
Add event for server startup completed: server-started
Matthew Wild <mwild1@gmail.com>
parents:
260
diff
changeset
|
133 modulemanager.fire_event("server-started"); |
|
8fbfa8f885a6
Add event for server startup completed: server-started
Matthew Wild <mwild1@gmail.com>
parents:
260
diff
changeset
|
134 |
|
1
b8787e859fd2
Switched to new connection framework, courtesy of the luadch project
matthew
parents:
0
diff
changeset
|
135 server.loop(); |
