Software / code / verse
Comparison
init.lua @ 417:d46a502955c0
verse: Remove use of deprecated module() function
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sun, 20 May 2018 01:16:22 +0200 |
| parent | 411:db462d4feb44 |
| child | 424:eaaaf4495e06 |
comparison
equal
deleted
inserted
replaced
| 416:92ce569b9b73 | 417:d46a502955c0 |
|---|---|
| 9 | 9 |
| 10 local server = require "net.server"; | 10 local server = require "net.server"; |
| 11 local events = require "util.events"; | 11 local events = require "util.events"; |
| 12 local logger = require "util.logger"; | 12 local logger = require "util.logger"; |
| 13 | 13 |
| 14 module("verse", package.seeall); | 14 local verse = {}; |
| 15 local verse = _M; | 15 verse.server = server; |
| 16 _M.server = server; | |
| 17 | 16 |
| 18 local stream = {}; | 17 local stream = {}; |
| 19 stream.__index = stream; | 18 stream.__index = stream; |
| 20 stream_mt = stream; | 19 verse.stream_mt = stream; |
| 21 | 20 |
| 22 verse.plugins = {}; | 21 verse.plugins = {}; |
| 23 | 22 |
| 24 function verse.init(...) | 23 function verse.init(...) |
| 25 for i=1,select("#", ...) do | 24 for i=1,select("#", ...) do |
| 73 logger.add_level_sink(level, _log_handler); | 72 logger.add_level_sink(level, _log_handler); |
| 74 end | 73 end |
| 75 end | 74 end |
| 76 end | 75 end |
| 77 | 76 |
| 78 function _default_log_handler(name, level, message) | 77 function verse._default_log_handler(name, level, message) |
| 79 return io.stderr:write(name, "\t", level, "\t", message, "\n"); | 78 return io.stderr:write(name, "\t", level, "\t", message, "\n"); |
| 80 end | 79 end |
| 81 verse.set_log_handler(_default_log_handler, { "error" }); | 80 verse.set_log_handler(verse._default_log_handler, { "error" }); |
| 82 | 81 |
| 83 local function error_handler(err) | 82 local function error_handler(err) |
| 84 verse.log("error", "Error: %s", err); | 83 verse.log("error", "Error: %s", err); |
| 85 verse.log("error", "Traceback: %s", debug.traceback()); | 84 verse.log("error", "Traceback: %s", debug.traceback()); |
| 86 end | 85 end |
| 102 end | 101 end |
| 103 | 102 |
| 104 function stream:listen(host, port) | 103 function stream:listen(host, port) |
| 105 host = host or "localhost"; | 104 host = host or "localhost"; |
| 106 port = port or 0; | 105 port = port or 0; |
| 107 local conn, err = server.addserver(host, port, new_listener(self, "server"), "*a"); | 106 local conn, err = server.addserver(host, port, verse.new_listener(self, "server"), "*a"); |
| 108 if conn then | 107 if conn then |
| 109 self:debug("Bound to %s:%s", host, port); | 108 self:debug("Bound to %s:%s", host, port); |
| 110 self.server = conn; | 109 self.server = conn; |
| 111 end | 110 end |
| 112 return conn, err; | 111 return conn, err; |
| 125 if not success and err ~= "timeout" then | 124 if not success and err ~= "timeout" then |
| 126 self:warn("connect() to %s:%d failed: %s", connect_host, connect_port, err); | 125 self:warn("connect() to %s:%d failed: %s", connect_host, connect_port, err); |
| 127 return self:event("disconnected", { reason = err }) or false, err; | 126 return self:event("disconnected", { reason = err }) or false, err; |
| 128 end | 127 end |
| 129 | 128 |
| 130 local conn = server.wrapclient(conn, connect_host, connect_port, new_listener(self), "*a"); | 129 local conn = server.wrapclient(conn, connect_host, connect_port, verse.new_listener(self), "*a"); |
| 131 if not conn then | 130 if not conn then |
| 132 self:warn("connection initialisation failed: %s", err); | 131 self:warn("connection initialisation failed: %s", err); |
| 133 return self:event("disconnected", { reason = err }) or false, err; | 132 return self:event("disconnected", { reason = err }) or false, err; |
| 134 end | 133 end |
| 135 self:set_conn(conn); | 134 self:set_conn(conn); |
| 210 end | 209 end |
| 211 return self; | 210 return self; |
| 212 end | 211 end |
| 213 | 212 |
| 214 -- Listener factory | 213 -- Listener factory |
| 215 function new_listener(stream) | 214 function verse.new_listener(stream) |
| 216 local conn_listener = {}; | 215 local conn_listener = {}; |
| 217 | 216 |
| 218 function conn_listener.onconnect(conn) | 217 function conn_listener.onconnect(conn) |
| 219 if stream.server then | 218 if stream.server then |
| 220 local client = verse.new(); | 219 local client = verse.new(); |
| 221 conn:setlistener(new_listener(client)); | 220 conn:setlistener(verse.new_listener(client)); |
| 222 client:set_conn(conn); | 221 client:set_conn(conn); |
| 223 stream:event("connected", { client = client }); | 222 stream:event("connected", { client = client }); |
| 224 else | 223 else |
| 225 stream.connected = true; | 224 stream.connected = true; |
| 226 stream:event("connected"); | 225 stream:event("connected"); |